推荐序
2016年,刘皎老师邀请我翻译Jonathan Levin的Android Internals:Vol I[1],我毫不犹豫地答应了——主要是因为这本书好贵!而我既想读书,又不想花钱买……翻译这个活儿太适合我了,哈哈!可到2017年,出了Vault 7泄露事件,这本Android Internals:Vol I因为被CIA“盗版”用于内部培训,也一并被泄露。结果Levin只好在自己的主页上公开了这本书——这下不花钱也能看了。(小丑竟是我自己?!)
受Vault 7事件影响而公开的并不仅是这本Android Internals。
Ghidra,一款由美国国家安全局(NSA)研发的逆向工程工具,原本只是内部使用的工具,也在这一事件中泄露,因此被迫公开。现在Ghidra已经开源,可以直接在GitHub上获得。
初识Ghidra时,我对它的感觉是非常惊艳!当时我正在做一些恶意软件变种分析的项目。由于IDA Pro自身没有二进制可执行文件的比对功能,所以经常要用BinDiff这类第三方工具/插件。当有一个功能与IDA类似、但竟然能直接进行二进制代码比对的软件时,我的感触之深不言而喻。而且,Ghidra竟然还是天生支持反编译的(与之对应,IDA的反编译模块是需要花大价钱购买的),并且效果似乎确实不错!因此,我曾把玩过一段时间的Ghidra,但当时只有软件自带的帮助文档,终究还是少了一盏指路的明灯,最终抵不过工期太紧,加上之前的工具已经用得很熟练了,渐渐只能暂时搁置了。
2020年8月,The Ghidra Book:the Definitive Guide一书出版了,而且1~2个月后就有了可以下载的电子版。我下载后迫不及待地开始阅读。显然,本书无论是书名、封面设计、还是内容,根本就是大名鼎鼎的The IDA Pro Book[2]的Ghidra版!更何况,其主要作者正是The IDA Pro Book的作者Chris Eagle!
本书内容由浅入深,循序渐进——从最基本的软件安装到图形界面操作、再从进阶到编写自己的分析脚本和处理器模块,最后竟然还有IDA Pro用户(比如我)如何转向Ghidra的建议!因此,不论是新手上路,还是逆向老手,都能从中获益匪浅。书中同时提供配套代码,使读者能够自己动手完成对应的操作,确实是一本又说又练的“真把式”好书。读完之后,我就向刘皎老师推荐了这本书,希望引进出版。
软件逆向工程工具本就不多,特别是在软件静态分析工具方面,Ghidra是少数能与IDA Pro比肩的软件。这一点不论是从它在 GitHub上的星数,或者“Ghidra”的百度搜索结果上都能看出来。古人云:“工欲善其事,必先利其器”。自从2015年“网络空间安全”正式成为“工学”门类下的一级学科后,国内网络安全相关研究和竞赛赛事蓬勃发展。不论是网络安全研究人员、相关专业的学生,还是爱好者都应该熟练掌握相关工具,然后方能在此基础上,事半功倍地发挥自己的聪明才智,做出自己的贡献。
本书译者是《CTF竞赛权威指南(Pwn篇)》的作者杨超,他长期从事车联网安全研究和工具开发工作,拥有非常丰富的实践经验。本书译文精美、表达流畅、术语翻译精准,个人认为达到了“信达雅”的境界。中文版的面世,能为广大学子和从业人员掌握和熟练使用 Ghidra 提供有益的指导。相信有志学习者,经过认真钻研,必能早日登堂入室,为我国网络安全事业的发展添砖加瓦!
崔孝晨
Team 509成员
《Python绝技:运用Python成为顶级黑客》译者
[1] 中文版书名是《最强Android书:架构大剖析》。
[2] 中文版书名是《IDA Pro权威指南》。