舔狗四部曲——三
扔进IDA里分析,有个JUMPOUT,查找资料,是因为IDA无法分析出来需要JMP到哪里,所以需要手动Patch汇编指令
文件{:download="tg3"}
IDA 的使用#
快捷键#
- E 可以修改函数的结尾
- Alt+P 可以编辑函数的详细信息
- Alt+E+F+D 可以删除函数定义 —— 其实就是模拟选择 Edit - Functions - Delete function
- D 把汇编转换成数字
设置#
字体#
IDA中的每一个工作区都可以设置自己的字体大小,选中工作区之后,点 Options - Fonts
窗口调整#
拖动子窗口的标题名,就可以把子窗口拖出来
把鼠标放在标题名的下面的灰色的条条,就可以单击拖回去
![[image-20240428114007216.png|500]]
花指令#
lea和括号#
lea ebx, [r14-1]
lea
——Load Effective Address
[rax]
—— 表示对存储在寄存器rax
中的内存地址进行间接引用
lea ebx, [r14-1]
其实就是
mov bx, r14
sub bx, 1
控制流平坦化#
[控制流平坦化 - CTF Wiki (ctf-wiki.org)](https://ctf-wiki.org/reverse/obfuscate/control-flow-flatten/
找到控制流的执行顺序,手动Patch,jmp
main的执行顺序:
loc_1160
loc_1220
loc_1200
loc_11E0
loc_1240
loc_11C0
loc_1190
check的执行顺序:
loc_14E8
loc_1540
loc_1560
loc_1510
dec的执行顺序
loc_1460
loc_1448
loc_1430
loc_1418
loc_1400
loc_13E0