译者序
Ghidra第一次出现在公众视野是在2017年3月,当时维基解密开始泄露Vault 7文档,这是美国中央情报局(CIA)最大的机密文件泄漏事件,该文档包括各种秘密网络武器和间谍技术。其中,Vault 7的第一部分包括恶意软件库、0day武器化攻击,以及如何控制苹果的iPhone、谷歌的Android和微软的Windows设备。和Ghidra相关的内容就位于这一部分,包括最新版本的软件和安装使用手册。
在2019年的RSA会议上,NSA高级网络安全顾问Rob Joyce发表了Get Your Free NSA Reverse Engineering Tool的议题,解释了Ghidra的独特功能和特性,并发布了Ghidra二进制程序。最终,在当年的4月4日,NSA在GitHub上公布了Ghidra源码。
很难说是不是当年的泄露事件导致了这一开源行为,但对于广大逆向工程师来说,确实获得了一个功能强大且免费的工具。没有哪个逆向工具是完美的,它们都有各自的优缺点,并且在竞争中相互取长补短。即使你已经掌握了IDA Pro、Binary Ninja或者Radare2,也可以从Ghidra中受益。Ghidra的主要优势有:开源且免费(这意味着有无限可能);支持众多的处理器架构;允许在同一个项目中加载多个二进制文件,并同时进行相关操作;拥有设计强大且良好的 API,方便开发自动化工具;支持团队协作模式;支持版本跟踪和匹配,等等。
本书的作者之一Chris Eagle是一位经验丰富的逆向工程专家,他早在十年前就出版了《IDA Pro权威指南》一书,到今天依然非常受欢迎,能有幸翻译他的这本新作让我备感荣幸。这两本书的结构大体相似,但在具体细节上有诸多不同,如果你已经熟练掌握了IDA Pro,那么切换到Ghidra也相当容易。甚至可以将它们结合起来使用,在一个工具中集成另一个工具的能力——已有研究表明结合多个反汇编程序可以明显地提升函数识别率。
本书的出版,首先要感谢我的大学室友刘晋和我的应届生导师丁增贤,他们贡献了第 7 章、第17章和附录的初稿;感谢电子工业出版社的刘皎老师,给予我充分的信任和耐心,并花费许多时间和精力校正各类错误;感谢父母的关心和支持,你们是我人生道路上最坚实的后盾;感谢白玉的监督和陪伴,祝你在今后的日子里少点苦、多点甜,少生气、多开心。最后,再一次向读者推荐我的母校西安电子科技大学网络与信息安全学院,那里有最好的老师和同学!
感谢读者购买此书。希望你们在探索Ghidra和逆向工程的道路上,能够享受到和我一样的乐趣。在翻译过程中,我努力将内容表述清楚,但限于英文水平和专业能力,译文中难免出现疏漏和错误,欢迎读者批评指正。
杨超
2022年10月于北京