从零开始学逆向之x86篇(一)

2021-01-05 5,077

原文地址:https://0xinfection.github.io/reversing/

 

在本系列文章中,我们将为读者从头开始介绍x86架构下的逆向工程技术。

 

第一课:课程目标

 

众所周知,逆向工程是现代恶意软件分析的基础,而恶意软件分析又是理解和考察响应网络入侵所需信息的基础。

 

这份简短的教程将从恶意软件逆向工程的基本概念开始,然后逐步介绍汇编语言的入门级基本知识。

 

可以说,王国的钥匙植根于对各个可疑恶意软件二进制文件的分析,以及如何在网络中找到它并最终对其进行遏制。

 

在完全确定进行深入分析所需的文件后,关键是要开发相应的签名,以检测整个网络中的恶意软件感染情况;无论是基于家庭的局域网还是复杂的企业广域网,都需要对恶意软件进行分析,以开发基于主机和网络的签名。

 

首先,我们需要了解基于主机的签名的概念,这些签名用于在目标计算机中查找恶意代码。基于主机的签名也被称为指标(indicator),可用于识别受感染代码创建或编辑的文件,这些文件可以对计算机注册表进行隐密的更改。这与防病毒特征码截然不同,因为这些特征码关注的是恶意软件的实际行为,而不是恶意软件的组成,这使得它们能够更有效地查找可以迁移或已从介质中删除的恶意软件。

 

相比之下,网络签名则是通过检查网络流量来查找恶意代码。需要注意的是,WireShark等工具在这种分析中往往是有效的。

 

在识别出上述这些签名后,下一步就是识别恶意软件到底在做什么。

 

在下一课中,我们将讨论恶意软件分析技术。

 

 

第二课:恶意软件基本分析技术

 

在分析恶意软件时,你可以采用两种基本分析技术:第一种是静态分析,第二种是动态分析。

 

静态分析使用软件工具来检查可执行文件,而非反编译后的汇编代码。这种类型的分析,不是我们介绍的对象,因为我们关注的是经过反汇编处理的二进制文件。

 

动态分析使用反汇编器和调试器来分析恶意软件的二进制文件。目前市场上最流行的工具叫做IDA,它是一个支持多平台、多处理器的反汇编器和调试器。目前市场上还有其他反汇编/调试工具,如Hopper Disassembler、OllyDbg等。

 

反汇编器会把用汇编、C、C++等语言编写的可执行二进制文件转换成你可以调试和操作的汇编语言指令。

 

需要注意的是,逆向工程不仅限于恶意软件分析。在我们系列文章结尾部分,我们将用到IDA,因为我们将创建一个真实世界的场景,在这个场景中,你将受ABC生物化学公司的CEO委托,秘密地尝试以道德方式入侵该公司的软件,该软件控制着一个非常敏感的生化实验室中的防弹门,以测试该软件抵御真实威胁的效果。这个项目将是非常基本的,但它最终将展示汇编语言的力量,以及如何使用它进行逆向工程,并最终提供如何更好地设计代码以使其更安全的解决方案。

 

在下一课中,我们将讨论各种类型的恶意软件。

 

 

第三课:恶意软件的类型

 

请点击下面的表格查看所有课程的完整目录,因为除了课程所涉及的主题外,还为每节课提供了一个摘要,具体地址为https://github.com/mytechnotalent/Reverse-Engineering-Tutorial。

 

下面,我们来简要介绍恶意软件的分类。

 

后门是将自身嵌入计算机中的恶意代码,远程攻击者只需很少或有时根本没有权限就可以在任何相应的本地计算机上执行各种命令。

 

僵尸网络允许攻击者访问系统,但是,它不是从一个远程攻击者那里接收指令,而是从一个命令和控制服务器那里接收指令,该服务器可以同时控制无限多的计算机。

 

下载器并不从事其他恶意代码常见的行为,它的用途只有一个,那就是安装其他恶意软件。当黑客初次入侵系统时,经常会安装下载器。然后下载器会安装其他恶意软件来控制系统。

 

信息访问恶意软件,会从计算机中收集信息,如键盘记录器或密码抓取器,并将其直接发送到主机。这种类型的恶意软件通常用于获得各种在线账户的访问权限,这些账户可能会非常敏感。

 

有些恶意程序会启动其他恶意程序,这些恶意程序使用非标准选项来获得更高的访问权限,或者在侵入系统时使用更强大的伪装/隐藏技术。

 

最危险的恶意软件形式之一是rootkit,它向用户隐藏了自己和其他恶意软件的存在,这使其很难被发现。rootkit可以操纵进程,例如在IP扫描中隐藏自己的IP,这样用户可能永远不会知道他们有一个直接连接到僵尸网络或其他远程计算机的套接字。

 

恐吓软件是用来恐吓用户购买额外的软件,以虚假地保护用户,而实际上并不存在任何真正的威胁。一旦用户花钱将伪造的软件从电脑中删除,它就可以继续驻留,随后以其他的形式出现。

 

此外,还有各种恶意软件会从目标机器上发送垃圾邮件,让攻击者向其他用户出售各种服务,从而为攻击者创造收入。

 

最后一种恶意软件的形式是传统的蠕虫或病毒,它可以复制自己,并感染其他计算机。

 

关于恶意软件的讨论到此为止,因为我们首先需要回到起点,了解计算机的基本工作原理。

 

在下一课中,我们将踏上x86汇编语言的漫长旅程。

 

小结

在本系列文章中,我们将为读者从头开始介绍x86架构下的逆向工程技术。更多内容,敬请期待!

 

(未完待续)


本文作者:mssp299

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/150746.html

Tags:
评论  (0)
快来写下你的想法吧!

mssp299

文章数:42 积分: 577

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号