IDA入门
1、常用快捷键A:将数据转换为字符串
C:将数据转换为代码
D:将数据显示为数据类型。
g:直接跳转到某个地址
n:更改变量的名称
x:对着某个函数、变量按该快捷键,可以查看它的交叉引用
H: 将立即值转换为10进制
Q: 将立即值转换为16进制
B: 将立即值转换为2进制
Y:更改变量的类型
F5:一键反汇编
ESC:回退键,能够倒回上一部操作的视图(只有在反汇编窗口才是这个作用,如果是在其他窗口按下esc,会关闭该窗口)
CTRL + ENTER 返回后一个保存位置。
; 添加重复注释
SHIFT + ; 添加非重复注释。
2、栈数组分析
a) 栈数组源码
(栈数组源代码)
b) 栈数组对应的汇编代码
(函数test_stack_array对应的汇编代码)
c) 双击局部变量跳转到函数的堆栈窗口
(双击局部变量跳转到函数的堆栈窗口)
d) 把数组首地址var_20转换为5个int的数组
(把数组首地址var_20转换为5个int的数组)
e) var_20转换为5个int的数组后的汇编代码和堆栈布局
(var_20转换为5个int的数组后的汇编代码和堆栈布局)
3、全局数组分析
a) 全局数组源码
(全局数组源码)
b) 函数test_global_array汇编代码分析
(函数test_global_array汇编代码分析)
c) 跳转到g_nArr的定义处
(跳转到g_nArr的定义处)
d) 把地址g_nArr转换为数组
(把地址g_nArr转换为数组)
e) g_nArray转换为数组后的定义
(g_nArray转换为数组后的定义)
f) g_nArray转换为数组后的汇编代码对比
(g_nArray转换为数组后的汇编代码对比)
4、全局结构体分析
a) 全局结构体代码
(全局结构体源码)
b) 全局结构体汇编代码分析
(全局结构体汇编代码分析)
c) 导入结构体头文件(头文件在附件中)
File->Load file->Parse C header file (或者直接快捷键ctrl + F9),然后打开View->Open subviews->Local types(或者快捷键Shift + F1)打开Local types窗口就可以看到刚解析的头文件(也可以手动添加结构体)
(打开Local types窗口,查看新添加结构体)
(查看新添加的结构体)
d) 手动创建结构体PEOPLE3
创建结构体主要包括创建字段和添加填充
(创建结构体)
(添加结构体字段)
(在某个字段后添加填充)
(删除结构体中的填充字段)
e) 把某个变量转换为结构体类型
(把某个变量转换为结构体类型)
(g_sangAnLei全局变量转换为结构体前后对边) 感谢楼主的无私分享 感谢你的分享 感谢您的作品! 感谢分享{:5_116:} 非常感谢分享学些 感谢分享,学习中!~https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif 马上开始学习1 谢谢啦~~~~~~~~{:5_116:} 学习一下,谢谢大佬