很多人在年少时,曾经有一个黑客梦。
还记得“黑客”这个词是我在一部名为《黑客帝国》的电影中次接触到,虽然那时我并没有学习网络安全相关知识,但是里面的情景却深深地印在了我的脑海中。眼花缭乱的命令行画面让我兴奋不已,幻想着自己以后也能够敲出神奇的命令,其中关于注入木马病毒的场景至今记忆犹新。
随着互联网的快速发展,网络攻击日益频繁,恶意代码常被用于控制目标服务器,执行系统命令、监控操作系统等。恶意代码分析工程师需要分析恶意代码的样本,提取shellcode二进制代码,归纳总结恶意代码的特征码。使用特征码识别对应的恶意代码,从而检测和查杀对应的恶意程序。
目前市面上很少有关于逆向分析恶意代码的入门类书籍,这正是撰写本书的初衷,希望本书能为网络安全行业贡献一份微薄之力。通过编写本书,笔者查阅了大量的资料,使知识体系扩大了不少,收获良多。
本书主要内容
第1章介绍搭建恶意代码分析环境,包括FLARE VM及Kali Linux虚拟机的安装。
第2章介绍Windows程序基础,包括PE文件结构和PE分析工具。
第3章介绍生成和执行shellcode,包括Metasploit Framework生成shellcode和C语言加载执行shellcode。
第4章介绍逆向分析工具基础,包括静态分析工具IDA和动态分析工具x64dbg。
第5章介绍执行PE节中的shellcode,包括嵌入PE节的原理,执行嵌入.text、.data、.rsrc的shellcode。
第6章介绍base64编码的shellcode,包括base64编码原理、执行base64编码的shellcode,以及使用x64dbg工具分析提取shellcode。
第7章介绍XOR异或加密shellcode,包括XOR异或加密原理、执行XOR异或加密的shellcode,以及使用x64dbg工具分析提取shellcode。
第8章介绍AES加密shellcode,包括AES加密原理、执行AES加密的shellcode,以及使用x64dbg工具分析提取shellcode。
第9章介绍构建shellcode runner程序,包括C语言加载并执行shellcode的多种方法,C语言加载并执行shellcode的方法,以及Virus Total分析恶意代码的使用方法。
第10章介绍API函数混淆,包括API函数混淆的原理与实现,以及使用x64dbg工具分析API函数混淆。
第11章介绍进程注入技术,包括进程注入原理与实现,使用Process Hacker和x64dbg工具分析进程注入。
第12章介绍DLL注入技术,包括DLL注入原理与实现,使用x64dbg工具分析提取shellcode。
第13章介绍Yara检测恶意程序的原理与实践,包括安装Yara工具,以及使用Yara工具的规则文件检测恶意代码。
第14章介绍检测和分析恶意代码,包括搭建REMnux Linux环境,分析恶意代码的恶意域名信息,剖析恶意代码的网络流量和文件行为。
阅读建议
本书是一本基础入门加实战的书籍,既有基础知识,又有丰富示例,包括详细的操作步骤,实操性强。由于逆向分析恶意代码的相关技术较多,所以本书仅对逆向分析恶意代码的基本概念和技术进行介绍,包括基本概念及代码示例。每个知识点都配有代码示例,力求精简。对于每个知识点和项目案例,先通读一遍有个大概印象,然后将每个知识点的实例代码在分析环境中操作一遍,加深对知识点的印象。
建议读者先把第1章搭建恶意代码分析环境通读一遍,搭建好分析环境。
第2~5章是逆向分析恶意代码的基础,掌握Windows操作系统PE文件结构,将生成的shellcode二进制代码嵌入PE文件的不同节区,使用C语言加载并执行嵌入的shellcode二进制代码。了解逆向分析工具IDA和x64dbg的基础。
第6~9章是关于编码和加密shellcode二进制代码的内容,掌握base64编码、XOR异或加密、AES加密shellcode二进制代码,能够使用x64dbg工具分析提取shellcode二进制代码。
第10~14章是关于规避检测和实战分析的内容,掌握API函数混淆、进程注入、DLL注入规避检测的技术,能够使用x64dbg工具分析并提取shellcode二进制代码。掌握Yara工具检测恶意代码的基本使用方法。搭建REMnux Linux环境,实战分析恶意代码的网络流量和文件行为。
致谢
首先感谢我敬爱的领导刘高峰校长对我工作和生活的指导,给予我的关心与支持,点拨我的教育教学,指明我人生的道路,正是你的教诲和领导,才让我更有信心地坚持学习并专研网络安全技术。
感谢赵佳霓编辑对内容和结构上的指导,以及细心的审阅,让本书更加完善和严谨,也感谢清华大学出版社的排版、设计、审校等所有参与本书出版过程的工作人员,有了你们的支持才会有本书的出版。
后感谢我深爱的妻子、我可爱的女儿,感谢你们在我编写本书时给予的无条件的理解和支持,使我可以全身心地投入写作工作,在我专心写书时给了我无尽的关怀和耐心的陪伴。
由于时间仓促,书中难免存在不妥之处,请读者见谅,并提宝贵意见。
刘晓阳
2023年1月