没有合适的资源?快使用搜索试试~ 我知道了~
769482 从零开始学IDA逆向1-31章
需积分: 5 4 下载量 127 浏览量
2023-12-21
11:20:21
上传
评论
收藏 52.04MB PDF 举报
温馨提示
试读
494页
769482 从零开始学IDA逆向1-31章769482 从零开始学IDA逆向1-31章769482 从零开始学IDA逆向1-31章769482 从零开始学IDA逆向1-31章769482 从零开始学IDA逆向1-31章
资源推荐
资源详情
资源评论
从零开始学 IDA 逆向
(1-31 章)
原著:Ricardo Narvaja
译:六文钱
前 言
《从零开始学 IDA 逆向》是本人在 2020 年春节假期间翻译的一部 IDA 软件
使用的教程,同时也可以作为逆向工程的入门教程使用。教程的作者为 Ricard
o Narvaja,读者可以到以下页面下载教程原文以及附件。
http://ricardonarvaja.info/WEB/IDA%20DESDE%20CERO/
该教程共有 67 个章节,本篇收录了前 31 章,主要介绍了 IDA 软件的基本
操作、静态分析、动态调试、脱壳破解等内容,对于逆向工程入门和掌握 IDA 软
件的使用操作具有较大的参考价值。
其余章节偏向于软件漏洞利用开发,译者也没有完成全部翻译,不过并不影
响本篇内容的学习。
翻译教材的目的一方面是对网络上现有中文逆向工程入门资料进行补充和
更新,作者在第一章就阐述了使用 IDA 软件的优势。同时也是译者本身一个学习
的过程。由于译者本身水平有限,译文中可能存在错误纰漏之处,望读者谅解。
六文钱
2021.03
目 录
1 简介 ....................................................... 1
1.1 为什么使用 IDA ........................................... 1
1.2 IDA 安装 ................................................ 2
1.3 使用 IDA 加载程序 ........................................ 3
2 数值系统以及 IDA 搜索功能 .................................... 12
2.1 数值系统 ............................................... 12
2.2 十六进制数 ............................................. 13
2.3 ASCII 码字符 ........................................... 15
2.4 IDA 中的搜索功能 ........................................ 19
3 CPU 寄存器以及数据传输指令 .................................. 26
3.1 IDA 加载器 ............................................. 26
3.2 寄存器 ................................................. 26
3.3 MOV 指令 ............................................... 30
4 数据传输以及栈操作指令 ...................................... 40
4.1 XCHG 指令 .............................................. 40
4.2 Keypatch 插件 .......................................... 44
4.3 栈操作指令 ............................................. 46
5 LEA 指令 ................................................... 53
5.1 LEA 指令............................................... 53
5.2 函数参数及局部变量 ...................................... 53
5.3 LEA 的其他用法.......................................... 55
6 整数运算与逻辑运算指令 ...................................... 57
6.1 整数运算指令 ........................................... 57
6.2 逻辑运算指令 ........................................... 61
7 流程控制指令 ............................................... 66
7.1 无条件跳转指令 JMP ...................................... 66
7.2 有条件跳转指令 ......................................... 72
7.3 CALL 和 RET 指令 ........................................ 73
8 静态逆向分析入门 ........................................... 75
8.1 程序加载详解 ........................................... 75
8.2 查找关键字符串 ......................................... 78
8.3 查找关键函数 ........................................... 80
8.4 标记指令位置 ........................................... 84
8.5 修改指令 ............................................... 85
9 函数栈逆向分析 ............................................. 89
9.1 安装 Visual C++运行时 ................................... 89
9.2 符号文件 ............................................... 89
9.3 定位 main 函数 .......................................... 91
9.4 函数的栈 ............................................... 93
9.5 Main 函数参数 .......................................... 96
9.6 局部变量 ............................................... 98
9.7 Atoi 函数 ............................................. 101
10 IDA 调试器 ............................................... 104
10.1 选择 IDA 调试器 ....................................... 104
10.2 调试器界面功能 ....................................... 105
10.3 条件跳转指令与标志寄存器 .............................. 112
10.4 SET EIP ............................................. 120
11 标志寄存器 ............................................... 122
11.1 CARRY FLAG .......................................... 122
11.2 OVERFLOW FLAG ....................................... 124
11.3 SIGNED FLAG ......................................... 125
11.4 ZERO FLAG ........................................... 126
11.5 条件跳转与标志位 ...................................... 127
12 程序注册逆向分析 ......................................... 132
12.1 通过命令行参数确定 main 函数 ........................... 132
12.2 Main 函数栈分析....................................... 135
12.3 Main 函数局部变量 ..................................... 140
12.4 循环和代码块编组 ...................................... 143
12.5 注册算法分析 ......................................... 147
13 IDA Python 简介 .......................................... 152
13.1 安装 ipyida .......................................... 152
13.2 Ipython 的使用 ....................................... 152
13.3 Idapython 的使用 ..................................... 155
14 程序脱壳简介 ............................................. 160
14.1 什么是加壳 ........................................... 160
14.2 加载加壳文件 ......................................... 160
14.3 文件和内存占用 ....................................... 161
14.4 STUB 和 OEP .......................................... 165
14.5 寻找 OEP ............................................. 167
14.6 API 函数 ............................................. 170
14.7 保存脱壳后的数据库 .................................... 171
14.8 通过执行断点寻找 OEP .................................. 174
15 转存并重建导入函数表(IAT) ............................... 177
15.1 使用脚本转存为可执行文件 .............................. 177
15.2 什么是 IAT ........................................... 180
15.3 重建 IAT ............................................. 185
16 Aspack 脱壳 .............................................. 192
16.1 PUSHAD 和 POPAD ...................................... 192
16.2 使用 idapython 进行调试 ............................... 192
16.3 使用 idapython 进行 DUMP............................... 199
17 远程调试 ................................................. 204
17.1 环境配置 ............................................. 204
17.2 远程调试 ............................................. 205
17.3 寻找 OEP ............................................. 209
17.4 转存及 IAT 重建 ....................................... 212
17.5 取消随机基址 ......................................... 217
18 编写注册机 ............................................... 219
18.1 Main 函数及其参数 ..................................... 219
18.2 Security cookie 等局部变量............................ 222
18.3 用户名和密码处理 ...................................... 225
18.4 算法总结 ............................................. 233
18.5 使用 Python 编写注册机................................. 234
19 GUI 程序逆向 ............................................. 239
19.1 关键判断定位 ......................................... 239
19.2 GUI 控件 ............................................. 242
19.3 用户名处理 ........................................... 246
19.4 密码处理 ............................................. 255
19.5 算法总结与注册机 ...................................... 256
20 漏洞与栈缓存区溢出 ........................................ 259
20.1 什么是软件漏洞 ....................................... 259
剩余493页未读,继续阅读
资源评论
IT技术伪专家
- 粉丝: 614
- 资源: 244
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功