E-BOOK 逆向工程原理、技术与CTF实践 周守辰 逆向工程原理、技术与CTF实践

逆向工程原理、技术与CTF实践

👤 周守辰 📖 清华大学出版社 📋 9787302712640 🌐 zh-CN
73
下载次数
4.8
用户评分

📦 下载本书

  • 系统入门逆向工程:从零开始,通过通俗讲解和大量实验,快速掌握逆向分析核心原理。
  • 提升实战能力:通过58个实验、9个CTF赛题和5个实战案例,将理论应用于真实场景。
  • 掌握多平台分析:覆盖Windows、Linux、Android平台,学会使用IDA、x64dbg等主流工具。
  • 应对反调试与加壳:深入解析花指令、反调试检测、加壳脱壳技术,提升对抗能力。
  • 解决CTF竞赛难题:提供CTF真题解析,帮助参赛者攻克逆向类题目。
★★★
中级
入门初级中级进阶高级
  • 逆向工程入门者:零基础也能轻松上手,通过系统学习快速建立知识体系。
  • 网络安全从业者:提升二进制分析能力,增强漏洞挖掘和攻防对抗技能。
  • CTF参赛者:通过真题练习和实战案例,攻克逆向类题目,提升竞赛成绩。
  • 软件开发者:理解代码底层运行机制,提高调试和优化能力。
  1. 按顺序阅读:从基础知识到进阶提升,再到实战案例,循序渐进。
  2. 动手实践:每章实验务必亲自操作,结合教学视频加深理解。
  3. 重点学习调试:第4-6章是核心,掌握动态调试和脱壳技术是逆向关键。
  4. 挑战CTF题目:完成第3篇实战,检验学习成果,提升综合能力。
  • 扎实的逆向基础:理解程序编译、运行和可执行文件格式,掌握逆向分析原理。
  • 熟练的工具使用:精通IDA、x64dbg、GDB等主流逆向工具的操作。
  • 实战经验积累:通过游戏破解、外挂实现等案例,积累真实项目经验。
  • 对抗技巧提升:掌握反调试、脱壳、Hook等高级技术,增强攻防能力。
  • CTF解题能力:熟悉CTF逆向题型,提升竞赛实战水平。

📖 书籍简介

产品特色

编辑推荐

资深网络安全博主“Mz1不是黑帽子”抽丝剥茧地剖析逆向工程的核心原理。一本书解锁二进制世界的“暗门”,让“不可读”的代码开口说话。58个实验、9个CTF竞赛题,5个实战案例、实用性很强。赠送超值配套资源:本书源代码+教学视频。本书特色:简单易懂:用通俗易懂的语言进行讲解,避免晦涩难懂的专业术语解读,学习门槛很低,即便是“小白”,也能轻松入门。内容新颖:书中涉及的大部分工具采用截至本书编写时发布的新版本,确保所讲知识紧跟技术发展趋势。实用性强:结合58个原创实验、9个CTF竞赛题、5个实战案例,详解逆向分析的核心技术与应用实践,内容非常实用,知识细节丰富,操作步骤详细。视频教学:书中的关键实验都提供配套教学视频,帮助读者高效、直观地学习。经验总结:全面归纳和总结作者多年在逆向工程工作中积累的大量逆向分析及CTF教学经验,帮助读者迅速上手并进行实践。答疑交流:提供B站(bilibili)和电子邮箱答疑与交流服务,帮助读者解决学习过程中遇到的各种问题。超值配套资源:涉及的源代码和教学视频

内容简介

