黑客反汇编揭秘:第二版
基本信息
- 原书名: Hacker Disassembling Uncovered
- 原出版社: A-List Publishing
编辑推荐
俄罗斯著名的安全技术专家Kris Kaspersky力作
横跨Windows和UNIX两大主流操作系统
全面介绍多种调试工具和方法
内容简介回到顶部↑
很多人认为,黑客行为(hacking)是不道德的,而本书作者kris kaspersky认为,这有失公允。黑客行为其实是天性不安分的人的一种本能,此类人天生就爱破解谜题,并乐此不疲。他们与那些以牟利或伤害他人为目标的“黑客”们,根本就是两码事。所以,本书既不是一本破解代码的技术手册,也不是一本关于反黑客的防护手册,本书可以看做是一位喜欢刨根问底的自由主义者的学习笔记。你可以跟随他的脚步,考察intel编译器,洞悉商业程序的保护机制,学习使用反汇编器与调试器。在第二版中,添加了一些新内容,比如克服反调试技术、探查经过打包、加密、异化或者混淆的代码等。
如果你也和作者一样,想探究清楚那些商业软件浩瀚的代码中都有些什么,不妨读一读本书。
如果你也和作者一样,想探究清楚那些商业软件浩瀚的代码中都有些什么,不妨读一读本书。
目录回到顶部↑
第一篇 黑客工具介绍
第1章 携黑客工具启程 2
1.1 调试器 2
1.2 反汇编器 6
1.3 反编译器 8
1.4 十六进制编辑器 10
1.5 解包器(unpacker) 12
1.6 转储器 13
1.7 资源编辑器 14
1.8 窥测器(spy) 14
1.9 监视器(monitor) 15
1.10 修正器 17
1.11 受保护光盘复制器 17
第2章 unix黑客工具 18
2.1 调试器 18
2.2 反汇编器 21
2.3 窥测器 22
2.4 十六进制编辑器 23
2.5 转储器 24
2.6 自动保护工具 24
第1章 携黑客工具启程 2
1.1 调试器 2
1.2 反汇编器 6
1.3 反编译器 8
1.4 十六进制编辑器 10
1.5 解包器(unpacker) 12
1.6 转储器 13
1.7 资源编辑器 14
1.8 窥测器(spy) 14
1.9 监视器(monitor) 15
1.10 修正器 17
1.11 受保护光盘复制器 17
第2章 unix黑客工具 18
2.1 调试器 18
2.2 反汇编器 21
2.3 窥测器 22
2.4 十六进制编辑器 23
2.5 转储器 24
2.6 自动保护工具 24
前言回到顶部↑
打我还是一个懵懂无知的孩子时起,计算机一直是让我捉摸不透的“冤家”。现在,我专攻逆向工程(反汇编)技术问题,致力于发现现有保护机制中存在的软肋(漏洞),并开发自己的保护系统。写这本书的原始冲动,最初源于我那颗对计算机“打破砂锅问到底”的天生好奇心,以及那种希望用一根撬棍或者一把榔头就能破解点什么的异想天开。当然,“撬棍”或者“榔头”纯属“幽它一默”而已。要是不经过这样的“绞尽脑汁”,哪里能够透彻理解计算机是怎么一回事呢?如果说黑客就是那些对宇宙万物百思不得其解而仍乐此不疲的人,那么我就是一名黑客。
黑码(hacking,“黑”在此转义为动词——译者注)是许多天性不安分的人的一种本能举动。他们沿着一条荆棘之路,尽力理解周围事物的本质,毅然决然地要搞点儿破坏。放眼四顾,核物理学家在裂变原子,化学分析师将大分子分离成许多小分子,数学家在积极地使用分解方法。但是,他们没有一个受到责难。令人感到奇怪的是,试图对软件做出些类似事情的代码挖掘人员,却经常受到非议。谴责他们公平吗?一般意义上的黑码和特定意义上的反汇编行为,都是非法的吗?
黑码不能与破坏主义相提并论。黑码是好奇秉性的一种自然流露,是对理解周围世界的渴望。经过反汇编得到的代码清单、机器命令以及使人想起早期MS-DOS的SoftICE黑色屏幕——所有这一切都令人感兴趣并心弛神往。在它们之中埋藏着隐匿机制与保护代码的整个世界。这个世界在地图上找不到,它只存在于打印输出的代码片断中,存在于在最令人感兴趣的位置自动开启的技术手册之中,存在于在显示器前度过的无数个不眠之夜之中。
黑客与保护机制开发人员之间不仅是对手,而且是伙伴。要是你认为黑客利用了程序员在建立高品质保护机制方面的无能,他们是寄生虫的话,那你就必须意识到,程序员也是寄生虫,因为他们同样利用了用户在编程方面的无能。
黑码与编程具有许多共同之处。创建高品质的可靠保护机制,离不开底层编程技能,离不开与操作系统、驱动程序及设备打交道的能力,也离不开关于现代处理器的体系结构、特定编译器的典型代码生成细节,以及所用库文件的“生物学”等多种知识。处于这个层次的编程与黑码之间的细微差别显得如此微不足道,我甚至懒得去在它们之间画一条分界线。
要开发保护机制,程序员必须至少具备关于黑客所用的工作方法与技术工具等方面的一般知识。掌握不亚于对手的这十八般技术兵器,那就再好不过了。实践经验(这里指在破解程序方面的经验)十分可贵,因为这会促使程序员去仔细研究对手的战略与战术,从而能够构造出一个最优的防御组织。经验会促使程序员觉察并巩固最可能遭受黑客攻击的目标,将自己的精力最大限度地集中在这些目标之上。这意味着,保护机制的开发人员要参透黑客心理,并且应该开始像黑客一样思考问题。
由此可见,掌握信息防护技术就意味着掌握破解了技术。要是不知道保护机制是如何被破解的,不了解保护机制的薄弱环节,以及不清楚黑客所用的兵器库,那就无法创建出价廉易行的强大保护机制。完全不从保护角度考虑问题的安全类书籍,与那些只能写入信息的存储设备差不多——没有什么实际用途。
本书既不是一本关于破解代码的技术手册,也不是一本关于反黑客的防护手册。相关书籍已经多得可以信手拈来。相反,本书要展示的是一位代码挖掘人员的“旅行笔记”。通过本书,你可以考察Intel的编译器,洞悉商业程序的保护机制,并学习反汇编器与调试器的工作原理,以及如何像专家一样使用它们。如果你没有因此而畏缩,没有合起本书将其丢至一旁,相信你一定会获悉许多价值不菲的新知识。
第二版的新内容
起初,这本书是打算写给专业人士看的。不过,在第一版出版以后,我收到许多读者的评论,褒奖与批评兼而有之。很自然,每位读者都希望有一本在内容安排上对于他来说是最方便的书。只是,要用一本书来满足各种读者群的希望与兴趣是不可能的(特别是用一本并不打算装做什么都有的书,更难做到这一点)。我以黑客新手作为本书最主要和最应感激的读者对象。如果本书能帮助他们克服主要的心理障碍——一种在计算机面前很无助的感觉,我会很高兴。
专业人士不需要这样的书。他们大多数人告诉我,整个第一版书中零星地散落着那么十几页纸的内容令人感兴趣,因而他们只对全书进行了走马观花式的审阅。例如,其中就有这样一条意见:“虽然素材不错,但对我来说缺乏实际的深度。”许多专业读者责备我写了一本以Windows为中心的书。这样一些评论有助于我更好地理解我的角色和使命。
着手写本书的第二版时,我仔细分析了所有批评意见,并将这些评论作为写书时的参考。本书第二版增补了很多实用的反汇编技巧。书中所提供的素材描述了在开始反汇编时什么是必须要做的,从何处入手分析特定的语言结构,怎样避免在数兆字节的反汇编代码中迷失方向,以及如何避免落入错综复杂的陷阱之中。本书的新章节中考虑了内存转储探查、合法软件保护机制与恶意程序。素材也经过修订,考虑了新理念与现代的发展趋势,关注的重点放在一些重要主题之上,诸如克服反调试技术,探查经过打包、加密、异化或者混淆的代码等。该修订版还更正了第一版中出现的错误,并补充了遗漏部分。
本书结构
第二版的内容共分为四篇:第一篇,“黑客工具介绍”;第二篇,“基本黑客技术”;第三篇,“高级反汇编技术”;第四篇,“实用代码探查技术”。
本书包含如下21章。
第1章简要概述了最流行的Windows黑客工具,包括调试器、反汇编器、反编译器、十六进制编辑器、解包器与转储器等。此外,本章还开出了一个必读的图书清单,它们能帮你获取进入黑客领域所需的最基本的知识。
第2章描述可以用的UNIX与Linux黑客工具。
第3章集中介绍一个通俗而令人感兴趣的主题——调试器与仿真器的仿真,这为代码挖掘人员提供了几乎无限的可能性。除了描述最流行的仿真器及其应用领域外,本章还比较分析了现有仿真器,并介绍了这个领域的最新技术进展。
第4章偏重概述现有汇编器及其优势与不足。这个主题特别重要,因为一个没有掌握汇编语言的黑客还算不上一位真正的黑客。仅仅具备高级编程语言的知识,怎么可以随心所欲地反汇编软件呢?本章特别重点介绍了如何选取汇编语言编译器的问题,这不仅对于黑客新手至关重要,而且对于专业程序员意义重大。
第5章作为第二篇的开篇,概述了保护机制及其优缺点,以及现有保护机制最常见的实现错误。此外,本章还为保护机制开发人员推荐了一些方法,这有助于在提升保护强度的同时,不会为合法用户带来不便。
黑码(hacking,“黑”在此转义为动词——译者注)是许多天性不安分的人的一种本能举动。他们沿着一条荆棘之路,尽力理解周围事物的本质,毅然决然地要搞点儿破坏。放眼四顾,核物理学家在裂变原子,化学分析师将大分子分离成许多小分子,数学家在积极地使用分解方法。但是,他们没有一个受到责难。令人感到奇怪的是,试图对软件做出些类似事情的代码挖掘人员,却经常受到非议。谴责他们公平吗?一般意义上的黑码和特定意义上的反汇编行为,都是非法的吗?
黑码不能与破坏主义相提并论。黑码是好奇秉性的一种自然流露,是对理解周围世界的渴望。经过反汇编得到的代码清单、机器命令以及使人想起早期MS-DOS的SoftICE黑色屏幕——所有这一切都令人感兴趣并心弛神往。在它们之中埋藏着隐匿机制与保护代码的整个世界。这个世界在地图上找不到,它只存在于打印输出的代码片断中,存在于在最令人感兴趣的位置自动开启的技术手册之中,存在于在显示器前度过的无数个不眠之夜之中。
黑客与保护机制开发人员之间不仅是对手,而且是伙伴。要是你认为黑客利用了程序员在建立高品质保护机制方面的无能,他们是寄生虫的话,那你就必须意识到,程序员也是寄生虫,因为他们同样利用了用户在编程方面的无能。
黑码与编程具有许多共同之处。创建高品质的可靠保护机制,离不开底层编程技能,离不开与操作系统、驱动程序及设备打交道的能力,也离不开关于现代处理器的体系结构、特定编译器的典型代码生成细节,以及所用库文件的“生物学”等多种知识。处于这个层次的编程与黑码之间的细微差别显得如此微不足道,我甚至懒得去在它们之间画一条分界线。
要开发保护机制,程序员必须至少具备关于黑客所用的工作方法与技术工具等方面的一般知识。掌握不亚于对手的这十八般技术兵器,那就再好不过了。实践经验(这里指在破解程序方面的经验)十分可贵,因为这会促使程序员去仔细研究对手的战略与战术,从而能够构造出一个最优的防御组织。经验会促使程序员觉察并巩固最可能遭受黑客攻击的目标,将自己的精力最大限度地集中在这些目标之上。这意味着,保护机制的开发人员要参透黑客心理,并且应该开始像黑客一样思考问题。
由此可见,掌握信息防护技术就意味着掌握破解了技术。要是不知道保护机制是如何被破解的,不了解保护机制的薄弱环节,以及不清楚黑客所用的兵器库,那就无法创建出价廉易行的强大保护机制。完全不从保护角度考虑问题的安全类书籍,与那些只能写入信息的存储设备差不多——没有什么实际用途。
本书既不是一本关于破解代码的技术手册,也不是一本关于反黑客的防护手册。相关书籍已经多得可以信手拈来。相反,本书要展示的是一位代码挖掘人员的“旅行笔记”。通过本书,你可以考察Intel的编译器,洞悉商业程序的保护机制,并学习反汇编器与调试器的工作原理,以及如何像专家一样使用它们。如果你没有因此而畏缩,没有合起本书将其丢至一旁,相信你一定会获悉许多价值不菲的新知识。
第二版的新内容
起初,这本书是打算写给专业人士看的。不过,在第一版出版以后,我收到许多读者的评论,褒奖与批评兼而有之。很自然,每位读者都希望有一本在内容安排上对于他来说是最方便的书。只是,要用一本书来满足各种读者群的希望与兴趣是不可能的(特别是用一本并不打算装做什么都有的书,更难做到这一点)。我以黑客新手作为本书最主要和最应感激的读者对象。如果本书能帮助他们克服主要的心理障碍——一种在计算机面前很无助的感觉,我会很高兴。
专业人士不需要这样的书。他们大多数人告诉我,整个第一版书中零星地散落着那么十几页纸的内容令人感兴趣,因而他们只对全书进行了走马观花式的审阅。例如,其中就有这样一条意见:“虽然素材不错,但对我来说缺乏实际的深度。”许多专业读者责备我写了一本以Windows为中心的书。这样一些评论有助于我更好地理解我的角色和使命。
着手写本书的第二版时,我仔细分析了所有批评意见,并将这些评论作为写书时的参考。本书第二版增补了很多实用的反汇编技巧。书中所提供的素材描述了在开始反汇编时什么是必须要做的,从何处入手分析特定的语言结构,怎样避免在数兆字节的反汇编代码中迷失方向,以及如何避免落入错综复杂的陷阱之中。本书的新章节中考虑了内存转储探查、合法软件保护机制与恶意程序。素材也经过修订,考虑了新理念与现代的发展趋势,关注的重点放在一些重要主题之上,诸如克服反调试技术,探查经过打包、加密、异化或者混淆的代码等。该修订版还更正了第一版中出现的错误,并补充了遗漏部分。
本书结构
第二版的内容共分为四篇:第一篇,“黑客工具介绍”;第二篇,“基本黑客技术”;第三篇,“高级反汇编技术”;第四篇,“实用代码探查技术”。
本书包含如下21章。
第1章简要概述了最流行的Windows黑客工具,包括调试器、反汇编器、反编译器、十六进制编辑器、解包器与转储器等。此外,本章还开出了一个必读的图书清单,它们能帮你获取进入黑客领域所需的最基本的知识。
第2章描述可以用的UNIX与Linux黑客工具。
第3章集中介绍一个通俗而令人感兴趣的主题——调试器与仿真器的仿真,这为代码挖掘人员提供了几乎无限的可能性。除了描述最流行的仿真器及其应用领域外,本章还比较分析了现有仿真器,并介绍了这个领域的最新技术进展。
第4章偏重概述现有汇编器及其优势与不足。这个主题特别重要,因为一个没有掌握汇编语言的黑客还算不上一位真正的黑客。仅仅具备高级编程语言的知识,怎么可以随心所欲地反汇编软件呢?本章特别重点介绍了如何选取汇编语言编译器的问题,这不仅对于黑客新手至关重要,而且对于专业程序员意义重大。
第5章作为第二篇的开篇,概述了保护机制及其优缺点,以及现有保护机制最常见的实现错误。此外,本章还为保护机制开发人员推荐了一些方法,这有助于在提升保护强度的同时,不会为合法用户带来不便。

点击看大图





加载中...
