原文:https://malwology.com/2018/08/24/python-for-malware-analysis-getting-started/

介绍

提升你的 Python 编程技巧可能正在你的待做清单上——就行清理衣橱、粉刷墙壁、拧紧螺丝一样(你知道我在说什么)。

通常来说,脚本是跨大多数安全学科的一个实用的工具,编写脚本可以帮助你自动完成琐碎的任务,规模化分析大量数据,分担你的工作量。

尽管有许多的编程语言可供选择,但 Python 是其中最受欢迎的那一个,抛开别的原因不谈,它是跨平台的,并且相对容易阅读和编写。许多现有的开源安全工具都是用 Python 写的,所以学习 Python 可以帮助你更好的理解这些工具。

这篇文章介绍了用于 PE 文件分析的 Python 程序,在下文中,一个脚本可以帮助你快速解析单个文件并提取关键特征,或在多个文件之间规模化测量以完成更高优先级的任务。

请注意,这篇文章假定读者已经对Python和编程的概念有了一些基本的了解。

已有的工具

现在已经有许多使用 Python 编写的恶意软件分析工具可供使用。以下是一些我觉得对静态文件分析比较有帮助的工具:

这些工具可以产生有用的输出,是理解 Python 的绝佳选择。通过简单的浏览源代码和进行一些必要的搜索,你可以了解到作者是怎么编写这个程序的,和怎么修改程序以满足自己的目的。在你进行技术分析的过程中,你会积累经验,同时也会遇到工具不能满足需求的情况,这时候就需要自己去修改工具。不过放心,不需要从头开始编写代码,你可以通过 Python 库来提取数据,把输出修改成你想要的形式。

pefile是一个流行的、存在已久的、用于分析PE文件的的库。这个模块提供了PE 文件组织的便捷入口。另一个最近更新的更通用的且跨平台的一个库叫做 Library to Instrument Executable Formats (LIEF),它包含了一个用于 PE 文件分析的Python 模块(文档在这)

这篇文章会用到Python2和 pefile 库来进行文件分析。请注意pefile是一个第三方模块,不是 Python 标准内置库。因此,你可能需要先安装它,尝试运行pip install pefile

探索 pefile

我们使用REMnux恶意软件分析 Linux 版(下载地址)。通过 Python 交互 shell 探索 pefile 模块,并编写一些简单的代码。相较于直接编写一个脚本,交互 shell 在用于学习可用模块和简单调试的时候是一个更好的选择。只需要在终端敲下Python,然后你就会看见如下的提示:

下一步,引入pefile 以使用它的函数:

可以通过帮助信息来了解这个模块。键入help(pefile)。下面是一部分的输出:

除了模块的概述以外,还有类的概述。往下活动能看到每个类的信息,我们关注到 PE 类:

点击收藏 | 2 关注 | 2
  • 动动手指,沙发就是你的了!
登录 后跟帖