《逆向工程原理、技术与CTF实践》结合58个原创实验、9个CTF竞赛题、5个实战案例,介绍逆向工程的核心原理与技术,涵盖Windows、Linux、Android等多个平台以及Java、Python、Go等多种编程语言与工具的逆向分析方法,旨在帮助读者从零开始系统学习逆向工程的理论与技术,并进行应用实践。《逆向工程原理、技术与CTF实践》共12章,分为3篇。第1篇基础知识,首先简要介绍逆向工程的基本概念、实施目的、应用与前沿技术,然后详细介绍逆向分析原理、逆向分析环境搭建和静态分析技术等,最后归纳总结并给出提升方法。第2篇进阶提升,首先介绍x64dbg和GDB动态调试技术,以及花指令、反调试检测与绕过、加壳与脱壳等相关技术,然后介绍Java、Python和Go三种编程语言和Unity游戏开发引擎的逆向分析方法,接着介绍Hook技术,最后归纳总结并给出提升方法。第3篇案例实战,首先介绍Windows7原版扫雷游戏的破解和辅助、植物大战僵尸游戏的破解和外挂实现、CS1.6透视外挂的实现三个游戏逆向分析应用实战案例,然后介绍Android勒索病毒和有道翻译Web接口两个软件逆向分析应用实战案例。《逆向工程原理、技术与CTF实践》内容丰富,讲解通俗移动,实用性强,适合逆向工程入门人员、网络安全从业者、信息安全人员、CTF参赛人员与爱好者、软件开发与测试人员、逆向分析爱好者等相关人员阅读,也适合作为高等院校信息安全和网络安全等相关专业的教材。

作者简介

周守辰,河海大学计算机科学与技术专业学士,南京航空航天大学网络空间安全专业硕士。B站网络安全博主(网名:Mz1不是黑帽子)。现就职于国内某网络安全公司。曾参与国内各大通信运营商、电网、银行等公司或机构的网络安全培训,担任逆向分析技术讲师,积累了丰富的网络安全教学经验。连续多年参与CTF赛事,取得诸多奖项,并为国内多家机构或公司的CTF竞赛命题。主要研究方向为Windows、Linux和Android平台的软件逆向破解与漏洞挖掘等。热爱分享,创作了多篇通俗易懂的技术文章,制作了多个科普视频。拥有2.3万粉丝。

目录

