
作者:(美)斯蒂芬妮·多马斯(Stephanie Domas),(美)克里斯托弗·多马斯(Christopher Domas) 著 C
页数:256
出版社:机械工业出版社
出版日期:2025
ISBN:9787111767404
电子书格式:pdf/epub/txt
网盘下载地址:下载x86汇编与逆向工程 软件破解与防护的艺术
内容简介
本书围绕软件反汇编领域展开。它从x86汇编语言的基础知识开始,逐步介绍如何利用这些知识进行逆向工程和规避软件保护措施。
本书从x86开始,首先介绍如何阅读、编写和构建驱动世界上大量计算机的汇编代码。然后,介绍如何使用一些业界最喜欢的工具(如IDA、Ghidra、OI川y等)对应用程序进行逆向工程。接着,介绍如何使用诸如补丁和密钥生成等技术进行软件破解,所有这些技术都利用了汇编和逆向工程的力量。最后,从防御角度审视了软件破解。
所涉及的具体知识大致分为以下几类:
汇编:计算机架构、x86、系统调用、构建和链接、ASCl、条件码、gdb、控制流、栈、调用约定。
逆向工程:侦察、字符串、逆向策略、剥离、链接、优化、编译器、行业工具。破解:补丁、密钥检查器、密钥生成器、Resource Hacker、Dependency Walker。
防御:反调试、防篡改、加壳、加密、解密、白名单、黑名单、RASP、代码签名、混淆等。
本书主要面向分析、研究、破解或防御软件应用程序的安全研究人员、逆向工程师和防御者以及开发者,旨在为读者提供技术和相关知识,让他们更好地保护自己的软件。
作者简介
斯蒂芬妮·多马斯(Stephanie Domas)Canonical首席信息安全官(CISO)、英特尔(Intel)前首席安全技术战略师。她在道德黑客、逆向工程和高级漏洞分析方面拥有逾十年经验,作为一位知名行业顾问,她的服务对象涵盖初创企业和行业巨头。她目前致力于使Canonical成为开源界最受信赖的计算伙伴。在英特尔时,她负责全公司的安全技术战略,推动英特尔在安全领域实力、竞争力和收益的不断增长。她是一位充满激情的教育家、战略家、演说家、顾问和安全爱好者。克里斯托弗·多马斯(Christopher Domas)斯蒂芬妮·多马斯(Stephanie Domas)Canonical首席信息安全官(CISO)、英特尔(Intel)前首席安全技术战略师。她在道德黑客、逆向工程和高级漏洞分析方面拥有逾十年经验,作为一位知名行业顾问,她的服务对象涵盖初创企业和行业巨头。她目前致力于使Canonical成为开源界最受信赖的计算伙伴。在英特尔时,她负责全公司的安全技术战略,推动英特尔在安全领域实力、竞争力和收益的不断增长。她是一位充满激情的教育家、战略家、演说家、顾问和安全爱好者。克里斯托弗·多马斯(Christopher Domas)知名硬件安全研究员。他的研究重点在于固件、硬件及处理器的底层安全漏洞利用。他因针对还不存在的问题提出天马行空的解决方案而闻名,其所提解决方案包括全球首个单指令的C语言编译器(M/o/Vfuscator)、能够生成程序控制流图的开发工具集(REpsych),以及在vi文本编辑器里实现的图灵机。
本书特色
本书围绕软件反汇编领域展开。它从x86汇编语言的基础知识开始,逐步介绍如何利用这些知识进行逆向工程和规避软件保护措施。?本书从x86开始,首先介绍如何阅读、编写和构建驱动世界上大量计算机的汇编代码。然后,介绍如何使用一些业界最喜欢的工具(如IDA、Ghidra、Olly等)对应用程序进行逆向工程。接着,介绍如何使用诸如补丁和密钥生成等技术进行软件破解,所有这些技术都利用了汇编和逆向工程的力量。最后,从防御角度审视了软件破解。所涉及的具体知识大致分为以下几类: 汇编:计算机架构、x86、系统调用、构建和链接、ASCII、条件码、gdb、控制流、栈、调用约定。 逆向工程:侦察、字符串、逆向策略、剥离、链接、优化、编译器、行业工具。 破解:补丁、密钥检查器、密钥生成器、Resource Hacker、Dependency Walker。 防御:反调试、防篡改、加壳、加密、解密、白名单、黑名单、RASP、代码签名、混淆等。本书主要面向分析、研究、破解或防御软件应用程序的安全研究人员、逆向工程师和防御者以及开发者,旨在为读者提供技术和相关知识,让他们更好地保护自己的软件。
目录
目 录译者序前言关于作者关于技术撰稿人关于技术编辑第1章 反编译和架构 11.1 反编译 11.1.1 反编译何时有用 11.1.2 反编译JIT语言 21.1.3 保护JIT语言 31.2 实验:反编译 41.2.1 技能 41.2.2 要点 4目 录译者序前言关于作者关于技术撰稿人关于技术编辑第1章 反编译和架构 11.1 反编译 11.1.1 反编译何时有用 11.1.2 反编译JIT语言 21.1.3 保护JIT语言 31.2 实验:反编译 41.2.1 技能 41.2.2 要点 41.3 架构 41.3.1 计算机架构 41.3.2 汇编 61.4 总结 10第2章 x86汇编:数据、模式、寄存器和内存访问 112.1 x86简介 112.2 汇编语法 122.3 数据表示 132.3.1 数字系统的基数 132.3.2 位、字节和字 142.3.3 处理二进制数 162.4 寄存器 172.4.1 x86中的寄存器 182.4.2 寄存器的使用 192.5 内存访问 202.6 寻址模式 232.6.1 绝对寻址 232.6.2 间接寻址 232.6.3 基址加偏移量寻址 242.6.4 索引寻址 242.6.5 基址–索引寻址 242.7 总结 25第3章 x86 汇编:指令 263.1 x86指令格式 263.2 x86指令 273.2.1 mov 283.2.2 inc、dec 303.2.3 add、sub 303.2.4 mul 303.2.5 div 313.2.6 and、or、xor 313.2.7 not 323.2.8 shr、shl 323.2.9 sar、sal 323.2.10 nop 333.2.11 lea 333.3 整合所有内容 343.4 常见的x86指令错误 353.5 总结 36第4章 构建和运行汇编程序 374.1 输出 374.1.1 控制引脚 384.1.2 由操作系统处理与显卡的交互 394.2 系统调用 394.2.1 sys_write 394.2.2 sys_exit 404.2.3 输出字符串 404.3 汇编和链接 414.3.1 Linux中的汇编与链接 414.3.2 编写汇编程序 424.4 objdump 454.5 实验:Hello World 454.5.1 技能 454.5.2 要点 464.6 ASCII 464.6.1 识别ASCII字符串 474.6.2 ASCII操作技巧 484.7 总结 48第5章 理解条件码 495.1 条件码 495.1.1 eflags 495.1.2 影响状态标志的操作 525.2 总结 55第6章 分析和调试汇编代码 566.1 二进制分析 566.1.1 静态分析与动态分析 566.1.2 调试 576.2 断点 576.2.1 软件断点 576.2.2 硬件断点 586.3 gdb 586.4 段错误 636.5 实验:鲨鱼模拟器3000 636.5.1 技能 646.5.2 要点 646.6 消除噪声 646.7 总结 65第7章 函数和控制流 667.1 控制流 667.1.1 指令指针 667.1.2 控制流指令 677.2 x86中的逻辑结构 707.2.1 if(…) {…} 707.2.2 if(…) {…} else{…} 717.2.3 do {…} while (…); 757.2.4 while (…) {…} 767.2.5 for (…; …; …) {…} 777.2.6 switch (…) {…} 797.2.7 continue 837.2.8 break 847.2.9 && 867.2.10 || 867.3 栈 877.3.1 栈是如何工作的 877.3.2 x86栈 877.4 函数调用与栈帧 917.4.1 x86中的函数 917.4.2 栈分析 947.4.3 调用约定 957.4.4 cdecl 967.4.5 栈帧 1007.4.6 宏观程序 1057.4.7 需要记住的事情 1067.5 总结 107第8章 编译器和优化器 1088.1 寻找目标代码入口点 1088.2 编译器 1108.2.1 优化 1118.2.2 剥离 1138.2.3 链接 1148.3 总结 116第9章 逆向工程:工具和策略 1179.1 实验:RE Bingo 1179.1.1 技能 1179.1.2 要点 1189.2 基础侦察 1189.2.1 objdump 1189.2.2 ltrace和strace 1199.2.3 strings 1229.2.4 Dependency Walker 1239.3 逆向工程的策略 1249.3.1 寻找感兴趣的区域 1249.3.2 迭代注释代码 1249.4 总结 125第10章 破解:工具和策略 12610.1 密钥检查器 12610.1.1 不好的方法 12710.1.2 合理的方法 12710.1.3 更好的方法 12810.1.4 最佳方法 12810.1.5 其他的建议 12910.2 密钥生成器 13010.2.1 为什么要创建密钥生成器 13010.2.2
赞助用户下载地址
立即下载(解压密码:www.teccses.org)
Article Title:《x86汇编与逆向工程 软件破解与防护的艺术》
Article link:
https://www.teccses.org/27150.html