1 IDA是什么?
IDA是一款反编译软件,可以查看二进制的汇编代码,常用于逆向和问题定位。与其他商业软件类似,IDA也提供了很多类型的版本,基础的用法可以使用IDA Free
。本文会简单介绍下IDA的基本用法。
2 IDA界面
- 最上面是功能菜单和快捷按钮
- 在快捷按钮下方有彩色的条带色块,不同的颜色表示不同的段,例如,浅黄色是数据段,黄色是代码段,当选中某行代码时,就会在该位置显示小的绿色箭头
- 主界面的左侧是函数列表,右侧显示汇编代码
- 最下面就是输出窗口,例如对文件进行分析是否成功
3 汇编基础
按照汇编指令的风格,主要分成两种:
- Intel汇编:x86架构汇编语言中使用的风格,被Windows平台采用
- AT&T汇编:x64架构汇编语言中使用的风格,被Linux平台采用
两种汇编语言一个比较大区别就是操作数的顺序,Intel汇编的源操作数在右边,目的操作数在左边,而AT&T则刚好相反。
每条汇编指令包含两个部分:操作码和操作数,有的指令只有一个操作数,有的指令有多个操作数。
常用的操作码(不同的汇编的操作码的名称有小的差别):
- move:将数据从一个位置移动到另一个位置,两个位置就是两个操作数
- load/store:将数据加载到寄存器/将数据从寄存器保存到内存
- cmp:比较两个操作数,并设置比