《有趣的二进制:软件安全与逆向分析》文字版电子书[EPUB/PDF]
![《有趣的二进制:软件安全与逆向分析》文字版电子书[EPUB/PDF] 《有趣的二进制:软件安全与逆向分析》封面图片](https://img.nayona.cn/n/202606/09/ayvvkxr53jb.webp)
内容简介:
《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit 等安全工具。
作者简介:
爱甲健二(作者)
曾就职于NetAgent株式会社,负责逆向工程、恶意软件分析、渗透测试等工作。2008年7月任董事。此后,在株式会社Fourteenforty技术研究所(现更名为株式会社FFRI)从事计算机安全技术研究和软件开发工作。
曾参加Black Hat Japan 2008(日本)、HITCON 2011(中国台湾)等会议,并发表重大研究成果。着有《汇编语言教程》(アセンブリ言语の教科书)、《TCP/IP教程》(TCP/IPの教科书)等。
周自恒(译者)
技术图书译者,IT、编程及自然科学爱好者,初中时曾获得信息学奥赛天津赛区一等奖,曾任某管理咨询公司战略技术总监。
译有《图解CIO工作指南(第4版)》《大数据的冲击》《代码的未来》《30天自制操作系统》《图解密码技术》《家用游戏机简史》等。
目 录:
第1章通过逆向工程学习如何读懂二进制代码
1.1先来实际体验一下软件分析吧
1.1.1通过Process Monitor的日志来确认程序的行为
1.1.2从注册表访问中能发现些什么
1.1.3什么是逆向工程
专栏:逆向工程技术大赛
1.2尝试静态分析
1.2.1静态分析与动态分析
专栏:Stirling与BZ Editor的区别
1.2.2用二进制编辑器查看文件内容
1.2.3看不懂汇编语言也可以进行分析
1.2.4在没有源代码的情况下搞清楚程序的行为
1.2.5确认程序的源代码
1.3尝试动态分析
1.3.1设置Process Monitor的过滤规则
1.3.2调试器是干什么用的
1.3.3用OllyDbg洞察程序的详细逻辑
1.3.4对反汇编代码进行分析
专栏:什么是寄存器
1.3.5将分析结果与源代码进行比较
专栏:选择自己喜欢的调试器
1.4学习*基础的汇编指令
1.4.1没必要记住所有的汇编指令
1.4.2汇编语言是如何实现条件分支的
1.4.3参数存放在栈中
1.4.4从汇编代码联想到C语言源代码
1.5通过汇编指令洞察程序行为
1.5.1给函数设置断点
1.5.2反汇编并观察重要逻辑
专栏:学习编写汇编代码
第2章在射击游戏中防止玩家作弊
2.1解读内存转储
2.1.1射击游戏的规则
2.1.2修改4个字节就能得高分
2.1.3获取内存转储
2.1.4从进程异常终止瞬间的状态查找崩溃的原因
2.1.5有效运用实时调试
2.1.6通过转储文件寻找出错原因
专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行
分析吗
专栏:分析Java编写的应用程序
2.2如何防止软件被别人分析
2.2.1反调试技术
专栏:检测调试器的各种方法
2.2.2通过代码混淆来防止分析
专栏:代码混淆的相关话题
2.2.3将可执行文件进行压缩
2.2.4将压缩过的可执行文件解压缩:解包
2.2.5通过手动解包UPX来理解其工作原理
2.2.6用硬件断点对ASPack进行解包
专栏:如何分析.NET编写的应用程序
第3章利用软件的漏洞进行攻击
3.1利用缓冲区溢出来执行任意代码
3.1.1引发缓冲区溢出的示例程序
3.1.2让普通用户用管理员权限运行程序
3.1.3权限是如何被夺取的
3.1.4栈是如何使用内存空间的
3.1.5攻击者如何执行任意代码
3.1.6用gdb 查看程序运行时的情况
3.1.7攻击代码示例
3.1.8生成可用作shellcode的机器语言代码
3.1.9对0x00的改进
专栏:printf类函数的字符串格式化bug
3.2防御攻击的技术
3.2.1地址随机化:ASLR
3.2.2 除存放可执行代码的内存空间以外,对其余内存空间尽量
禁用执行权限:Exec-Shield
3.2.3 在编译时插入检测栈数据完整性的代码:StackGuard
3.3绕开安全机制的技术
3.3.1使用libc中的函数来进行攻击:Return-into-libc
3.3.2利用未随机化的模块内部的汇编代码进行攻击:ROP
专栏:计算机安全为什么会变成猫鼠游戏
第4章自由控制程序运行方式的编程技巧
4.1通过自制调试器来理解其原理
4.1.1亲手做一个简单的调试器,在实践中学习
4.1.2调试器到底是怎样工作的
4.1.3实现反汇编功能
4.1.4运行改良版调试器
4.2 在其他进程中运行任意代码:代码注入
4.2.1向其他进程注入代码
4.2.2用SetWindowsHookEx劫持系统消息
4.2.3将DLL路径配置到注册表的AppInit_DLLs项
4.2.4 通过CreateRemoteThread在其他进程中创建线程
4.2.5注入函数
4.3任意替换程序逻辑:API 钩子
4.3.1API 钩子的两种类型
4.3.2用Detours实现一个简单的API 钩子
4.3.3修改消息框的标题栏
专栏:DLL注入和API钩子是“黑客”技术的代表?
第5章使用工具探索更广阔的世界
5.1 用Metasploit Framework验证和调查漏洞
5.1.1什么是Metasploit Framework
5.1.2安全漏洞的信息从何而来
5.1.3搭建用于测试漏洞的环境
5.1.4利用漏洞进行攻击
专栏:深入探索shellcode
5.1.5一个ROP的实际例子
5.2用EMET观察反ROP的机制
5.2.1什么是EMET
5.2.2Anti-ROP的设计获得了蓝帽奖
5.2.3如何防止攻击
5.2.4搞清楚加载器的逻辑
5.2.5DLL的程序逻辑
5.2.6CALL-RETN检查
5.2.7如何防止误判
5.2.8检查栈的合法性
5.3用REMnux 分析恶意软件
5.3.1什么是REMnux
5.3.2更新特征数据库
5.3.3扫描目录
5.4 用ClamAV检测恶意软件和漏洞攻击
5.4.1ClamAV的特征文件
5.4.2解压缩.cvd文件
5.4.3被检测到的文件详细信息
5.4.4检测所使用的打包器以及疑似恶意软件的文件
5.5 用Zero Wine Tryouts分析恶意软件
5.5.1REMnux与Zero Wine Tryouts的区别
5.5.2运行机制
5.5.3显示用户界面
5.5.4确认分析报告
专栏:尝试开发自己的工具
5.6尽量减少人工分析:启发式技术
5.6.1恶意软件应对极限的到来:平均每天60000个
5.6.2启发式技术革命
5.6.3用两个恶意软件进行测试
附录
A.1安装IDA
A.2安装OllyDbg
A.3安装WinDbg
A.4安装Visual Studio 2010
A.5安装Metasploit
A.6分析工具
Stirling / BZ Editor
Process Monitor
Process Explorer
Sysinternals工具
兔耳旋风
参考文献
后记
《有趣的二进制:软件安全与逆向分析》文字版电子书[EPUB]大小:5MB已经过安全软件检测无毒,请您放心下载。 《有趣的二进制:软件安全与逆向分析》[PDF]大小:12MB已经过安全软件检测无毒,请您放心下载。 浏览器不支持脚本!购买本书:当当图书商城 | | 孔夫子旧书
摘要:在数字化浪潮席卷的今天,软件安全与逆向分析已成为信息安全领域不可或缺的核心技能。《有趣的二进制:软件安全与逆向分析》一书,以其独特的视角和生动的讲解,为读者打开了一扇通往二进制世界的大门。本书不仅系统阐述了从汇编语言到系统底层的工作原理,更通过丰富的实战案例,将复杂的逆向工程、漏洞挖掘与软件保护技术化繁为简。无论是对安全攻防充满好奇的初学者,还是希望深化技术理解的从业者,都能从中获得宝贵的启发。本文将从书籍的核心内容、技术深度、学习方法以及行业价值四个维度,深入剖析这本经典之作的独特魅力,揭示它为何能成为众多安全爱好者案头必备的指南。
1、二进制世界的入门钥匙
《有趣的二进制》最令人称道之处,在于它成功地将看似晦涩难懂的二进制原理,转化为一场引人入胜的探索之旅。作者并未急于堆砌复杂的公式或高深的理论,而是从最基础的二进制表示、CPU工作原理讲起,让读者在不知不觉中建立起对计算机底层运行的直观认知。这种由浅入深、层层递进的编排方式,极大地降低了初学者的畏难情绪。
书中大量运用了“有趣”的比喻和贴近生活的例子,比如将内存比作一个巨大的储物柜,将寄存器比作工作台,将指令执行比作一系列精确的操作流程。这些生动的类比,使得抽象的概念变得具体可感,读者仿佛亲临其境,能够清晰地看到数据在硬件与软件之间是如何流动与变换的。这种教学手法,正是本书区别于其他枯燥技术书籍的关键所在。
更重要的是,本书在讲解二进制时,始终紧扣“软件安全”这一核心主题。它不仅仅是在教授知识,更是在培养一种“二进制思维”——即从最底层的视角去审视程序的运行逻辑。这种思维方式的建立,对于后续深入理解逆向分析、漏洞挖掘乃至软件保护技术,都起到了至关重要的奠基作用,堪称一把开启安全世界大门的金钥匙。
2、逆向分析的实战演练场
当读者掌握了必要的二进制基础后,本书便迅速切入逆向分析的核心战场。作者精心挑选了多个具有代表性的实战案例,从简单的程序破解到复杂的算法还原,一步步引导读者动手操作。这些案例覆盖了常见的可执行文件格式、反汇编工具的使用、调试器的操作技巧等,构成了一个完整的实战演练体系。
在每一个案例中,作者都详细展示了从“发现问题”到“分析问题”再到“解决问题”的完整流程。例如,在讲解如何绕过软件注册验证时,书中会先展示如何通过静态分析定位关键代码,再通过动态调试观察程序的执行路径,最后找到修改点并成功破解。这种手把手的教学方式,让读者能够迅速将理论知识转化为实际操作能力。
更为难得的是,本书在实战中融入了大量的“心法”与“技巧”。它教会读者如何从纷繁复杂的汇编代码中快速定位关键逻辑,如何识别常见的反调试与反反调试技术,以及如何利用脚本工具提高分析效率。这些实战经验的分享,是任何泛泛而谈的理论书籍都无法替代的,使得《有趣的二进制》成为一本真正意义上的“操作手册”。
3、安全攻防的深度洞察
本书并未停留在“如何破解”的技术层面,而是进一步引导读者思考“如何防御”。通过对各种漏洞成因的深入剖析,如缓冲区溢出、整数溢出、格式化字符串漏洞等,作者清晰地揭示了攻击者是如何利用程序中的微小瑕疵来达到控制系统的目的。这种从攻击者视角出发的解读,对于理解安全防御策略至关重要。
在讲解漏洞利用时,书中详细介绍了从栈溢出到堆溢出的演变过程,以及现代操作系统为抵御攻击而引入的各种保护机制,如ASLR、DEP、栈保护等。作者不仅解释了这些机制的工作原理,还展示了攻击者是如何尝试绕过这些保护,以及防御者又该如何加固系统。这种攻防双方的动态博弈分析,极大地拓宽了读者的安全视野。
此外,本书还涉及了软件保护技术,如加壳、加密、反调试等。作者对这些技术进行了逆向视角的解读,帮助读者理解其设计思路与实现原理。这种“知其然更知其所以然”的深度洞察,使得读者不仅能够使用工具,更能够理解工具的局限性,从而在面临未知挑战时,能够举一反三,自主设计和实施更有效的安全方案。
4、学习路径的清晰导航图
对于许多渴望进入软件安全领域的爱好者来说,最大的困惑往往不是缺乏热情,而是面对海量知识时不知从何下手。《有趣的二进制》恰好扮演了一幅清晰的学习导航图角色。它按照知识的内在逻辑,精心设计了从基础到进阶、从理论到实践的学习路径,读者只需按图索骥,便能稳步前进。
书中每一个章节都环环相扣,前一个知识点是后一个知识点的必要铺垫。例如,在讲解壳的脱壳技术之前,会先介绍PE文件结构以及常见的压缩算法;在讲解漏洞利用之前,会先深入讲解内存布局与函数调用约定。这种严谨的结构设计,确保了读者在阅读过程中不会因为知识断层而感到困惑,能够建立起一个系统化的知识体系。
更重要的是,本书在传授知识的同时,也在培养读者的自学能力。它教会读者如何查阅技术文档、如何利用搜索引擎解决具体问题、如何搭建自己的实验环境。这些元技能的培养,比单纯的知识灌输更具长远价值。正如书中所传达的理念:真正的安全专家,不是靠一本书就能练成的,但一本好书可以为你指明方向,而《有趣的二进制》正是这样一本值得反复研读的导航图。
总结而言,《有趣的二进制:软件安全与逆向分析》不仅是一本技术著作,更是一座连接理论与实践、新手与专家的桥梁。它用生动的语言和丰富的案例,将艰深的二进制世界变得触手可及,让读者在掌握逆向分析技能的同时,也深刻理解了软件安全攻防的本质。这本书的价值,在于它能够激发读者的探索欲,并为其提供持续成长所需的坚实根基。
在信息安全的漫长征途中,一本好的入门书籍往往能起到事半功倍的效果。《有趣的二进制》凭借其独特的教学理念和实战导向的内容,成功地为无数安全爱好者铺设了一条通往高手之路的捷径。无论你是想提升自己的编程功底,还是立志成为一名安全研究员,这本书都值得你静下心来,细细品读,反复实践。
本文由nayona.cn整理
联系我们

关注公众号

微信扫一扫
支付宝扫一扫
