Linux二进制分析 L i 本书首先讲解了UNIX/Linux中分析目标文件的实用工具 n 和ELF二进制格式的相关内容,随后介绍了进程追踪、各种不 本书内容: 同类型的Linux和UNIX病毒,以及如何使用ELF病毒技术进行 u 处理。 ■ ELF二进制格式的内部工作原理; x 本书的后半部分介绍了如何使用Kprobe工具进行内核破 ■ UNIX病毒感染和分析的相关技术; 解、代码修补和调试,如何检测并处理内核模式的rootkit,以 二 及如何分析静态代码;最后对复杂的用户级内存感染分析进行 ■ 二进制加固和软件防篡改技术; 进 了相关讲解。 ■ 修补可执行文件和进程内存; 本书将带领读者探索甚至连一些专家都未曾接触的领域, 制 正式进入计算机黑客世界。 ■ 绕过恶意软件中的反调试; 分 本书读者对象 ■ 高级的二进制取证分析技术; 析 如果你是一名软件工程师或者逆向工程师,想要学习 Linux二进制分析相关的内容,本书实为明智之选。本书提供了 ■ 用C语言设计ELF相关的工具; 在安全、取证和杀毒领域中实施二进制分析的解决方案。本书 直观的数据项目,应用高级机器学习方法解决日常问题 ■ 如何使用ptrace操作内存。 也适合安全爱好者和系统工程师阅读。为了更好地理解本书内 容,读者需要具备一定的C语言编程基础和Linux命令行知识。 Linux 二进制分析 Learning Linux Binary Analysis 〔美〕Ryan O'Neill 著 棣琦 译 美术编辑:董志桢 Linux中国 审 分类建议:计算机/信息安全 人民邮电出版社网址:www.ptpress.com.cn 异步社区会员 flyman150([email protected]) 专享 尊重版权 FM46923Linux二进制分析.indd 1-3 17-10-25 下午1:54 Linux二进制分析 〔美〕Ryan O'Neill 著 棣琦 译 Linux中国 审 人 民 邮 电 出 版 社 北 京 异步社区会员 flyman150([email protected]) 专享 尊重版权 FM46923Linux二进制分析.indd 4 17-10-25 下午1:54 版权声明 Copyright © Packt Publishing 2016. First published in the English language under the title Learning Linux Binary Analysis. All Rights Reserved. 本书由英国Packt Publishing公司授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不 得以任何方式或任何手段复制和传播。 版权所有,侵权必究。 著 [美] Ryan O'Neill 译 棣 琦 审 Linux中国 责任编辑 傅道坤 责任印制 焦志炜 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 北京市艺辉印刷有限公司印刷 开本:8001000 1/16 印张:17.5 字数:238千字 2017年12月第1版 印数:1 – 2 000册 2017年12月北京第1次印刷 著作权合同登记号 图字: 01-2016-7606 号 定价:59.00元 读者服务热线:(010)81055410 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字20170147号 异步社区会员 flyman150([email protected]) 专享 尊重版权 内容提要 二进制分析属于信息安全业界逆向工程中的一种技术,通过利用可执行 的机器代码(二进制)来分析应用程序的控制结构和运行方式,有助于信 息安全从业人员更好地分析各种漏洞、病毒以及恶意软件,从而找到相应 的解决方案。 本书是目前为止唯一一本剖析Linux ELF工作机制的图书,共分为9章, 其内容涵盖了Linux环境和相关工具、ELF二进制格式、Linux进程追踪、ELF 病毒技术、Linux二进制保护、Linux中的ELF二进制取证分析、进程内存取 证分析、扩展核心文件快照技术、Linux/proc/kcore分析等。 本书适合具有一定的 Linux 操作知识,且了解 C 语言编程技巧的信息安 全从业人员阅读。 异步社区会员 flyman150([email protected]) 专享 尊重版权 译者序 译者棣琦(本名张萌萌),曾梦想成为一名高级口译,却阴差阳错成了一 个爱写代码的程序员。在IT江湖升级打怪的过程中,为了不断提高自己的技 能,看书是少不了的;而要想成为高级玩家,看英文书自然也是必须。一个 很偶然的机会,我接触到了本书的英文版。第一遍翻看时略显吃力,毕竟书 中讲述的许多概念都是作者的原创,网上几无相关资料。但是这些稀缺的内 容对于深入理解二进制分析却非常重要,译者由此尝到了知识的甜头。本着 “独乐乐不如众乐乐”和“知识分享”的目的,本书的翻译之路就这样顺理成 章地开始了。 要想成为一名真正的黑客,不仅要会编写程序,还需要解析程序,对已有 的二进制文件进行反编译,洞悉程序的工作原理。而本书完全是作者多年来 在逆向工程领域的实战经验总结,其内容从 Linux 二进制格式的简单介绍到 二进制逆向的细节,不一而足。书中还穿插了作者自己维护的许多项目或软 件代码示例。相信通过本书的学习,读者完全可以掌握 Linux 二进制分析相 关的一套完整的知识体系,为成长为一名高水平的黑客打下坚实的基础。考 虑到本书并非针对零基础的读者编写,因此建议读者能够有一定的 C 语言和 Linux基础,以便更好地理解领会书中精华。另外,任何IT技术的学习掌握, 都离不开动手操作。读者要想叩开 Linux 二进制世界的大门,需要亲自动手 实践书中示例,才能将书本知识转换为自身技能。 最后,不能免俗的是各种致谢(虽然俗,但诚意百分百)。感谢我的父母 对我闯荡江湖的支持,感谢 Linux 中国创始人王兴宇的信赖,感谢语音识别 异步社区会员 flyman150([email protected]) 专享 尊重版权 译者序 领域的技术大牛姚光超提出的宝贵建议,感谢我的朋友 Ray 对我的鼓励。当 然,更要感谢各位读者的支持。 最后的最后,由于译者水平有限,外加本书作者在表达上多有晦涩之处, 因此译文难免有纰漏,还望广大读者以及业内同行批评指正。 2017年9月 北京 2 异步社区会员 flyman150([email protected]) 专享 尊重版权 关于作者 Ryan O'Neill 是一名计算机安全研究员兼软件工程师,具有逆向工程、软 件开发、安全防御和取证分析技术方面的背景。他是在计算机黑客亚文化的 世界中成长起来的——那个由EFnet、BBS系统以及系统可执行栈上的远程缓 冲区溢出组成的世界。他在年轻时就接触了系统安全、开发和病毒编写等领 域。他对计算机黑客的极大热情如今已经演变成了对软件开发和专业安全研 究的热爱。Ryan在DEFCON和RuxCon等很多计算机安全会议上发表过演讲, 还举办了一个为期两天的ELF二进制黑客研讨会。 他的职业生涯非常成功,曾就职于Pikewerks、Leviathan安全集团这样的 大公司,最近在Backtrace担任软件工程师。 Ryan 还未出版过其他图书,不过他在 Phrack 和 VXHeaven 这样的在线期 刊上发表的论文让他声名远扬。还有许多其他的作品可以从他的网站 (http://www.bitlackeys.org)上找到。 异步社区会员 flyman150([email protected]) 专享 尊重版权 致谢 首先,要向我的母亲 Michelle 致以真诚的感谢,我已经将对她的感谢表 达在这本书里了。这一切都是从母亲为我买的第一台计算机开始的,随后是 大量的图书,从 UNIX 编程,到内核内部原理,再到网络安全。在我生命中 的某一刻,我以为会永远放弃计算机,但是大约过了 5 年之后,当我想要重 新点燃激情时,却发现已经把书扔掉了。随后我发现母亲偷偷地把那些书帮 我保存了起来,一直到我重新需要的那一天。感谢我的母亲,你是最美的, 我爱你。 还要感谢我生命中最重要的一个女人,她是我的另一半,是我的孩子的母 亲。毫无疑问,如果没有她,就不会有我今天生活和事业上的成就。人们常 说,每一个成功男人的背后都有一个伟大的女人。这句古老的格言道出的的 确是真理。感谢Marilyn给我带来了极大的喜悦,并进入了我的生活。我爱你。 我的父亲Brian O'Neill在我生活中给了我巨大的鼓舞,教会了我为人夫、 为人父和为人友的许多东西。我爱我的父亲,我会一直珍惜我们之间哲学和 精神层面的交流。 感谢Michael 和Jade,感谢你们如此独特和美好的灵魂。我爱你们。 最后,要感谢我的3个孩子:Mick、Jayden和Jolene。也许有一天你们会读 到这本书,知道你们的父亲对计算机略知一二。我会永远把你们放在生活的首 位。你们3个是令我惊奇的存在,为我的生活带来了更深刻的意义和爱。 Silvio Cesare 在计算机安全领域是一个传奇的名字,因为他在许多领域都 异步社区会员 flyman150([email protected]) 专享 尊重版权 致谢 有高度创新和突破性的研究,从 ELF 病毒,到内核漏洞分析方面的突破。非 常感谢 Silvio 的指导和友谊。我从你那里学到的东西要远远多于从我们行业 其他人处所学的东西。 Baron Oldenburg 也对本书起了很大的推动作用。好多次由于时间和精力 的原因我几乎要放弃了,幸好 Baron 帮我进行了初始的编辑和排版工作。这 为本书的编写减轻了很大的负担,并最终促使本书问世。谢谢Baron!你是我 真正的朋友。 Lorne Schell 是一位真正的文艺复兴式的人物——软件工程师、音乐家、 艺术家。本书的封面就是出自他的聪慧之手。Vitruvian(维特鲁威风格的) Elf与本书的描述艺术性的重合是多么令人惊喜!非常感谢你的才华,以及为 此付出的时间和精力。 Chad Thunberg是我在Leviathan安全集团工作时的老板,他为我编写本书 提供了所需要的资源和支持。非常感谢! 感谢Efnet 网站所有在#bitlackeys 上的朋友的友谊和支持! 2 异步社区会员 flyman150([email protected]) 专享 尊重版权 关于审稿人 Lubomir Rintel 是一名系统程序员,生活在捷克的布尔诺市。他是一位 全职的软件开发人员,目前致力于 Linux 网络工具的开发。除此之外,他还 对许多项目做出过贡献,包括Linux内核和Fedora发行版。活跃在开源软件社 区多年之后,他懂得一本好书涵盖的主题要比参考手册更加广泛。他相信本书 就是这样,希望你也能够像他一样喜欢这本书。另外,他还喜欢食蚁兽。 截至 2015 年 11 月,Kumar Sumeet 在 IT 安全方面已经有 4 年多的研究 经验了,在此期间,他开创了黑客和间谍工具的前沿。他拥有伦敦大学皇家 霍洛威分校的信息安全硕士学位,最近的重点研究领域是检测网络异常和抵 御威胁的机器学习技术。 Sumeet 目前是 Riversafe 公司的一名安全顾问。Riversafe 是伦敦的一家 网络安全和 IT 数据管理咨询公司,专注于一些尖端的安全技术。该公司也 是 2015 年在 EMEA 地区的 Splunk Professional Services 的合作伙伴。他们 已经完成了涉及许多领域(包括电信、银行和金融市场、能源和航空局) 的大型项目。 Sumeet 也是Penetration Testing Using Raspberry P(i Packt Publishing出版) 一书的技术审稿人。 有关他的项目和研究的更多详细信息,可以访问他的网站 https://krsumeet.com,或者扫描右侧的二维码。 你也可以通过电子邮件[email protected] 联系他。 异步社区会员 flyman150([email protected]) 专享 尊重版权