逆向分析
一、OllyDBG是一款调试分析工具,主要用于动态调试。
(一)窗口概况:
图中标号对应的功能区:
反汇编区域:1、地址;2、汇编代码对应的十六进制机器窗口;3、反汇编窗口;4、对应的注释。
寄存器区域:5、寄存器
数据区域:7、数据所在的内存地址;8、十六进制编码信息;9数据对应的ASCII码信息
栈区域:10、地址;11、数据;12、说明信息。
(二)常用快捷键:
F2:断点
F3:加载一个可以执行程序。
F4:程序执行到光标位置。
F5:缩小、还原当前窗口。
F7:单步步入。
F8:单步步过。
F9:直接运行程序,遇到断点处,程序暂停。
Ctrl+F2:重新运行程序到起始处,用于重新调试程序。
Ctrl+F9:执行到函数返回处,用于跳出函数实现。
Alt+F9:执行到用户代码处,用于快速跳出函数实现。
Ctrl+G :输入十六进制地址,在反汇编或数据窗口中快速定位到该地址处。
+号:转到下一步 //Plus
-号:转到上一步 //Minus
*号:转到当前指令地址 //EIP
Enter:跟进到地址处(例如:反汇编窗口中call指令后地址……)
(三)插件命令栏指令
bp 下断点
bc 清除断点
dd 以双字方式显示数据
dw 以字方式显示数据
db 以字节方式显示数据
? 计算表达式的值
二、IDA是一款静态反汇编分析工具。
视图简介:
IDA View-A:分析视图窗口,用于显示分析结果,可选用流程图或反汇编代码形式(通过鼠标右击Text view或Graph view切换)。
Hex View-A:二进制视图窗口,打开文件的二进制信息。
Exports:分析文件中导出函数信息窗口。
Imports:分析文件中导入函数信息窗口。
Names:名称窗口,分析文档中用到的标号名称。
Functions:分析文件中的函数信息窗口。
Structures:添加结构体信息窗口。
Enums:添加枚举信息窗口。
常用快捷键:
Enter:跟进函数实现,查看标号对应的地址。
Esc:返回跟进处。
A:解释光标处的地址为一个字符串的首地址。
B:十六进制与二进制数的转换
C:解释光标处的地址为一条指令
D:解释光标处的地址为数据,每按一次将会转换这个地址的数据长度。
G:快速查找到应地址
H:十六进制数与十进制数转换。
K:将数据解释为栈变量。
;:添加注释。
M:解释为枚举成员。
N:重新命名。
O:解释地址为数据段偏移量,用于字符串标号。
T:解释地址为一个结构体成员。
X:转换视图到交叉参考模式。
shift+F9:添加结构体。