从零开始学IDA逆向 中篇 PDF 文档

发布于 2024-05-31 06:01:18 字数 3818 浏览 30 评论 0

本章介绍 Windbg 的安装。Windbg 可以通过 IDA 的界面进行操作。Windbg 是一个非常优秀的调试器。但是使用起来比较麻烦,它像命令行一样输入命令执行,而且使用起来有点复杂。但是可以将 IDA 友好的界面和 Windbg 的引擎结合起来进行调试。Windbg 在调试系统核心,了解堆溢出时的状态或者解决 bug 时非常的有效。教程后续章节中会接触这些内容。

安装 Windbg 有很多种方式。不幸的是,在不同环境中差别很大,读者需要自行安装测试直到成功。由于作者使用 Windows10 系统,所以可以从微软的网站上下载 Windows 10 SDK。

32 Windbg 安装与配置 .. 1
32.1 下载 Windows SDK 并安装 Windbg . 1
32.2 配置 Windbg .. 2
32.3 lm 命令 .. 5
32.4 设置符号文件路径... 6
32.5 使用 Windbg .. 8
33 Windbg 插件安装 ... 11
33.1 安装 pykd 和 mona . 11
33.2 测试 pykd 和 mona . 14
34 DEP 和植入代码 21
34.1 什么是 DEP .. 21
34.2 Process Explorer ... 22
34.3 什么是 ROP .. 24
34.4 植入代码 25
35 Idasploiter . 37
35.1 SetProcessDEPPolicy 37
35.2 编写脚本 41
36 ROP . 46
36.1 DEP 实战 46
36.2 VirtualAlloc 函数 ... 49
36.3 手工实现 ROP . 51
36.4 VirtualAlloc 参数 ... 64
37 ROP 自动化 67
37.1 Windbg 加载程序及插件 . 67
37.2 mona 命令选项 69
37.3 使用 mona 输出的 ROP .. 70
37.4 ROP 手动修复 . 73
38 SEH . 80
38.1 CANARY 变量 . 80
38.2 Structured Exception Handling .. 85
38.3 SEH 利用 88
38.4 跳转地址 95
39 启用 DEP 时的 SEH 利用 . 102
39.1 测试无 ROP 脚本 .. 102
39.2 Agafi 工具 . 104
39.3 ROP 脚本 ... 107
40 通用 shellcode .. 112
40.1 通用 shellcode . 112
40.2 练习... 114
41 堆栈中的字符串 ... 118
41.1 char[]字符串 ... 118
41.2 char*字符串 125
41.3 全局变量字符串 .. 127
41.4 堆字符串 ... 132
42 函数指针利用 . 141
42.1 main 函数 .. 141
42.2 函数指针 ... 144
42.3 指针复用 ... 148
42.4 覆盖函数指针 153
43 堆溢出 .. 160
43.1 new ... 160
43.2 溢出分析与实现 .. 163
43.3 gflags 171
44 使用 windbg 查询堆 179
44.1 PAGE HEAP Full 模式 179
44.2 禁用 PAGE HEAP Full 模式 . 184
44.3 dt _heap_entry 命令 194
45 使用 mona 查询堆 .. 198
45.1 基址转换 ... 198
45.2 mona 堆命令 202
45.3 Layout 213
45.4 Windbg 修改指令 . 215
46 Windows 7 堆溢出利用.. 219
46.1 前言... 219
46.2 堆内存分析.. 220
46.3 Windows 7 vs Windows 10 227
47 堆结构体 236
47.1 LFH ... 236
47.2 FrontEndHeap .. 238
47.3 _HEAP_LOCAL_DATA .. 241
48 LFH 申请过程 . 247
48.1 HEAP 结构体 247
48.2 ForceFlags 255
48.3 BlocksIndex ... 260
48.4 Freelist .. 265
48.5 HEAP_BUCKET ... 268
48.6 LFH ... 270
48.7 HEAP_LOCAL_DATA 和 HEAP_LOCAL_SEGMENT_INFO . 273
48.8 HEAP_SUBSEGMENT ... 275
48.9 INTERLOCK_SEQ . 279
48.10 UserBlocks ... 281
48.11 LFH 结构体 284
49 Use after free . 292
49.1 下载练习文件 292
49.2 什么是 Use after free ... 293
49.3 调试分析 ... 299
50 Kernel Debugging ... 308
50.1 内核与虚拟内存 .. 308
50.2 搭建调试环境 311
50.3 查看进程命令 319
50.4 加载符号文件 326
50.5 创建驱动并调试 .. 328
50.6 手动添加符号文件. 335
50.7 使用 IDA 加载 ... 339
50.8 Windows 10 平台编译驱动 .. 343
51 示例驱动逆向分析 .. 350
51.1 DRIVER_OBJECT . 350
51.2 DriverUnload .. 352
51.3 DbgPrint .. 355
51.4 WDK 10 版本的驱动 ... 356
51.5 UNICODE_STRING 357
51.6 RtlCopyUnicodeString .. 358
51.7 DriverEntry ... 361
52 驱动与应用交互 ... 365
52.1 IOCTL . 365
52.2 IoCreateDevice 参数 366
52.3 驱动分析 ... 367
52.4 RtlInitUnicodeString .. 371
52.5 调用 IoCreateDevice 373
52.6 卸载驱动 ... 376
52.7 MajorFunction 字段 . 378
52.8 DriverDispatch 函数 380
53 IRP 结构体 ... 389
53.1 dt 命令选项 . 389
53.2 调试分析 ... 395
54 利用 Python 脚本与驱动交互 . 399
54.1 PsSetCreateProcessNotifyRoutine 函数 ... 399
54.2 脚本内容 ... 402
54.3 运行脚本 ... 404
54.4 逆向分析 ... 407

下载地址: https://www.wenjiangs.com/wp-content/uploads/2024/03/qYcUNQ1z1eWRf0z0.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

や三分注定

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

qq_7J1imQ

文章 0 评论 0

《一串符号》

文章 0 评论 0

hls.

文章 0 评论 0

雅心素梦

文章 0 评论 0

塔塔猫

文章 0 评论 0

微信用户

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文