学习汇编足以成为恶意软件分析师吗?

逆向工程 恶意软件 部件 二元分析 漏洞分析
2021-06-12 20:29:37

我是一名 C/C++ 开发人员,我已经开始学习汇编语言编程,目标是成为一名恶意软件分析师。

我知道仅仅知道如何阅读程序集来成为恶意软件分析师是不够的。但它不会有很大帮助并使剩下的事情变得更容易吗?

3个回答

要成为恶意软件分析师,通常需要的最低知识是:

  • 汇编语言
  • 操作系统内部
  • 反混淆和反调试技术

显然,恶意软件分析还有其他有用的知识领域(例如对网络协议的理解、漏洞利用分析技术、VB P 代码和 JavaScript 以及 .NET 语言的知识等),但看起来您正在取得进展;)

大多数你需要知道的事情你都会在这个过程中学到。例如,您可能会遇到一个利用 Adob​​e Flash 播放器的恶意软件样本。这将使您有机会了解 SWF 文件格式、ActionScript 源代码和字节码等。

来自 SANS.ORG

在讨论恶意软件分析时,该过程有 3 个主要阶段:行为分析、代码分析和内存分析。

以下是每个阶段的简要概述:

  • 行为分析

    检查恶意软件样本与其环境的交互:文件系统、注册表(如果在 Windows 上)、网络以及其他进程和操作系统组件。当恶意软件调查员注意到有趣的行为特征时,他会修改实验室环境以唤起新的特征。为了执行这项工作,调查员通常会感染隔离系统,同时使用必要的监控工具观察样本的执行情况。可以在此分析阶段提供帮助的一些免费工具是 Process Monitor、Process Explorer、RegShot 和 Wireshark。一些免费的在线工具可以自动化行为分析的某些方面;您还可以使用多种免费框架在本地实验室编写分析过程的脚本。

  • 代码分析

    对恶意程序进行逆向工程,以了解实现样本行为的代码。在查看已编译的程序时,此过程涉及使用反汇编器、调试器,也许还有反编译器来检查程序的低级汇编或字节码指令。反汇编器将指令从二进制形式转换为人类可读的汇编形式。反编译器尝试重新创建程序的原始源代码。调试器让分析人员可以单步执行代码中最有趣的部分,与其交互并观察其指令的效果以了解其目的。OllyDbg 和 IDA Pro Freeware 是流行的免费反汇编器/调试器,可以处理 Windows 程序。

  • 内存分析

    检查受感染系统的内存以提取与恶意程序相关的工件。在逆向工程恶意软件的上下文中,内存分析可以帮助识别试图隐藏自身的恶意代码(即,rootkit),可以阐明程序的运行时依赖关系,并可以解释样本如何在受害者的系统上使用。记忆分析可以节省时间,并允许研究者在研究样本的行为或代码时走捷径。用于执行内存分析的免费工具有 The Volatility Framework 及其与恶意软件相关的插件,以及 Memoryze 和相关的 Audit Viewer 程序。

我希望这将是上述回复的附加价值

当我开始在一些反病毒供应商处进行恶意软件分析时。我只是颠倒了视频游戏的几个方面,并创建了许多工具来提取图形等。我还了解一些恶意软件文化等。阅读大量恶意软件源代码 (vxheavens) 和所有爵士乐。

然而,我不知道混淆、解包、shellcode 等。这是我在工作中几年学到的东西。

但是,需要对 x86 和您的调试/反汇编程序有深入的了解!