Daily
不可视境界线最后变动于:2023年8月29日 晚上
属于pwn的时间:
第0周:6/7-6/13
- 11: 为了ida成功把kali2020.3整莫得了, 不想去研究怎么复原了, 直接重装了个kali2021.2, 以后一定弄快照.
- 12: 弄明白了cachelab的食用方法, 直接ctrlcv代码理解了下, 但是看起来还是有很多可以改进的地方, 暂时看不进去了.
- typora装的时候apt-key出问题, 其实还能用几年, 更modern的解决办法在这(还没看).
- 问题列表还是Markdown靠谱, 思维导图线太多了, 用不上结构的优势, 除了笔记还是用md吧.
- 13: 今天计划看看那啥buuoj的题目: 没看懂从哪开始, 还在wiki中
- typora linux版命令行启动好像有点问题
- 啥玩意儿啊, 根本不知道怎么开始做ctf题目->搞懂了ssh连接到靶机, 结果做到第二题发现是web, 请求学不到家干脆放弃了.
- 看了点讲座的内网穿透, 有丶意思, 可惜我没有这种需求
第一周:6/14-6/20
- 啥也没干, 复习周
第二周:6/21-6/27
……………..
第一周:7/10-7/11
- 10,11: 直接盲选了一手系统安全, 要开始学逆向之类的东西了.
- 看了看洛神的攻防世界的题解, 看了第一道题我就下载了pwntools ida peda这三个工具, 用了下checksec看看文件的类型, 再试了试nc命令连接到服务器, 运行一下就得到了flag
- 第二题是关于格式化字符串漏洞的, 看了老半天, 洛神直接写个很明显, 真不知道他写这个的时候是什么水平, 我还啥都不会呢. 哦对, 我看到一半他居然写了个python, 还是用的pwntools的接口, 人傻了, 明天入门python去, 然后再看看pwntools的python写法
第二周:7/12-7/18
12:这周不做CG了, 开始研究CTF.
- 今天先入门个python先.
13: 今天打算学习pwntools的用法.
- python看到了package, 看过了import, 各种基本类型的用法, 类还没看.
- pwnlib.tubes, 这里有很多东西, 可以直接网页打开然后去搜函数, unpack()和pack()的作用是将数字打包成可输入的字符串
- vscode装python还是挺简单的
%< number>$x
是直接存放到第number个位置的参数,同样可以用在%n,%d等等。
但是需要注意64位程序,前6个参数是存在寄存器中的,从第7个参数开始才会出现在栈中,所以栈中从格式化串开始的第一个,应该是%7 $n.
14: IDA东西好多, 也看了看pwntools的文档, 特么也太多了.(level2整完了, 明天看看文档告别硬编码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(先会看再说))
var_4 = dword ptr -4;
这是解释代码,可解释成var_4 是 esp - 4处的空间;var_0 = dword ptr 8;
var_0 是 esp +8处的空间;
/bin/bash
是个好东西, 如果能调用这个可以直接跳转到命令行模式,interactive()
打开后就能发命令了将悬浮窗口复位: reset the desktop (md变成悬浮窗口就变不回去了??????????)
- 芜湖, savedesktop还挺好用, 设置了一个我现在水平够用的default
shift+F12: strings window.(还有f6,shift+f6,alt+f3)
奇怪的信息:
python: next()函数和search()的返回是一个可迭代的类型
在32位程序运行中,函数参数直接压入栈中,(还能这样???????????????????????????????????)
(64位汇编传参,当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 当参数为7个以上时,
前 6 个与前面一样, 但后面的依次**”从右向左”**放入栈中,即和32位汇编一样。)调用函数时栈的结构为:调用函数地址->函数的返回地址->参数n->参数n-1->…->参数1
15: 上午还是IDA的使用, 下午再看文档. 下午也没看, .
- return __readfsqword(0x28u) ^ v4; 这个是金丝雀值canary的检测
- 重启大法好.(好个屁, 还是没解决)
- 千万别把文件名称命名为模块名称, 不然会出错.
- sendlineafter的 “\n”一定要看清楚了再加
- 函数栈帧的构建过程, 会把ebp推到栈上.
- 看看Jump菜单里的快捷键!
- 刚进入函数时, 栈顶是返回地址!
16: 今天不知道能做多少, 早上姑且整完了adworld的writeup, 下午晚上看情况, 开始buuoj,
17: 今天在动车上姑且做到了第七题, 并且下载好了LibcSearcher库, 明天开始拿下第七题
- 看懂了python2和python3中的字符串的区别(复习了Unicode和UTF-8), python3 加上的就是这两种类型不能混用
- 整明白了eip寄存器(1, 2)和堆栈平衡的东西, 明天再写篇文档顺便整理整理越来越多的md文件.
18:整了个blog, hexo+Github.
第三周: 7/19-7/25
19: 终于弄完了github上的blog, 以后就这样发东西了
- python3 -m pydoc -p 0 : 可以查看本地文档
20: 白天看python的语法, 看到了formatted_string, 晚上继续做题BUUOJ看LibcSearcher
- ROPgadgetDoc or anotherIntroduce
- hide的文章可以通过网址访问
- pwn查找字符串的方法.(指查找程序中的字符串|查找 libc 中的字符串之类的)
21: 继续OJ
- 虚拟机里vim的复制粘贴好像有点特别
- 今天才做了两道题pwn+babyrop, 我觉得需要反思下到底哪里慢了
- 主要还是想自己摸索, 结果好多东西看别人的学得更快, 又叒叕复习了一遍%n是修改指针指向的值(源自CGfsb), c语言函数有点不太熟悉(strlen就是, 没反应过来是以’\0’为止的, 以及strncmp返回值和第三个参数即长度为0时两个字符串相等), 今天看文档也用了不少时间(fmtstr_payload, flat, pack等), 总的说来学得还算不少, 不过感觉还是有点慢(`⌒´メ)
22: 继续
linux 终端suspend问题: pressing the ctrl+z is to suspended current process [0].
python3 用pwntools什么东西都得加一个b, 绝了.
“/bin/sh”没加也报错, 还有ELF.search返回的是一个可迭代的对象
sendlineafter没加b也在那里给警告
简单题多做几遍还能多几次收获, 哇, 哇IDA 逆向常用宏定义
pwntools的context默认32位, 还是每次手动设定的好, 推荐使用:
context.binary = './challenge-binary'
.查找字符串->flag.txt->Ctrl+X, Jumptothereference->继续
1
2
3
4
5
6
7//常见函数:
int getc(FILE *stream) //返回字符的int类型值
char *fgets(char *str, int n, FILE *stream); //从文件流中读取字符到str中
FILE *fopen(const char *filename, const char *mode); //
ssize_t write(int fd, const void *buf, size_t nbyte); //一般是write(1,buf,nbyte),stdout = 1
unsigned __int64 sys_read(stdinput:0, buf, size)
//习惯上,标准输入的文件描述符是 0,标准输出是 1,标准错误(standard error)是 2。
bss段原理: executable文件中只记录未初始化变量的起始和终止地址, 在运行时操作系统将这部分内存清零(通过匿名mmap映射.)
可以直接sendline, 不一定要一直用sendlineafter.
23: 还是继续
24-25: 补补知识
- 复习了下AT&T和Interl语法
- LONG_MAX = INT_MAX
第四周: 7/26-8/1
26-28: 划水+看CTF-WiKi上的heap内容
29: 继续WiKi
MALLOC_ALIGN_MASK = 2 * SIZE_SZ -1
- 我居然还在看WiKi, 关键是他的东西也太多了吧, 之前还以为可以跳过的, 结果全都得倒回去看原理和代码, 这波真的是大意了. 堆的相关内容真的好长
- fastbin是单链表, 所以元素的用户数据段前八字节有数据, 且是fd
- fd_nextsize, bk_nextsize是largebins的指针
#define MIN_CHUNK_SIZE (offsetof(struct malloc_chunk, fd_nextsize))
- 至少包含bk指针, largebins的特有指针可以不要
- 奇了怪了, 看了半天才看出来fastbins里的链表头指针数组的数量是
maxsize
的字节数, 所以才有fastbin_index(chunksize(victim))
这种用字节数定位下标的算法, 好像真的没有一句明白的话说明这玩意儿, 绝了, 看了半天源码才看出来……..
还是乖乖看源码吧……..
30:看懂了fastbinattack
- nextchunck是指高地址的那一个
- malloc_consolidate 函数可以将 fastbin 中所有能和其它 chunk 合并的 chunk 合并在一起。
31:
- gdb-peda
第五周: 8/2-8/8
- gdb-peda
8/2 3: 做题
- pwndbg和Pwngdb
- 关于gdb.attach(p)的几句话
- 查询各版本libc.so文件的main_arena_offset的小工具
- 而且recv是从缓冲区获取数据, 必须把前面的都取出来才能够recv(4)
8/4,5: 做题
8/6: 学习
gdb中默认关闭随机化, 使用show disable-randomization或set disable-randomization off关闭“禁止随机化”
关于ASLR和PIE详细内容, 前者是Linux系统特有打乱所有的东西, 后者是编译器加上的保护措施, PIE会打乱bss text data加载基址, 不过这是一个固定值, 当我们打开了Linux的ASLR 2才能够真正的随机.
整理writeup
8/7:继续
- 看完了堆的全部基础内容, 还剩下各种利用方法没看
- 了解了一波SROP, 尝试写了一题(其实是某题的第二种方法)
- BUUOJ好几道都是做过的或者很相似的题目, 相当于复习了也比较基础
8/8:继续
- 看了看栈转移和asm(shellcraft), 以及Typora的图表文档 [flowchart github] [mermaid]
- 学习unsorted bin attack,
main_arena
是一个struct malloc_state
类型的全局变量 - heap exploitation: how2heap
第六周: 8/9 - 8/15
8/9:今天看GNU C Library源码(关于heap)
- glibc源码下载&在线阅读地址合集
- 写点heap源码的笔记
8/10,11,12:继续源码
- Typora不支持最新Mermaid语法的解决办法
- 学了下mermaid的用法(或许将来能用到), 还有app.diagram.net的画图
- 按住ctrl用鼠标点击多个地方可以同时编辑
- 华庭的glibc解析中chunk size链表即为largebin的fd_nextsize和bk_nextsize
- <span id=”jump”>跳转到的地方</span> 跳转本页锚点的方法
8/13:搞定malloc.c中除了多线程的所有源码
- emmmmm我是不是要补补多线程的东西, 总不能一直都不知道吧, 明天我去问问还能拖到什么时候学(bushi)
8/14-15:写各种bin attack的分析文, 写完打算入坑ucore Lab1
第七,八周: 8/16-8/29
- bin attack & easyheap
- 出现了glibc版本问题, 需要再将源码分析和最新版本
2.34
比对一下 - 直接执行.so文件来查看glibc版本
- Gittalk插件
- 出现了glibc版本问题, 需要再将源码分析和最新版本
- 补完了CSAPP上signal的部分, 不得不说内容真的是太多了
第九周: 8/30-9/5
- 志愿者+shellab
- getopt() strchr()
- Ctrl+z 发送的是 SIGTSTP
- Kali 上unsigned long int长8字节, 我在windows上用g++是4字节和int一样长
- architecturelab还没做, 都不知道要不要弄了, 书上好多还没看又得要几天
- 继续CSAPP, 怎么还没看完啊…….
- 重大教训, 在Z-Library上找到了csapp的英文非扫描版, 终于不用在笔记排版上浪费那么多的时间了
- 8/5 看到了处理器体系结构第三节
第十周: 9/6-9/12
- CSAPP
- process architecture看了一天半看不下去了, 还有剩下的Network & Concurrent Programming以后再找机会看吧
- Rust
- 看了五天的Rust Official Document, 相当于是应了肖老师的建议, 不过看了一大半之后还能继续做什么还没有思考, 不过大概率不去做网页组的事情了
- 妄图和肖哥比确实是一种自不量力的行为, 我要好好反思一下自己要走的路
- BUUOJ
- 做个几题意思一下
第十一周: 9/13-9/19
- 又看了一下checksec的保护机制
- 准备了一手CCF CSP, 虽然没学算法的大家都是一个水平
- 做个两题
第十二周: 9/20-9/26
- IDA pro book感觉挺有用的, 抽个时间看看
- 上面这本书中的一部分的博客: 名称与命名, 讲如何更改函数或变量名称
- vim查找与替换
- 面试V&N的pwn方向, 和当时的肖学长差不多水平, 但是现在的面试比较严格, 叫我再学两个月, 我现在退坑pwn去走一遍肖学长的learn list补补基础(编译原理和操作系统)
- 太忙了, 搞综测, 又没周末, 实验又多, 下周再学吧
操作系统+编译原理
第十三周: 9/27-10/7+8+9+10(国庆全算进去吧)
10/1-2 : 编译原理
- 刚开始编译原理,操作系统的话看看有无必要同时进行
- 编译原理概念过多, 暂缓几天, 现在先看操作系统
- 这几天打算看看CSAPP的并行部分(tmd怎么还没看完, 笔记不做了就画个线好了)
10/3 : 操作系统
GCC内联汇编
下午改学编译原理
10/4 : 编译原理
- ln命令|symbolic_link
- 安装好PA环境, 开始cs143第一个实验
- (看了学校的课程:数据库系统)
- 软件安装问题
- 芔, 根本没装好, 为了在kali上做实验整了半天flex安装, 一直给我提示缺少GNU m4, 我寻思哪里都没见过这东西啊, 找了半天m4也装了半天, 结果发现直接apt install就行了, m4的版本不重要, 重要的是flex低版本的源码级安装(也不知道有没用, 先装了再说)(后来还是用了apt install flex)
- 文章里说的
./configure && make && sudo make install
就是在相应文件夹下执行就可以了 - apt自动管理软件的依赖问题, 各种命令直接搜索即可
- Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本
10/5 : 编译原理
- Ibus打出
"安"
需要按下A+J(an) , 真特么奇怪 - Linux下
!
的用法, 主要是传递最后执行的命令的参数,以方便的运行新命令(非常实用) - COOL文档看了一半, tour文档刚开头, 这种长文章确实耗时间, 晚上看完PA1吧, 就不自己写了
- xodo不要拖动pdf文件查看, 会出现无法保存的情况
- 看了一天的英文文档, 属实快累死了, 终于到了PA2
- Ibus打出
10/6 : 继续苦逼编译原理
- 有点其他事, 继续看了文档
10/7-10 : 还是看文档
- 课程看了两天, 实验相关只花了一下午看
- #line 命令(还是没懂)
- #line 行号
其中行号必须是1~32 767之间的整数,此指示导致程序后面的行被编号为n,n+1,n+2,… - #line 行号 “文件名”
其中行号和文件名说明来源的行号和文件名,指示后面的行会被认为是来自文件,行号由n开始。
#line指示一种作用是改变__LINE__,__FILE__宏的值。但是大多数编译器不支持#line。#line 主要用于那些产生C代码作为输出的程序,程序员并不常用#line。
- #line 行号
- 看了这么多天文档终于会写代码了, 好感动(╥╯^╰╥)
第十四周: 10/11-10/17
- 终于整完了cool.flex, 开始看parse部分
- flex的源码分析抽空看一看, 只写cool.flex还是忽略了一些细节
- 救命啊, 这编译原理也太猛了, 概念多得离谱, 词法+语法分析是能够一周完成的任务吗???
不过还能学下去就是了, 如果是实验的话应该会省略掉一些细节, 毕竟课程还是啥都讲, 从劣到优全都介绍一遍
已经学不下去了 - 学傻了, cool文档哪里看的过来啊
第十五周: 10/18-10/24
- 我以为我看完文档了, 结果又看到产生式里面给我来一个
error ';'
人又蒙了, 一看Bison文档在第六章, 我就差这个没看呢, 不过后面的章节应该不是很重要了, 就算做我看完了吧:cry: - 21号, 手写数据库命令行, 练习一下纯命令形式的数据库管理, 以及查看文档的水平, 但没想到的是会错在书上的错误示例中:cold_sweat:
- 周末用了一天时间写数据库, 比较忙
- ?
第十六周: 10/25-10/31
- 服啦, 还是不要想着三个星期整完编译原理了, 毕竟至少一个月打底了
- 这几天还是在看视频. 就这视频是能几个星期看完的???还剩下PA45没做
- 感天动地, PA4终于能看懂了, 周末尽量争取PA5开个头:ghost:
- 把所有文件的关系理一遍终于看懂了PA4, 也对PA3和PA2有了更清楚的理解, 果然还是要把源码看一遍才懂写下去的都是些什么类型什么变量. PA5我还是先看看视频吧, 勉强算作一个开头
- 一个小问题是kali中使用中文输入法的时候无法在vscode中用光标选中文本
第十七周: 11/01-11/07
- 10/01-02: 听了两天的Stanford的课程感觉针不戳, 除了听力没有好到不用看字幕之外看的非常舒服, 不过全看一遍要花非常多的时间, 所以现在改为看PDF, 而PA5会尽快提上日程
- vscode的快捷键真的是超乎想象, 有机会就去看一点
- CSAPP没读完真是硬伤, 关键是哪有看那么快的啊.. 周六开始看网络编程部分, 后续可能补完处理器体系结构(没有然后了)
- 看了一点汇编代码MIPS的manuals, 了解了下label是个啥(现在忘了)
- 编译原理终于完成了, 下一阶段操作系统+中间代码优化
- 开始一点点操作系统
第十八周: 11/08-11/14
- 11/08:
- 网上随便整了个序列号就通过了understand的验证, 这软件还真够直接的, 不过我更想在我的kali上弄这些, 先用着试试看. 这是windows的
- rpm包的命名规范官网, →这里. 3:3.1被认为比2:3.2更新。
- 好像第二次查硬链接和软连接的区别了, 起因是无法使用qemu而要使用qemu-system-i386或qemu-system-x86_64指令替换qemu指令. 可以利用软链接
ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu
创建一个快捷方式一样的东西 - 操作系统的kali环境算是弄好了一大半(我再也不敢说已经弄好了), 剩下的就是要熟悉一下各种软件的操作
- 其余时间
- 整了两三行的bat一键上传blog
- blog图片换成了本地, 还是怕sm.ms跑路, 以前的就不更新了. 找到了一个最保险的办法, 就是两边都存
dpkg-reconfigure tzdata
搞定kali时间不准问题- 装上understand, 压缩包已存, 下载地址
- apt install gnome-terminal, 调试得以继续运行
- 一个word有几位? / How many bits does a word contain in 32-bit OS?
- pdf文件添加目录
- 拓展内联汇编 link
- keymap调试完成
- python多版本问题 link: repaire或者
python -m pip install -U pip
就行
第十九周: 11/15-11/21
- windows下vscode莫名无法拖动文件标签, 快捷方式设为管理员启动然后再取消掉就没事了
- 虚拟机里的vscode果然还是用的怪怪的, 换成windows下的写完再粘贴进去debug
- 终于挂载成功了, 问题不是vmware-tools没装好, 也不需要加载ISO文件,
sudo vmhgfs-fuse .host:/ /mnt/hgfs
不成功不是因为vmtools的问题, 而是和报错说的一模一样,'/mnt/hgfs': No such file or directory
. 真绝了, 新建个hgfs就完事了
悲报, 可能每次重启我都要执行这一句命令…….:sweat: - C语言变量声明时加冒号的用法: C语言提供了一种数据结构,称为“位域”或“位段”
- 16号Lab1暂时完成, 开始下一个Lab的学习
- “:” (colon) and “.”(dot) in C struct 结构体中的冒号和点号
- c语言结构体名称和结构体变量可以同名
- 感觉gdb帮助也是有限, 一个调试还是要把代码看懂了再用gdb查看运行时变量的变化, 而且如果没有特殊情况还很难发现小错误
第二十周: 11/22-11/28
- &((type *)0)->member: ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,并且转换的结果是个NULL,因此
((type *)0)
的结果就是一个类型为type *
的NULL指针. 编译器还会对这种形式的宏定义做出优化, 只取出地址而不访问
(type *)NULL的成员member. - 感觉是时候看一波网上的汇编教程了, 每天看一点就成, 免得看到一些指令还要一个一个搜
- 学的少了, 不过考完了全部期中考, 可以有更多时间来做了
- 周六
- 整了正则替换, 像什么[0-9]*想了半天原来是0次到多次, 会匹配全文, 还是要熟练一下
- 弄了一点模型机, 意思一下
- 周天
第二十一周: 11/29-12/5
- 看Lab3的视频中……
- 花了剩下的几天时间写完了学校的cpu, 并且完成了板上的时序仿真, 等待下周二的实板测试
第二十二周: 12/6-12/12
- 写CPU都适用的VIM, 找到了一个vim教程网站感觉挺有用 link, 剩下的配置在_vimrc里, 解决了复制到系统剪贴板的问题和保存会话的问题
- 写了一周的CPU, 能运行程序了, 不过排个序都得要没有循环的八十多行的代码, 也是一绝
- 周三开始继续学操作系统
- 补了一下ucore的部分内容, 看了几天汇编语言, 对一些伪指令以及真实的汇编程序的结构有了认识, 对IDA反汇编的一些以前看不懂的东西也能读懂他的含义了
- 周六现学python的文件操作, 学了一点os, random, shutil库的函数, 还是有需求推动学的快
- 周天看CSAPP的处理器体系结构部分, 小有收获, 看的比较流畅
第二十三周: 12/13-12/19
- 花了几天看了CSAPP的处理器体系结构章节, 大有收获, 主要是pipeline processor的设计思考过程一步一步非常详细, 可以说是锻炼思维能力了, 但这只是1980s的理论水平
- 周四早上, 终于看完了Processor Architecture, 至于实验等假期再做吧, 继续开始操作系统内存管理部分
- 周五, 操作系统Lab3, 安装了Windows default keymap, linux里的vscode勉强能用
- 可能需要切换一下策略, 直接参照答案学习, 理解写出文档就算成功, 不然看了两天才补完Lab1中的challenge, 还以为是task switch…
- 明天看看自动完成合并的diff和patch命令
第二十四周: 12/20-12/26
本周的任务是操作系统, 一下是除了这个之外的小东西
典中典: 我以为我看懂了
STI指令: 响应可屏蔽的硬件中断, 在kern_init()中的intr_enable()执行, 就算没设置也能执行软中断
Typora崩溃了, 我也快崩溃了, 写了三天的东西莫得了, 自动保存直接断绝后路
完善了一下用来备份的bat程序, 每十分钟备份一次(我就是要自动保存!
c/c++默认返回值是1, 我没写导致出错
周三, 整了下快捷方式的快捷键; 学点patch和diff的补丁文件, 知识get!
周四, 只能说那东西有点上头, 还是不碰为妙
- volatile相关
- ctrl+k在understand里面看大纲
- SLOB、SLAB、SLUB
周末:
- vscode的formatter用得顺手, 导致我diff+patch很难过T_T
- patch只能使用带有-u或者-c参数的diff文件, 而且带有上下文, patch很容易fail
- vscode修改为大括号sameline:
"C_Cpp.clang_format_style": "{BasedOnStyle: Chromium, IndentWidth: 4}"
clang-format参数
第二十五周: 12/27-1/2
- 周一, 经典再现, 我果然没有看懂地址映射的四个阶段, 又重新看了一次ucore自带的一个设置好的页目录表和相应的页表
又折腾了半天 - 装了一个info包, 暂时只知道能看info ld
make grade
在虚拟机共享文件夹里出错了, 诶想省事又有点麻烦的东西- 弄了一个多小时, 博客想加上汇编代码高亮, 没有成功, 和Typora的配合不是很好, 鸽了
- Dirty COW的网站上有个东西好有趣
- How do I uninstall Linux? Please follow these instructions.
- VMware对于在虚拟机中选中的文本会自动复制到宿主机中
- 周四, ucore开始快一个月了, 进展到了Lab6
- 折腾了快一个小时, 结果发现需要update lab5的代码才能正确make qemu, 乌鱼子………为什么总在这种无意义的事情上浪费时间
- 周五下午三点, 人已被气晕, exercise0怎么改都不行, 重新clone了肖佬的lab6, 绝了
- 发现肖佬是把出错的那一句直接注释了, 未曾设想的道路
- 元旦当天, 不进行格式化的合并就是舒服 && 尝试clash再次失败, 下次不弄了
- 装了一个apt install graphviz, an open source graph visualization software
- 深受翻译版所害, signaling process直接叫做信号进程
第二十六周:1/3-1/9
开始lab8
print working directory = pwd
magic numbers
这个highlightjs+hexo我不改变一下文件他就不动配置了, 搞得代码块白底白字, 还得手动在每个文件都加上一个空格.
do {…} while (0) 在宏定义中的作用: 能够正确的让多条语句按我们的意愿工作.
尝试了一下ssh连接虚拟机, 只要执行一下几条命令即可, 使用了一下XShell, 要弹出qemu的窗口还要装东西……
1
2
3
4
5apt-get update
apt-get install openssh-server
systemctl enable ssh.service
vim /etc/ssh/sshd_config # 改成允许root用户登录
/etc/init.d/ssh restart要用understand记得要注意编码问题以及及时重新分析所有文件(windows默认GBK编码
周六, 虽然在复习周, 但是马上就要完成ucore了. 周天, ucore完成
装上了ahk语法高亮, 硬是整了个小脚本
开始寒假(pwn.college+计网)
第二十七周:1/10-1/16
- gVim是vim的一种, 指GUI Vim, 还有其他的模式可以通过 vim -参数 来指定
- 考试周, 看了一点pwn.college的YouTube视频, 介绍视频感觉还挺多的, 是时候再写一篇blog了
- 对了, 每天要复习一点前面的东西, 不然到时候就等于重新看了
- 考完了, 考 完了, 考 完了, 16号开始一点计算机网络, 计算机系统, 和pwn.college
第二十八周:1/17-1/23
- 17: 看计网, 明天开始pwn.college
- 18: 找到了一个下载Github单个文件夹的网站, 以及把tree/master替换为trunk. 然后用:svn checkout [source]
- 计网开始第二章, 第一章东西也真够多的
- 看一点concurrent programing….还有先后关系, 先看network programming…呃呃, 还是看system I/O吧…
- 19: CSAPP笔记全markdown的狠人
- 掩码是个啥, Youtube快捷键
- 看了CSAPP后几章和pwn.college.
- 20: /dev/tty和pty等等
- 还在ELF格式中挣扎.
- 21: Xshell的警告信息, 不想看, 只要
touch ~/.hushlogin
这个文件就可以隐藏了, 删除后又显示 - 看了一点computer networking
- man手册还能装中文, 不想折腾了, 安排了
apt install manpages-dev
可以查看系统调用 - 22: cc命令最终链接到gcc, 这是为了向后兼容
- 连pwn.college慢的一批, 也为了计算机系统课装个Ubuntu了, 再弄个clash
- 见识到了好多新的命令, linux有多的操作就写在Linux使用里吧.
- 干脆把那个弄成清单, 然后具体细节写在每个WP里就可以了
- runoob上的命令大全每天看一点得了, 至少混个眼熟
- 23: 终于, 在ubuntu弄好了clash, 深深感到原理一个都不知道只会操作软件的痛苦….link
- 看计网
第二十九周 1/24-1/30
- 24: 继续很多的计网和一点pwn.college
- 25: ASCII码中的控制字符就是按键盘上的Ctrl+字母符号来打出的,
Caret(^) notation is a notation for unprintable control characters in ASCII encoding
The actual meaning or interpretation of the individual control-codes is not prescribed by the caret notation, and although the ASCII specification does give names to the control-codes, it does not prescribe how software should respond to them. - 学了一波screen,
也不知道有啥用就是了…, 真香. - 快捷键没完没了了, 一个终端还有这么多
- pwn.college做到了(?)
- 26: 一点点pwn.college和科目四
- 27: pwn.college+computer networking
- 看了一篇PIPE&FIFO的文章, 看不下去了话真的太多了, 也是佩服一篇博客需要这么多字的. 还是linux manual管用.
- 28-30 看计网和pwn.college.
第三十周 1/31-2/6
- 1/31: 除夕夜, 还在看计网. 看的属实有点慢.
- 2/1-2/2: 计网+春节.
- 2/3-4: 看书, 进度315/775
- 2/5: 连着看了几个小时看不下去了, 不重要的直接跳过不看了.
第三十一周: 2/7-2/13
- 2-8: 下午五点, 前六章看完. 巩固下知识(除了算法)
- 2-9-13: 终于看完了, (摸:fish:了一天)
- 开始pwn.college!
第三十二周: 2/14-2/20
- 14: 发现要自己写汇编代码, 之前看过的一部分还算用到了, 还好做了笔记不然和没看一样. 以前都是看现成的都没有自己写过.
- python3.8特性: Assignment expressions:
:=
和=
是补充关系并不是替换关系 - deadbeef渊源 和Hexspeak有关系. 这个Hexspeak也挺有意思, 是用16进制数字来表示英文单词, 可用来编魔数.
- 15: Linux的typora里双击或选中会自动删除文字居然是这个原因
- 自己亲自动手写起汇编代码才发现这么多细节没有注意到, 要抓紧时间练练了, 这上面的题目还都比较基础嘞.
- 16: 还在pwn.college
- Undefined Behavior -> here and here
- signed overflow (which is undifined behavior) -> here and stackoverflow
- 17: 一点点的pc, shellcode injection又有好多的资料引用和视频, 全看完得几天时间(一天半就看完了)
- 18: 看完了pc的shellcode module视频, 引用文章看个两篇就结束了.
- 复习操作系统. ….到底需要一个何等庞大的基础知识体系啊……(tm拖了两天才要开始)
- 看了一点disk image的相关wikipedia: disk image | loop deivce | device file
- 还有Disk image和optical disc image区别:
A disk image, in computing, is a computer file containing the contents and structure of a disk volume or of an entire data storage device
An optical disc image is a disk image that contains everything that would be written to an optical disc - Once you’ve downloaded an ISO Image you can mount it as a loopback device.
- It may be used to install an operating system onto a file system without repartitioning a disk.
- 还有Disk image和optical disc image区别:
- 19-20: 回学校准备中, 不知道学了啥, 至少是复习了ucore
开学了!(pc+编译原理)
第三十三周 : 2/21-2/27
- 21:复习CS143, 今天或许能复习完.
- 答案是不能, 诶明天随便看看bison的东西吧. 然后再看看cscd70, 再然后看看LLVM IR Pass
- 22: 如上所述, 主要看了CSCD70. 今天没有课.
- What is complier’s front end 在课件里找到了, 一开始还去WiKi上查.
- 23: 继续CSCD70(看完了lecture 1)
- an induction variable is a variable that gets increased or decreased by a fixed amount on every iteration of a loop or is a linear function of another induction variable.
- 不知道该不该看视频, 感觉优点在于能练习一点听力以及听一些问答, 缺点的话会慢一些, 不过这么一想倒是利大于弊了.
- 24: 继续CSCD70. 第三个视频看了一半多
- Number sign in
#def
. It turns out to be the mathematic sign. - 25: 看完第三个. 查了live variable analysis的作用.
- 还查了计算机系统小班课的第二个问题: 不同操作系统, 不同编译器, 不同处理系架构对生成目标文件的过程有什么影响.
- gcc由cc1, as, ld三个部分组成, 另外一个llvm把cc1模块化为三个部分, 然后正常汇编, 链接时可选optimization.
- Clang只是一个front end.
- 26-27: 查RFC中的ipv4和ipv6, 不知道在哪里有写. 还有C99待看
- 复习补充linux命令(操作系统小班课)
- 有空看下IBM网站, 上面好像挺多有用的博客资料啥的..
- system programming in c or c++? -> link
- 这两天都在做计网实验, 要写c99程序和测试程序, 边翻文档编写是慢了点. 不如说我敲代码好像一直都慢了点…..
第三十四周: 2/27-3/6
- 27-1: How can I scroll back in GDB’s command window in the TUI mode?
- vim range 范围 and this
- debugging Infomation: native format | GCC 4.8 change to DWARF4 | -g -gstabs -gxcoff -gstabs+ | peda
- 2-4: 装docker看视频和pwn.college.
- docker的DNS解析错误无法
sudo apt-get update
, 解决办法 (还是不如换源有用) . - 看了几节多伦多大学油管上的英文视频还是挺有意思的, 就当锻炼了一下听力吧, 倒回来看哈工大视频. compiler的front end看的挺累的, 不过优化部分看起来意义更明了一些, 努力一下看下两三周弄得完不.
- docker的DNS解析错误无法
- 5: 哈工大的视频相当紧凑, 不知道内容有没有少一些. 主要是英文没法两倍速, 要不然就听不懂了…..
- 6: 有点颓废.
- 在看llvm的文档, 要不然这个过程是一无所知….. link
- JIT and AOT(self-evident) | first class language?? | Archive file |
第三十五周: 3/7-3/13
- 7: build system | 只能去看在线的llvm手册了.装好的docker还是别去执行unminimize这种命令了.
- 8: docker的相关命令.
- 9: 计网实验中. Return/Enter Key | Wireshark手册 | 每日单词进行中 |
- 10:什么神奇计网, 水过得了, 除了浪费时间没啥意义.
- 11: 啊啊啊我要学llvm, 怎么感觉前几天效率这么低呢.
- 看了clang和llvm文档(比如-emit-code), 了解了一下如何写出一个pass. cmake写法待看.
- 指导书里面的clang还有优化选项, 不明白这是在整啥, 去掉好像也没事. clang到底是前端还是编译驱动啊?
- 取消windows防火墙阻挡ICMP报文. link
- 12: 开卷.
- 13: 又看了一天的文档+补掉课内的无聊作业. 把LLVM设计结构看了个大概, 有点通透的感觉了(
第三十六周: 3/14-3/20
- 14: 怎么还在看文档. 弄了vscode编辑, 纯vim真是接受不能. woc好像快三周了, 我还没搞完, 还有makefile和cmake的语法没看呢.
- 15: userland(user space) | FreeBSD | copyleft,GPL | Ninja |
- 看了cmake&&make&&C++虚继承. 然后开始写代码.
- 16: static member functions(stackover & cppref) |
replaceAllUsesWith()
这个函数我看了半天, stackoverflow查了查llvm文档又看了看, 还去doxygen看源码, 终于看懂llvm是怎么组织这一对关系的了. 具体在CSCD70笔记里.
- 17: 继续cmake和Assignment2.
- 搜到一篇好文, vim的窗口使用, here
- 18-20: pwn.college
第三十七周: 3/21-3/27
- 21-23: capstone engine(一个反汇编引擎) | vfork&fork
- pwn.college.
- 24: concolic execution | Symbolic execution |
小班真折磨, 水平差太多有点无法沟通的感觉, 我书都看完了他们才刚开始….
- 25-26: 封校, 计网小班, 无了
- 27: windows网卡必须是英文名才能代理 | POSIX 和 System V的linux系统调用关系|
- pwn.college
第三十八周: 3/28-4/3
- 28-29: 疫情疫情疫情 pwncollege | discord’s direct message (DM) | vim regex | BFD & objdump+readelf
/proc(kernel doc) | dumping memory with gdb |复习了一下malloc以及gdb中的操作, 因为执行环境的原因之前的堆题我都没有使用过gdb来调试, 今天趁着小班课一弄累得半死, 一会儿对齐没搞明白, 一会儿小端法没看出来, 又一回儿被指针弄晕(把指向堆的指针赋值为只读data, 还在那儿想为什么p1不在maps里的heap段中???? 真绝了, 不过复习了一点点点点malloc, 熟悉了一下gdb的操作.
- 30: elf启动流程(是时候看看程序员的自我修养了) |
小班课又栽进去几个小时, 好心录个视频希望更多人能看见吧.
- 31-1:
啊这, 一个小班课上午基本就没了, 然后下午调了下mykeymap, 晚上看了看日语和单词, 看了看bomblab, 一天没了……
bash的manual可以一看 |- 看sandboxing的视频, 看了两遍感觉细节还是很多. 就像我小班课上和别人讲题目, 一些小操作我都没有去解释, 第一次见肯定会觉得信息量过大.
- 2: tty terminal shell…&short explain&computer terminal | pwn.college-babyjail.
- terminal在以前是一台实际的设备, 在今天的图形化界面系统中更多使用的是terminal emulator, 而不需要一台真实的terminal.
- tty–teletype(writer): accessing the computer by sending keystrokes to it and receiving output back from it, printing it to a piece of paper.
- gnome-terminal and konsole are themselves running on a tty, 包括graphical subsystem.
- 为什么在termnal emulators里能使用^H(就是backspace)这样的ANSI escape code? 因为尽管hardware text terminals have become increasingly rare in the 21st century, the relevance of the ANSI standard persists because a great majority of terminal emulators and command consoles interpret at least a portion of the ANSI standard.
- 直接看kp的终端设备类型简介
- 3: babyjail | gcc编译选项:
-masm=intel
gdb选项:set disassembly-flavor intel
| 找到了所有的视频
第三十九周: 4/4-4/10
- 4: CFI directives&complier option | 看视频中, 没找到想要的
- 5: guide to POSIX&full doc | pwn.babyjail to 10 | StackOverflow上的capability(ies), man上也有, 是chroot权限的背后原因
- 6-7: bash的手册也得看下, 操作好多, 主要是shell语言的规则. 第二天bomblab重做(32位的…….)
- 8-10: gdb refresher
第四十周: 4/11-4/17
- 11: 没做啥
- 12 13: history in screen | make的语法也太多了…….要对文档PTSD了 | 13看了点计网小班.浪费时间的东西.
- 14: reverse engineering…. 我真的认真的只看汇编, 但是一想也没必要, 都用IDA pro了. 然后下载了pwnsh, 加上三个gdb插件安装脚本, 再熟悉了一下IDA的界面, 然后写个python脚本东查查西查查(list comprehension), 最后看了看视频, 知道了gdb调试set-uid的程序不能成功derandomize以及IDA添加struct类型等等来完善decompiled code, 用了整个下午和晚上. 好像是学了点东西…..
- 15-17: reverse !
IDA的远程gdb | pluginlist(一时半会儿用不到,先star)
第四十一/二周: 4/18-5/1
- 18满课(…)19做了一点20-22IDA debug| reverse engineering
- 23: memory error, 弄了pwndbg的多视图和tmux. 比screen好用, 还能整鼠标(
- 26: 继续memory error, 7做到12
- 27: 视频里真有一些没见过的用法….要不要花时间看呢?
- 剩下几天做到了exploitation的第7题.
第四十二周: 5/2-5/8
- 3: exp的第七题开始Yan85, 回顾了一下rev的18+19.
- 4-5: 过了一遍mem, 看了rop视频, 在整heap.
- 6-7: 在整rop. 还是有以前那几道ctf题里没见过的东西, 毕竟这课程会更系统一点.
不同版本libc使用 | - 8:rop. 打算看两眼ROPgadget的实现, 了解一下python项目.
- 试了下gdb的record和reverse exec.
第四十三周: 5/9-5/15
- 9-10: rop
- 11-12: race condition
- 13: race + 补一下shell programming(详见linux使用), 都查到了POSIX的标准了.
- 14-15: race, level1测试+shell编写, 结果level5直接卡住过不了. 下周看视频去了.
- ………………….感觉还是得用python, 没有用shell的. os模块挺多函数. 不过shell看了下也不亏(大概)
第四十四周: 5/16-5/22
- 16-17: race到8, 17号看office hour中的level8 socket, 感觉前面的socket相关都跳过了不太好…..
- 18: 写了python的并行. vim安装了点插件.
- 19: 继续race | pthread锁 | awk语言
- 又不明所以地做完了level9, level10一个绕过semaphore又整不会了, 看视频去了.
- 20: race完成+kernel一点视频
- 21: LibcSearcher和python包安装更新,整理root文件夹 | pwn_kernel环境搭建+视频 | 看linux inside syscall part1 |
- 22: pwnkernel, 内容很多.
online manpage |
第四十五周: 5/23-5/29
- 23: kernel vedio + online challenge usage
- 24: kernel challenge to 6(half complete)
- 25: Computer Network Lab5: root dns server on local machine. + 计系小班
- 26-27: kernel大概做完了 | 了解一下CTFtime上的东西.
- 28: 愚蠢的验收浪费一天时间. 本科像是个笑话
- 29: advanced, vedio+note.
第四十六周: 5/30-6/5
- 30:
我焯, 改变策略, 全力保研, 居然能在分流后保研边缘, 马上开始内卷.
卷失败咯, 开始找工作. 23.3.10留
- 31-5: 复习+一点点advance.
第四十七周: 6/6-6/12
- 6-7: 复习周.
开始暑假
重新计数, 因为大二结束了(小学期不是个东西, 所以不算)
第一周: 6/13-6/19
- 13-16: 期末考试
- 17: 重新看最后一章
- 18: 发现代码中还是有很多细节, 仔细分析视频中, 并且对代码做了一点小修改.
- 19: 在kali2021上的libc2.33中(比2.31多了tcache对齐检查和地址保护)实现了任意读写原语构造, 完全理解了示例代码中的每一行的操作. 不过在context.binary忘加上这里卡了挺久…….仍然在level1.
scanf 和 printf 的空字节读写问题 | tcache poisoning.
第二周: 6/20-6/26
- 20-23: 一些advance和小学期.
- 24-26: 算是学完了pwn.college, 然后整点单片机编程, 再然后开整CTF
第三周: 6/27-7/3
- 27-3: 单片机编程 + git的进阶使用(vscode GitLen+ Git CLI)
写代码有点上头, xyw整了个离谱玩意儿我打算这两天看看.
第四周: 7/4-7/10
- 4-6: 完善倒计时单片机, 顺带熟悉了一下git的各种功能.
- 7: docker在ubuntu上的安装使用(最后也没整成, Desktop装不上或者设置打不开, 还是放弃了.)
RESTful API | 装了个Ubuntu22.04 | 双系统整不明白,不装了
明天继续docker命令熟悉(没了图形界面只能继续学命令行了) - 其余: docker compose syntax | xinetd(which means deamon) |
.d
directory name |
Firmware, a special class of computer software used to control low-level hardware(like BIOS), held in non-volatile mem |
升级了一下虚拟机硬件兼容性, 现在kali支持了KVM |
第五周: 7/11-7/17
- 11: 又往单片机编程项目里加了点东西, 倒计时更完善(
大杂烩)了 - 12: kernel module programming | device.h都不知道在哪里,搜都搜不到哪里下载 |
- 13: 继续 | 看了xyw的STC-OS |
- 14: 弄明白90%的STC-OS | vim | CTF-WiKi in kernel
- 15: kernel | ???
- 16: kernel ROP(环境部分) 遇到了一点问题, 两个小时解决了.
- 17: 继续ROP(代码部分) 修改python库代码错误
第六周: 7/18-7/24
- 18: ret2user代码,
回龙岩一趟, 没学多少.
- 19: strtol()到类型指定长度就会停下 | 调试
- 20: 继续WiKi | MSR和gs/fs相关内容, 写在new_start里面 |
- 21: 用
svn checkout [/trunk]
下载相应子文件夹 | 继续bypass smep | 把extract移动到bin下 - 22: 查Intel手册, Double fetch
- 23: fetch + userfaultfd, 看了半天的constgrep源码, 居然只是硬编码的宏定义. 还是用lookup_constants了.
饥荒+Clannad
- 24: ????????????????????????????
全是饥荒
第七周: 7/25-7/31
- 25: 涉及到内核的macro好难查出来 | userfaultfd |
- 26: kernel 收尾 | IO_FILE
- 28: 复习堆利用的各种技巧.
- 29: 没得学了…..问skr去了 | 开了一天车…
- 30: 复习heap利用.
- 31: 继续 | linux specifications | LSB standard | HOOK
第八周: 8/1-8/7
- 1: libc多版本(使用glibc-all-in-one) | 添加了chlibc到/bin中.
- 2-3: large bin attack | Tcache
- 7: heap
第九/十周: 8/8-8/21
- 8: off-one-byte
- 9-10: b00ks
- 15: 终于看完了heapstrom2.
- 18: pylance 添加import路径
- 19: 看ret2dlresolve
第十一周: 8/22-8/28
- 21: 小学期报告
- 22-26: 小学期+ret2dlresolve+链接装载与库
- 27-28: 32位
第十二周: 8/29-9/4
- 29-30: 整理关于ELF动态链接的知识点
- 31-1: 继续整理加上32位情况下的exp的写
- 2: 32位partial的exp
大三第一学期
第十三周: 9/5-9/11
- 3-4: 64位no RELRO的exp, 遇到一堆问题. 总算解决了. 4号下午整了vscode和chrome安装路径, 删掉旧版.
- 怎么学的这么慢?
- 5: 64 partial RELRO
- 6: 64的终于完成了…… 不过并没有Wiki上说的那么多问题, 只有system对齐和伪造表的地址和栈空间的问题
- 7-8: 7号没干啥, 上课. 8号 HITCON CTF 2020 START!!
- 9: 看了看revenge of pwn, 还要研究pwntools的源码, 真不愧是misc类. 看一半转到kernel题Spark.
- 10: 看懵了. 在IDA里分析ko的反汇编…..
- 11: qiyz_ssyahu
第十四周: 9/12-9/18
- 12: 属于是只能照着wp来理解一下到底怎么做题的….. 还没整完Spark. 恢复ko文件里的类型信息都给累死.
- 13: 调试spark
不会吧一道题要看这么多天???
终于完全恢复了ko文件的类型信息. 搞明白了流程. 这几个结构体真是可以从零开始猜测的? - 14: 这exp复杂程度又是第一次见了…. 四百多行, 用了userfaultfd+setxattr. 还没看呢.
感觉可以每天看下how linux works. - 15: 看的内容同昨日
- 16-18: 看书
第十五周: 9/19-9/25
- …
效率过低了吧…..周六浪费一天,睡了好久又玩游戏,这玩意儿真特么停不下来
- 19-20: linux那本书.
- 还搁这spark.
- .
第十六周: 9/26-10/2 不好评价
第十七周: 10/3-10/9
- 345: 看完了spark. 进度最慢的一段时间.
- 6: 昨晚问了skr, 我决定加入r3kapig战队. 没想到都不用面试直接进的. 然后发现CSR CTF马上要开始了, 看了看往年的题目.
- 7: 看不懂, 居然还有以太坊的题目, 不过顺带看看以太坊是个啥.
- 8-9: 还是注册了一个队伍, 不过只做出来了签到题….这CSR综合度太高了, 到处都是知识盲区, 不是传统PWN方向的题目.
第十八周: 10/10-10/16
- 10: 看了看ASIS CTF的往年题目, 决定参加下周六的比赛试试….这次是有传统pwn题的, 好像无内核题目.
- 11: 到了难度2/4的题目, 短短几十行却看不出有什么问题….
- 12-16: 做完了strvec, 才想起来tcache就是heap前面那个0x290的chunk. 顺带体验了一下ASIS CTF 2022, 结果签到题都看半天, 第一个直接用了非预期解, 第二个都忘了%n$这个操作.
顺带继续做完ASIS2021的pwn题, 顺便体验一下rev的题目.
下一个打算做做sekai ctf的题目, 官方自带wp, 爱了, 就做个两年份的, 顺带看看其他类别的题目长长见识.
见到了forensics & ppc类别的题目.
第十九周: 10/17-10/23
- 17-18: 这两天都是readable的exp学习, 顺带如何使用提供的docker环境和部署脚本, 知道了其中一种非预期解, 但是没有跑通, 另一种队里的非预期解没懂, 还有预期解还需要看. 预计又要看个一周了, 学校还有一些其他的事情.
- 19: 预期解+x32_abi解.
- 20: x32abit听说ubuntu18可用 | 继续intended solution.
- 21: 完成, 看了两眼babyscan, 原来是格式化字符串的内容, 差点忘了. 看了看jsy.
- 22: 继续jsy. 没看两眼发现hackergame开了, 不出所料的没会几题, web math基本直接放弃.
- 23: 看namespace. man page真的多, 但是全.
第二十周: 10/24-10/30
- 24: (user)namespace + capabilities, 手册的东西真的多.
- 25-26: 还看了credentials等等. 在题目那里整理了一下. 还是靠wp吧.
- 27: 看rust, 准备入个rust-pwn的小门.
- 28: rust
- 29: 看了下hack.lu. 午夜开的比赛, 一觉醒来pwn题都没几个解出来的. 估计我也解不出来.
烦的要命, kali的dpkg不支持zst压缩, 也不知道怎么在debian上弄2.34glibc, 为了运行程序只能转到ubuntu, dpkg是可以的.
不过还要装proxychain patchelf chekcsec等等等真实够麻烦. sudo也打不习惯. 好的环境搭不起来再见hacklu. - 30: 研究placemat的汇编层面c++ class, 当做复习了一下类继承虚表啥的. 又是啥都没做出来的一次比赛.
第二十一周: 10/31-11/6
- 31: hacklu讨论里有各题wp, 还不错又得看个几天了.
- 1: 都在看placemat, 主要是c++的各种东西, 当然还有printf这种简单但又复杂的函数…………..
- 2-6: C++ ABI 周末运动会.
我居然看了这么多天
第二十二周: 11/7-11/13
- 7: 没做啥
在pdd淘宝京东磨蹭买跑步裤子
- 8: 终于搞定placemat. 全凭自己弄了. 看看riot.
- 9: dirtypipe环境搭建, 整半天linux编译, 打了两个patch才能用.
- 10: 继续dirtypipe. 看了看cm4all team的关于如何发现该漏洞的blog.
- 11-13: 继续dirtypipe.
第二十三周: 11/14-11/20
- 14: 做完了dirtypipe的ppt, 主要是思考如何讲解. 除了原理还读了发现者的blog, 看了下是怎么发现的, 看了一堆东西比如zip zlib. 又看了几个exp实践了一下, 加上看到了x32 abi的编译选项解决了ASIS2022 readable的一种方法. 挺花时间的, 不过还算看了不少东西.
看ordersystem, 麻烦记得有问题先重启 - 15: 看ordersystem, 涉及到了反弹shell, 即reverse shell. 又开始看python bytecode.
- 16: 继续字节码. python nested function |
- 17: 又想开始复习一下编译原理了, 诶时间不太够 | underscore in python
- 18: 整了点学校里没用的实验报告, 不过倒是看了一些路由器命令行配置 | 继续bytecode
- 19-20: 没啥变化, 还真的看了一个星期啊.
周六社团, 开摆了一天, 看七个小时手机玩一晚上游戏, 绝了
一知半解总是令人难受, 决定看完cpython的所有流程.
第二十四周: 11/21-11/27
- 21: python internal
- 22: 找了半天没看到啥有用的, rst插件全都出错, 什么sys.exc_info()放在with语句里也不知道做啥的, 把3.11源码弄成本地repo然后寻找call_method&load_method. 折腾一大圈, 不如看看
test_test()
的dis结果, , , , , - 23: 转了一大圈, 重新来看手写的bytecode, 终于全弄明白里面每一步操作了, 接下来是复现
- 24: python decorator用法:geeks/pydoc_func | functiontools.partial | what is func(foo)(bar)
看了看pwncli的用法, 虽然好用但是又是一个学习成本负担, 我已经处在学习速度跟不上用的速度的状态了. 周末还有hitcon ctf, 这种难度我多半又是队里陪跑. 哎hack.lu的题还要看完吗?还有之前的seccon ctf还没看呢. - 25: 忙着复现, 自己写的时候又是一堆问题
- 在windows上装了pwntools, 感觉应该不太能用吧…待研究.
- 又是sendline被识别成noreturn, 手动在sendraw中加入return
- hitcon直接出来些vm escape, browser之类的题目. 完全没看过啊喂
- 26: 还tm的是复现
- 看到群里有人说userfaultfd有个类似的技术叫做FUSE. 得, 又是个没见过的东西. 搜一下. Local Privilege Escalation (LPE)
- 成功了. 我逐渐理解了一切.
- 27: 为了hacklu的byor又继续开始house of apple. 又是一个大坑, FSOP都还没看. seccon也没看, hitcon更没看, sekai不知道啥时能看. 先不看了.
- 去了下信安协会, 在考虑我真的想做研究么? 可能也不是很想做. 现在也该做些real-world的东西了, ctf题目真是一群职业老手搞出来玩玩的东西, 我一下做这种世界范围的比赛还是难顶, 而且每一个题目的方向的小入门都能看一两个星期.
第二十五周: 11/28-12/4
- 28: 迷茫中, 正在复习编译原理打算继续学中间代码优化和插桩. cs143的笔记写得也太简洁了, 重看的时候基本和没有一样. 幸好还是记得大概的流程的.
- 29: 复习, 补充笔记. 解决了typora和vscode由于gpu加速导致的显示模糊–参数加上
--disable-gpu
. - 30-1: 没啥特别的. 整了点学校的无聊报告.
- 2: 整报告 |
$@ $*
的区别 | - 3-4: 复习补充完了, 4号晚上开始CSCD70
第二十六周: 12/5-12/11
- 5:
llvm. 一个环境起不来, ubuntu docker莫名抽风, kali没法apt llvm-12. 我: ?????发现只是docker context的问题. - 6: 纠结中. 没东西学让我很焦虑, 最直接的是在这里写不了一行字. 随便看点PE的格式和qemu逃逸(包括明天).
- 7: ?
- 8-9: 看点llvm加上qemu逃逸
- 10: RCTF看两眼(只会看两眼, traits直接又劝退了) + modern C++这书可以看看,
因为一个allocator又去查资料了.好吧和allocator无关.
已经在马不停蹄的学C++20 qemu逃逸 rust了, 还有fuzz和一堆不知道其存在的技术
modern C++有空就看一点吧…. 有点学累了, 学不完主要是, 还没什么成果. 下周去实习看看吧, 看起来怎么就一个星期..? - 11: 呃, 看了点qemu
第二十七周: 12/12-12/18
12-14: 实习. 看书加上帮点小忙.
啥流程都属于保密范围, 只能写写那本书上的东西
装了pdf xchange editor, 换掉了xodo这个奇葩玩意儿. 天天给我整黑屏. 然后装装虚拟机, 搞定了32/64位软件版本问题(52pojiexp上直接就是32位的), 然后自己试试分析真实程序. ctf还是太玄乎了. 发现的问题还是写在malware-analysis里面.
15-17: 都在看书, 简单的看了一遍. 六百页的书直接过了一遍.
-
...赶在第一波阳了, 舍友你干的好啊
第二十八九周: 12/19-1/1
- 19-21: 宿舍颓废中
- 22-25: 快恢复了但是意外的没动力学. 真是罕见.
- 26-31: ?
- 1: 看了看ASIS Final, 不出意料的没啥帮助, 想了想还是回顾下RCTF的C++ Reverse.
第三十一周: 1/2-1/15
- 2: 看C++. 感觉cppreference上的可以过一下. 这个时候又回想起来modern cpp了, 赶紧捡起来一起看看.
- 3-4: Diary C++逆向. 看了下某位一开始就学过的SGI STL, 稍微看两眼也不是完全不懂. 自己写两下代码对照着复现下C++源码.
- 5-12:
- 15: ?
玩了死亡搁浅 像素工厂 坎巴拉, 然后顿悟游戏只是浪费时间, 全都卸载了
第三十二三周: 1/16-1/29
- 19: 看完了Diary, 慢得离谱.
- 20: BFC, 又是C++逆向. 去年除夕夜在看计网, 今年除夕夜也得看点啥才行. 说不定就成我的惯例了呢(wwwwww)
- 21: 除夕夜在看STL源码剖析, 不错.
- 22: 看了点书, 到P113
- 23-24: 看书
- 25: 看红黑树和map的源码.
- 29: 做bffc又见C++ ABI.
第三十四周: 1/30-2/5
- 3031: 搞不明白暂时没整house of apple. 看看GAME.
- 1-3: 看GAME中, 东查西查折腾半天没看明白. 还被gef抽风整傻了(一个多小时).
- vmlinuz && bzImage
- 看了一位带佬的博客只能感叹又全又清晰, 自己的kernel pwn分散在各个post就相形见绌了. 诶不整理也凑合吧.
- 4: 继续GAME. 查了挺久的东西, tag类函数连文档都没有….
- 5: 看完了GAME. 可以整整常用include. kernel题目还是有很多实现我没有整理过. 可能还要开好几篇文章. gef和pwndbg感觉也升级了一些功能, 还没来得及看看. pwndbg用顺了. 换一个挺麻烦. 更新感觉很nice, 果然要定期瞧瞧.
第三十五周: 2/6-2/12
- 6: 整理下笔记, 主要是kernel pwn.
- 7: 继续整理
- 8: 仍然是. 补完了slab allocator是个啥. CTF-wiki上啥也没提我现在才知道这东西. 好久都没人更新了. 发现内存管理还有好多可看的. 有时间瞧瞧.
- 9: 看书, linux的一些操作.
- 10: 没干啥, 看了两页.
- 11: 看博客, 电脑清灰+32G内存
- 12: 看modern C++和linux内存管理.
-rc in linux version is Kernel release candidates
第三十六周: 2/13-2/19
- 13-15: 看cpp新标准.
- 16: 看看肖佬的idekCTF2022 Coroutine.
- 17-18: 继续看
- 19: 开了两个CTF, js wasm risc-v全都不熟, 又是围观的一天.
第三十七八周: 2/20-3/5
- 20-26:
大量的 Noita
复习, 装matlab等等ing. - 27: matlab装好了, 学习手册中
- 28: 发现太多了, 一时半会学不完, 但是发现了作者源码. 那没事了
- 1: 搞定网安课小复现. 过于简单了这下. 看点如何检测nsf5隐写的论文.
- 2-3: 看论文, 查深度学习和浅层学习概念. qq使用时长有点超时了, 没用还是关了.
- 4: 折腾了matlab选择组件+安装,
看了巨人
尝试下载代码, 发现xshell不能用(重启后解决), 下完了发现matlab显示有问题, 折腾半天发现要关闭FXAA… - 5: 炼丹.
第三十九周3/6-3/12
- 6: 炼丹.
- 7: 炼丹. 把实验验收可能用到的脚本写了, 大功告成, nsf5检测成功率99.84%.
- 8: 思考人生中, 回顾Coroutine. 我还是更倾向于把manual全部看一遍. 看到暑期阿里云内推, 投了.
- 9: 复习.
面试相关
- 10: 复习 + 招聘会参观.
- 11: 菜的真实.
面试, 不过和纯聊天一样, 面试官还和我讲解了一些东西. 比如说可能的方向是虚拟化漏洞挖掘, 蓝队攻防. 还说我简历的东西太少了, 这也确实, 我连CTF比赛的队伍都没有写, 他怎么知道我的水平如何. 问了一句队伍的名次, 现场搜了一下Real World CTF rank 4th, 但是呢这比赛我也没特别的贡献. 还问到有无真实漏洞挖掘经历, 自然也是无, 有没fuzz过系统漏洞, 无+n, 开头自我介绍一句”和我学的比较相近”这下是骗自己了. 什么事OSS(?) 还问到了我对于一些安全风险有什么样的想法, 这就更离谱了, 我平时是一点也不知, 感觉和他的要求差挺多的吧, 没有什么实际的经验, 虽然只是实习但我自己都觉得会的太少… 绝了, 学了两年其实啥也不会. 对自己挖漏洞的能力也不太肯定. 太难了, 先投点别的公司吧, ahhhhhhhhhhhh挤点简历去了.
- 12: 继续看
然后发现绝大多数都是网安, 二进制的是真的少.
第四十周: 3/13-3/19
- 13: 看了看web安全笔记这个网站, 安全运营啥的.
还有noita
- 14: 这个网站没有很多东西, 一下就过了, 一些命令和程序看了也用不到.
再回顾一下, 然后整下AFL Fuzz, 顾着思考人生了尝试玄武实验室
- 15: 复习下中间代码优化…..
- 16-17: LLVM 康康网上面试题
- 18: 面试题加上机器学习相关概念.
- 19: 看了看linux内核管理的内容, 然后打算开始AFL的看.
第四十一周: 3/20-3/26
- 20: 看了AFL++, 以及一点牛客上的消息
- 21: 继续AFL. 看到gitmodules,
二面. 玄武好像没戏了……………………………………………………..面试完顿时不想看fuzz了, 问了协议栈, cve提交和linux内核漏洞复现, 还是去整点linux漏洞吧……………………………………………
- 22: 找了点内核cve的东西(晚咯), 看了看长城杯warmup例题, 这种简单题都写不利索了… 牛客浏览+n
- 23: 啥也没干.
- 24: 复习pwn_kernel, 长城杯, 就整出一道rev…
- 25: NKCTF, 大半天整出三道题, only_read逆完编码然后发现一个栈溢出我居然除了爆破libc地址想不到怎么利用. 做到第二天五点遂放弃.
- 26: 挣扎了几下nkctf后, 决定会看一下hackergame. 第一的也太全能了, 密码网安二进制全都会, 一道v8的题目都有现成exp套上去. 看完其他的赶紧学学v8漏洞, 虽然17年的还是有点久远.
第四十二周: 3/27-4/2
- 27: 还算是学了点吧…
get了一个openai账号. 学习其他题目. 用gpt发现我居然没认出来base64的编码操作, 逆天. 看了点wine.
- 28: 用了用gpt.
- 29: 难受. 看到ret2dlresolve使用了fake_link_map, 是还没用过的东西.
- 30: 看到python generator |
整理rop的函数 | 复习bytecode | 看了点v8, 思考接下来要学什么. 发现坑太深, 还不如学学linux kernel
- 31: 找了找能学的cve. 还是先看看TIPC的.
- 1: TIPC | hack-a-sat 离谱的比赛
- 2: 给学弟妹们整点东西.
第四十三周: 4/3-4/9
3: 调戏chatgpt. 发现paper copilot, 又补点深度学习的东西.
4 5: 复习下nkctf
6: 看了看symbol execution和angr. jinja | whatisjinja
Templates are an essential ingredient in full-stack web development. With Jinja, you can build rich templates that power the front end of your Python web applications.
7-8: 看神奇论文 | 在angr示例里面看到自动化exp, 感觉又是一个大坑…
9:
骑车一个v8的洞, 记录一下万一想看了呢 | hackergame里面二进制文件比较好像又是一个坑.没得看了
第四十四周: 4/10-4/16
- 10: 看点angr, 环境居然没装成功. 看计算机设计大赛的东西
- 11: 整理简历 看AFL 设计文档
- 12: 补了点论文的东西(浪费时间……)
- 13: 尝试linux内核cve, 但是也没找到几个. 诶用用syzcaller吧, 至少搭个环境用用先… 打ctf有点耽误时间了这下…
- 14: syz中.
- 15: 复习zsh等shell编程中.
- 16: 该死的llvm项目
第四十五周: 4/17-4/23
- 17: 仍然是
- 18: syz调试中. 终于能用了.
- 19: 人给我跑废了
- 20: 看syz文档中. 看Go语言特性中. 特别是接收器.
- 23: 尝试fmtstr.
第四十六周: 4/24-4/30
- 24: 纠结一道格式化字符串 买票ing
- 25: angstormctf复盘.
- 26-30: ?
第四十七八周: 5/1-5/14
- 1-3: ?
- 4-5: 研究JUCE文档
- 6: 开始写GUI.
- 7: GUI, 复习下考试
蚂蚁面试, 一面挂了, 问就是没有实际经验. 简历上一行行的问我, 计算机网络学得怎么样, 实习干了啥, 熟悉c/c++是做了什么, 最近的一次赛题是啥,
- 8: 查了查漏洞挖挖掘
- 9: 面试llvm优化, 一面就过了… 阿里系人才评估 GUI 无聊的论文报告
纯聊天, 问我是不是自己学的, llvm学的咋样, bb是什么, 操作系统实验印象深刻的是哪个实验, 寄存器和内存的区别是什么, ctf做了啥.
- 10: GUI 流密码部分
- 11: GUI完成三部分.
- 12:
第..?周
- 6/28: 人在实习, 没人带才是问题, 初创公司是这样的…看了ubuntu23.04的内容
- 29: 看了msf的东西, auto forward port |
- 今天是哪天已经不重要, 工作的东西没法写在网络上, 也算知道有些东西为什么那么难查了, 自己找是没有出路的. 已跑路, 最多写点通用的东西了.