IDA 工具
静态分析神器
参考: https://xz.aliyun.com/t/4205
计算动态地址
在 ida 的静态地址, 如何换算成 运行时的动态地址?
- ida :
CTRL+S拿到 .text 代码区的起始地址; - x64dbg: 符号→ 拿到基址
- 即: 运行时地址 = 基址 + 代码偏移
常用快捷键
IDA中的快捷键都是和菜单栏的各个功能选项一一对应的,基本上你只要能在菜单栏上找到某个功能,也就能看到相应的快捷键,这里记录几个常用的:
a:将数据转换为字符串 f5:一键反汇编为C代码 esc:回退键,能够倒回上一部操作的视图(只有在反汇编窗口才是这个作用,如果是在其他窗口按下esc,会关闭该窗口) shift+f12:可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置
ctrl+w:保存ida数据库 ctrl+s:选择某个数据段,直接进行跳转 ctrl+鼠标滚轮:能够调节流程视图的大小 x:对着某个函数、变量按该快捷键,可以查看它的交叉引用 h: 数值进制转换 g:直接跳转到某个地址 n:更改变量的名称 y:更改变量的类型
/ :在反编译后伪代码的界面中写下注释 \:在反编译后伪代码的界面中隐藏/显示变量和函数的类型描述,有时候变量特别多的时候隐藏掉类型描述看起来会轻松很多 ;:在反汇编后的界面中写下注释
u:undefine,取消定义函数、代码、数据的定义
帮助技巧
汇编和流程图切换 右键可以切换 文本视图(汇编) 和 图表视图(流程图)
流程图显示指令地址 在菜单栏中设置:option⇒general > line prefixes; 注意要图表视图中打开
自动添加汇编注释 菜单栏中设置:option⇒general >Auto comments; 类似 x64的 “显示指令提示”
汇编搜索
其实就是把汇编指令转二进制搜索; 在 HEX View-A 视图, 搜索 ⇒ 字节序列