第1篇 基础知识
第1章 逆向工程概述—闻声探道 2
1.1 逆向工程简介 2
1.2 逆向工程的实施目的和应用 3
1.3 逆向工程的前沿技术 5
第2章 逆向分析原理—初窥门径 7
2.1 程序的产生 7
2.1.1 程序的编译流程 7
2.1.2 手动编译程序实验 8
2.2 程序在操作系统上的运行 10
2.2.1 关于操作系统和CPU 10
2.2.2 程序的运行与虚拟地址空间 11
2.2.3 解释型语言和编译型语言 13
2.3 初探可执行文件的格式 13
2.3.1 PE文件格式初探 14
2.3.2 ELF文件格式初探 15
2.3.3 APK文件格式初探 16
2.4 反编译可执行程序的原理 17
2.5 Patch修改可执行程序实验 20
2.5.1 修改字符串实验 20
2.5.2 修改程序绕过检测实验 21
2.5.3 修改APK定位实验 23
2.6 小结 27
第3章 逆向分析环境搭建—整装上阵 28
3.1 搭建开发环境 28
3.1.1 搭建C语言开发环境 28
3.1.2 搭建Python语言开发环境 29
3.2 搭建Windows逆向环境 30
3.2.1 安装IDA pro 30
3.2.2 安装Exeinfo PE 30
3.2.3 安装x64dbg 30
3.2.4 安装HexWorkShop 31
3.3 搭建Linux逆向环境 31
3.3.1 安装GNU编译套件 32
3.3.2 安装和测试pwndbg 32
3.4 反编译第一个程序 33
3.4.1 逆向工程之Hello World 33
3.4.2 CTF逆向初体验 36
3.5 小结 40
第4章 静态分析技术—观察、定位、思考和击破 41
4.1 深入剖析可执行文件的格式 41
4.1.1 PE文件格式 41
4.1.2 ELF文件格式 57
4.1.3 APK文件格式 65
4.2 IDA的基本使用方法 67
4.2.1 启动装载程序 68
4.2.2 基本功能的使用 72
4.2.3 使用IDA进行简单调试 80
4.3 从C语言正向开发到逆向分析 81
4.3.1 函数 82
4.3.2 基本数据类型 86
4.3.3 位运算与算数逻辑表达式 88
4.3.4 数组与指针 90
4.3.5 分支与循环 95
4.3.6 CTF简单例题分析 100
4.4 常见加密算法的逆向分析 102
4.4.1 Base64编码分析 102
4.4.2 MD5算法分析 105
4.4.3 RC4算法分析 109
4.4.4 TEA系列加密算法分析 110
4.4.5 AES加密算法分析 113
4.4.6 DES加密算法分析 114
4.4.7 CTF加密题的静态分析 115
4.5 小结 124
第5章 基础知识总结—打好基础,准备进阶 125
5.1 重点内容回顾 125
5.2 提升方法 128
第2篇 进阶提升
第6章 动态调试技术—在运动战中冷静分析 130
6.1 x64dbg的基本用法 130
6.1.1 使用x64dbg运行并附加进程 130
6.1.2 界面功能区 131
6.1.3 软件断点和硬件断点 131
6.1.4 条件断点的妙用 134
6.2 GDB的基本用法 136
6.2.1 GDB的基本命令 136
6.2.2 GDB的查看和修改内存命令 140
6.2.3 GDB的调试命令 142
6.3 小结 147
第7章 反调试技术—与逆向分析者进行博弈 148
7.1 花指令技术 148
7.1.1 引例 148
7.1.2 剖析原理 150
7.1.3 处理花指令 151
7.1.4 花指令的设计 153
7.1.5 CTF的花指令例题分析 153
7.2 反调试检测与绕过 160
7.2.1 Windows系统的反调试方法 160
7.2.2 Linux系统的反调试方法 173
7.2.3 双进程保护原理和实践 178
7.3 加壳与脱壳 182
7.3.1 自解密代码实验 183
7.3.2 手动脱壳实验 189
7.4 小结 192
第8章 常用编程语言与游戏开发引擎的逆向分析—知己知彼,百战不殆 194
8.1 Java语言的逆向分析 194
8.1.1 Java语言的运行原理与环境 194
8.1.2 从正向开发到逆向分析 196
8.1.3 CTF的Java语言逆向例题分析 198
8.2 Python语言的逆向分析 202
8.2.1 Python语言的运行原理与环境 202
8.2.2 PyInstaller打包成可执行文件 205
8.3 Unity程序的逆向分析 207
8.3.1 Mono打包的游戏逆向分析 208
8.3.2 il2cpp打包的CTF游戏题分析 211
8.4 Go语言的逆向分析 221
8.4.1 Go语言环境搭建 222
8.4.2 Go语言基础知识 222
8.4.3 CTF的Go语言的逆向例题分析 224
8.5 小结 230
第9章 Hook技术—监视运行状态,改变程序行为 231
9.1 初识Hook 231
9.2 进程注入方法 232
9.2.1 进程注入简介 232
9.2.2 导入表注入 233
9.2.3 远程线程注入 245
9.2.4 代码注入 249
9.3 虚表Hook 255
9.3.1 虚表基础知识 255
9.3.2 虚表Hook实验 259
9.3.3 虚表Hook总结 265
9.4 IAT Hook技术 265
9.4.1 IAT表基础知识 266
9.4.2 IAT Hook实验 266
9.4.3 IAT Hook总结 269
9.5 Inline Hook技术 270
9.5.1 Inline Hook原理 270
9.5.2 Inline Hook实验 271
9.6 使用Frida框架进行Hook设置 279
9.6.1 Frida环境搭建 280
9.6.2 Frida Hook Windows进程 282
9.6.3 Frida Hook Android App 284
9.6.4 Frida Hook总结 290
9.7 小结 290
第10章 进阶提升知识总结—渐入佳境 291
10.1 重点内容回顾 291
10.2 提升方法 294
第3篇 案例实战
第11章 游戏逆向分析实战—揭开外挂的神秘面纱 296
11.1 Windows 7原版扫雷游戏的破解和辅助 296
11.1.1 获取扫雷并绕过限制运行 297
11.1.2 获取雷区数据 300
11.1.3 扫雷自动化 308
11.2 植物大战僵尸游戏的破解和外挂实现 311
11.2.1 脱壳和修改资源 311
11.2.2 修改各种数据 319
11.2.3 自动化操作 334
11.3 CS 1.6透视外挂的实现 343
11.3.1 使用游戏数据定位画框 343
11.3.2 基于Hook OpenGl绘制透视效果 346
第12章 软件逆向分析实战—剖析各种软件的行为 349
12.1 Android勒索病毒逆向分析 349
12.1.1 查壳 349
12.1.2 脱壳 350
12.1.3 解锁 351
12.2 有道翻译Web接口逆向分析 351
12.2.1 测试请求流程并抓包重放 352
12.2.2 逆向分析请求参数并编写脚本 354
附录 359
后记 逆向漫谈—网络安全的路有多长 369

