IDA Pro(简称IDA),IDA交互式反汇编器多处理器特点是指IDA支持常见处理器平台上的软件产品。IDA支持的文件类型非常丰富,除了常见的PE格式,还支持Windows,DOS,UNIX,Mac,Java,.NET等平台的文件格式。
IDA软件简介
交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
IDA软件特色
IDA是Windwos下众多调试器工具中颇受欢迎的一种。IDA Pro首先是一个反汇编器,可以显示二进制汇编码(可执行文件或DLL(Dynamic Link Library),动态链接库),它提供的某些高级功能使我们更容易理解汇编代码。其次,它又是一个调试器,用户可以逐条调试二进制文件中的指令,从而确定正在执行哪条指令,以及执行的顺序等。
IDA常用快捷键
IDA快捷键功能说明
Enter跟进函数实现,查看标号对应的地址
Esc返回跟进处
A解释光标处的地址为一个字符串的首地址
B十六进制与二进制数转换
C解释光标处的地址为一条指令
D解释光标处的地址为数据,每按一次将会转换这个地址的数据长度
G快速查找对应地址
H十六进制与十进制数转换
K将数据解释为栈变量
:添加注释
M解释为枚举成员
N重新命名
O解释地址为数据段偏移量,用于字符串标号
T解释数据为一个结构体成员
X转换视图到交叉参考模式
Shift + F9添加结构体
空格切换文本视图与图表视图
ALT + M添加标签
CTRL + M查看标签
CTRL + S查看段的信息
冒号常规注释
分号注释,优先级比冒号低,即存在冒号注释的时候会覆盖显示
F5查看伪代码
ALT + T搜索字符串
Ctrl + T搜索下一个
ALT + B搜索十六进制
X查看交叉引用
SHIFT + F12打开strings窗口
Y修改数据类型
N修改变量名以及参数名
CTRL + F12函数调用图
F12流程图
Ctrl + F9导入c头文件
IDA汇编指令
资料转移指令
MOV 移动
MOVC 程式记忆体移动
MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令
PUSH 放入堆叠
POP 由堆叠取回
XCH 8位元交换
XCHD 低4位元交换
SWAP 高低4位元交换
算术指令
ADD 两数相加
ADDC 两数相加再加C
SUBB 两数相减再减C
INC 加一指令
DEC 减一指令
MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B
DA (DA A 只此一条指令)调整为十进数
逻辑指令
ANL做AND(逻辑与)运算
ORL做OR(逻辑或)运算
XRL 做(逻辑异或)运算
CLR 清除为0
CPL 取反指令
RL 不带进位左环移
RLC 带进位左环移
RR 不带进位右环移
RRC 带进位右环移
控制转移类指令
JC C=1时跳
JNC C=0时跳
JB 位元=1时跳
JNB 位元=0时跳
JBC 位元=1时跳且清除此位元
LCALL 长调用子程序
ACALL 绝对调用子程序
RET 由副程式返回
RETI 由中断副程式返回
AJMP 绝对转移
SJMP 相对转移
JMP @A+DPTR 散转,相对DPTR的间接转移
JZ A=0时跳
JNZA 0时跳
CJNE 二数比较,不相等时跳
DJNZ 减一,不等于0时跳
NOP 空操作
位变量指令
SETB 设定为1
ORG 程序开始,规定程序的起始地址
END 程序结束
EQU 等值指令(先赋值后使用)例:SUM EQU 30H
DB 定义字节指令
DW 定义字内容
DS 定义保留一定的存贮单元数目
BIT 位地址符号指令 例:SAM BIT P1.0
RET 子程序返回指令
RETI 中断子程序返回指令
∨ 展开