本章讲了一些IDA的小知识,有很多是我目前还不知道的, 收集一下以后能用得上
将样本拖入IDA后勾选Manual load
, 然后点击OK
,输入基地址,这样可以在IDA进行加载时就执行基址重定向相关工作,同时,这种操作还有另一个好处, 可以让IDA显示PE头部数据.
点击顶部菜单栏Options
->Genaral
, 将Number of opcode....
设置为10,就可以看到硬编码了
图中红色箭头
表示跳转未执行
绿色箭头
表示跳转执行了
蓝色箭头
表示无条件跳转
如图所示, 虚线箭头表示条件跳转
, 实线箭头表示无条件跳转
, 向上的箭头一般代表循环
函数窗口中列出了IDA解析出的所有函数,并关联了相关属性如开始地址,结束地址,长度,类型等 (之前竟然没注意到这个窗口还有后面的部分)
名字窗口展示了IDA解析出来的函数名称,字符串名称,变量名称等一些名称字符串.
字符串窗口显示了IDA解析出来的字符串,但是仅支持ASCII码字符串展示
分别展示了程序的导入函数 导出函数 已识别的结构体
当你乱拖动窗口发现弄不回去了的时候, 点击Reset desktop
可以将各个窗口位置重置, 同样的, 点击Save desktop
也可以保存你设置好的窗口布局
IDA中的地址是内存中拉伸后的地址, 当你在HEX查看器里发现一些有趣的数据时,可以通过Jump to file offset
直接输入文件偏移进行跳转, 省去了我们手动进行地址转换的时间.
Alt+T 搜索字符串,可以搜索指令的字符串 如 fs:
Alt+B 搜索字节数据, 如 30 00 00 00
当IDA无法正确识别一段函数时,可以按P
手动要求IDA识别函数
Alt+P
可以指定函数的细节,如开始位置,结束位置,是否为EBP寻址,参数变量默认长度等
如图, IDA将0x410000识别为了一个内存地址, 我们可以按下O
让IDA将其识别为一个普通的立即数,如下图
当一个函数的参数类似图上这种展示,肯定不易阅读的, 鼠标放在数据上, 按M
,可以将常量0指定为宏名称
dllmain的地址是0x1000d02e
定位到了0x100163CC
去除重复引用,共5个函数调用了共9次
pics.praticalmalwareanalys.com将被触发
函数头部说明了参数个数为1个,因此识别出的局部变量个数为23个
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)