前言/序言

逆向工程是网络安全技术不可或缺的组成部分,它广泛应用于软件破解、病毒与木马分析、源代码恢复等方面,同时也是二进制漏洞挖掘的基础。逆向分析不仅是一门技术,更是一种思维方式。从结果出发向前反推,换一个视角往往能带来不同的思维方式。掌握逆向分析技术的人,往往能在多个领域具备思维优势,能够从不同的角度洞察问题的核心与关键点,从而更高效地解决问题。
在数字化时代,二进制逆向分析技术已成为信息安全领域的核心能力之一,市场需求持续增长。该技术不仅在软件安全与恶意代码分析方面至关重要,能够帮助企业和组织深入理解恶意软件的行为模式并制定相应的防御策略,而且在漏洞挖掘与修复方面发挥着关键作用。通过对软件进行逆向分析,可以精准定位漏洞,迅速应对安全威胁。此外,逆向分析技术在知识产权保护、商业竞品分析、教育和科研等领域都展现出重要价值。随着技术的不断创新和应用领域的扩展,逆向分析技术在信息安全领域发挥着越来越重要的作用,逆向分析专业人才的需求也持续地增长。
然而,与持续增长的市场需求形成鲜明对比的是专业人才的相对稀缺,以及现有学习资源的不足。目前,市面上的逆向分析图书总体数量有限,而且在内容上存在明显的薄弱环节:一些图书的实践操作步骤不够详尽,导致读者难以复现和深入;另一些图书则对底层原理的剖析不够透彻,让读者知其然而不知其所以然;此外,由于逆向与反逆向技术发展迅速,现有图书也未能涵盖最新的技术动态与对抗思路。基于此,作者编写了本书,意在弥补现有图书的不足,旨在使其成为一本兼顾核心原理、应用实践并能紧跟技术发展的学习用书。作者希望它不仅能够帮助读者夯实理论基础,而且能通过深入的原理剖析和清晰的步骤讲解,帮助读者快速建立逆向思维,从而在逆向工程的道路上走得更稳、更远。
本书特色
? 简单易懂:用通俗易懂的语言进行讲解,避免晦涩难懂的专业术语解读,学习门槛很低,即便是“小白”,也能轻松入门。
? 内容新颖:书中涉及的大部分工具采用截至本书编写时发布的新版本,确保所讲知识紧跟技术发展趋势。
? 内容实用:结合58个原创实验、9个CTF竞赛题、5个实战案例,详解逆向分析的核心技术与应用实践,内容非常实用,知识细节丰富,操作步骤详细。
? 视频教学:书中的关键实验都提供配套教学视频,帮助读者高效、直观地学习。
? 经验总结:全面归纳和总结作者多年在逆向工程工作中积累的大量逆向分析及CTF教学经验,帮助读者迅速上手并进行实践。
? 答疑交流:提供B站(bilibili,哔哩哔哩)和电子邮箱答疑与交流服务,帮助读者解决学习过程中遇到的各种问题。
本书内容
第1篇 基础知识(第1~5章)
第1章逆向工程概述,简要介绍逆向工程的概念、实施目的、应用及前沿技术。
第2章逆向分析原理,主要介绍程序的产生和运行原理,以及可执行文件的格式和反编译可执行程序的原理,并给出几个Patch修改可执行程序实验。
第3章逆向分析环境搭建,主要介绍C语言和Python语言开发环境的搭建,以及Windows和Linux平台逆向环境的搭建,并反编译第一个程序。
第4章静态分析技术,深入剖析可执行文件的格式、IDA的基本使用方法,以及从C语言正向开发到逆向分析的方法、常见加密算法的逆向分析。
第5章基础知识总结,对第1~4章介绍的重点内容进行回顾,并给出提升方法。
第2篇 进阶提升(第6~10章)
第6章动态调试技术,详细介绍x64dbg和GDB的基本用法。
第7章反调试技术,介绍花指令、反调试检测与绕过、加壳与脱壳等技术,并给出相应实例。
第8章常用编程语言与游戏开发引擎的逆向分析,主要介绍如何进行Java、Python和Go三种编程语言和Unity游戏开发引擎的逆向分析,并给出相关CTF竞赛试题分析。
第9章Hook技术,主要介绍Hook的概念、进程注入方法、虚表Hook、IAT Hook、Inline Hook等相关知识,并介绍如何使用Frida框架进行Hook设置。
第10章进阶提升知识总结,对第6~9章介绍的重点内容进行回顾,并给出提升方法。
第3篇 案例实战(第11、12章)
第11章游戏逆向分析实战,详解Windows 7原版扫雷游戏的破解和辅助、植物大战僵尸游戏的破解和外挂实现、CS 1.6透视外挂的实现三个应用实战案例。
第12章软件逆向分析实战,详解Android勒索病毒逆向分析和有道翻译Web接口逆向分析两个应用实战案例。
读者对象
? 逆向工程入门读者;
? 逆向工程进阶读者;
? 网络安全从业人员;
? CTF竞赛人员与爱好者;
? 软件开发与测试人员;
? 对逆向分析技术感兴趣的人员;
? 高校信息安全和计算机等专业的学生;
? 信息安全技术培训学员。
配套资源获取方式
本书涉及的源代码和教学视频等配套资源有两种获取方式:一是关注微信公众号“方大卓越”,回复数字“58”自动获取下载链接;二是在清华大学出版社网站(www.tup.com.cn)搜索到本书,然后在本书页面找到“资源下载”栏目,单击“网络资源”按钮进行下载。
另外,读者也可以在B站的“Mz1不是黑帽子”主页搜索书中给出的视频标识符在线观看本书配套教学视频。
售后支持
由于作者水平有限,加之写作时间仓促,书中可能存在疏漏与不足之处,恳请广大读者批评指正。

周守辰
2026年2月

📑 章节目录

  1. 第1篇 基础知识
  2. 第1章 逆向工程概述—闻声探道
  3. 第2章 逆向分析原理—初窥门径
  4. 第3章 逆向分析环境搭建—整装上阵
  5. 第2篇 进阶提升
  6. 第4章 动态调试技术
  7. 第5章 花指令与反调试
  8. 第6章 加壳与脱壳
  9. 第7章 多语言逆向分析
  10. 第8章 Hook技术
  11. 第3篇 案例实战
  12. 第9章 游戏逆向实战
  13. 第10章 软件逆向实战