gaobaonan 发表于 2021-11-19 21:16

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全局变量转换为结构体前后对边)

muker 发表于 2021-12-1 05:53

感谢楼主的无私分享

POP 发表于 2021-11-19 21:43

感谢你的分享

白云点缀的蓝 发表于 2021-11-20 17:03

感谢您的作品!

896654661 发表于 2021-11-20 23:22

感谢分享{:5_116:}

ahtbcfff 发表于 2021-11-27 13:21

非常感谢分享学些

soamber 发表于 2021-11-27 15:53

感谢分享,学习中!~https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

逆光尘埃 发表于 2021-11-29 10:26

马上开始学习1

mengzhisuoliu 发表于 2021-11-29 15:14

谢谢啦~~~~~~~~{:5_116:}

jliwss 发表于 2021-11-29 17:43

学习一下,谢谢大佬
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: IDA入门