逆向思路

IDA 工具

静态分析神器

参考: https://xz.aliyun.com/t/4205

IDA 汇编命令分析以及函数调用过程

计算动态地址

在 ida 的静态地址, 如何换算成 运行时的动态地址?

  1. ida : CTRL+S 拿到 .text 代码区的起始地址;
  2. x64dbg: 符号 拿到基址
  3. 即: 运行时地址 = 基址 + 代码偏移

常用快捷键

IDA中的快捷键都是和菜单栏的各个功能选项一一对应的,基本上你只要能在菜单栏上找到某个功能,也就能看到相应的快捷键,这里记录几个常用的:

a:将数据转换为字符串 f5:一键反汇编为C代码 esc:回退键,能够倒回上一部操作的视图(只有在反汇编窗口才是这个作用,如果是在其他窗口按下esc,会关闭该窗口) shift+f12:可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置

ctrl+w:保存ida数据库 ctrl+s:选择某个数据段,直接进行跳转 ctrl+鼠标滚轮:能够调节流程视图的大小 x:对着某个函数、变量按该快捷键,可以查看它的交叉引用 h: 数值进制转换 g:直接跳转到某个地址 n:更改变量的名称 y:更改变量的类型

/ :在反编译后伪代码的界面中写下注释 \:在反编译后伪代码的界面中隐藏/显示变量和函数的类型描述,有时候变量特别多的时候隐藏掉类型描述看起来会轻松很多 ;:在反汇编后的界面中写下注释

u:undefine,取消定义函数、代码、数据的定义

帮助技巧

汇编和流程图切换 右键可以切换 文本视图(汇编) 和 图表视图(流程图)

流程图显示指令地址 在菜单栏中设置:optiongeneral > line prefixes; 注意要图表视图中打开

自动添加汇编注释 菜单栏中设置:optiongeneral >Auto comments; 类似 x64的 “显示指令提示”

汇编搜索

其实就是把汇编指令转二进制搜索; 在 HEX View-A 视图, 搜索 字节序列