火眼逆向工具开源地址:https://github.com/fireeye
-
Capa简介 可识别可执行文件的功能 开源地址:https://github.com/fireeye/capa 编译地址:https://github.com/fireeye/capa 规则地址:https://github.com/fireeye/capa-rules
-
程序安装 下载capa-master与capa-rules-master后,将capa-rules-master里的文件放入到capa-master的rules文件夹,规则生效。
2.1 源码使用 Python2.7环境下
- pip2 install https://github.com/williballenthin/vivisect/zipball/master
- 在capa根目录:pip install .
- main.py [可执行程序]
2.2 编译后使用 命令行环境下
- capa-v1.0.0-win.exe [可执行程序]
- -h 查看具体参数指令
2.3 IDA插件使用 在IDA的Python2.7环境下
- 在capa根目录:pip install .
- File -> Script file ->打开capa-master/capa/ida/ida_capa_explorer.py
- 原理简介 官方介绍:https://www.fireeye.com/blog/threat-research/2020/07/capa-automatically-identify-malware-capabilities.html 左侧的每个条目都描述了一个功能,右侧的关联名称空间有助于对相关功能进行分组。
3.1 Capa原理 capa由两个主要组件组成,这些主要组件通过算法对未知程序进行分类。首先,代码分析引擎从文件中提取功能,例如字符串,反汇编和控制流。其次,逻辑引擎查找以通用规则格式表示的功能组合。当逻辑引擎找到匹配项时,capa将报告规则描述的功能。 代码分析引擎从程序中提取低级功能。所有功能都与人类可能会识别的内容(例如字符串或数字)保持一致,并使capa能够解释其工作。这些功能通常分为两大类:文件功能和反汇编功能。文件特征是从原始文件数据及其结构(例如PE文件头)中提取的。 反汇编功能是从文件的高级静态分析中提取的,这意味着反汇编和重建控制流。 因为高级分析可以区分程序中的功能和其他范围,所以capa可以在适当的详细程度上应用其逻辑。例如,当不相关的API用于不同的功能时,不要感到困惑,因为capa规则可以指定它们应分别与每个功能匹配。 在设计capa时考虑到了灵活和可扩展的功能提取。可以轻松集成其他代码分析后端。当前,capa独立版本依赖于vivisect分析框架。如果您使用的是IDA Pro,则还可以使用IDAPython后端运行capa。请注意,有时代码分析引擎之间的差异可能导致功能集不同,因此结果也不同。
3.2 Capa规则 capa规则使用功能的结构化组合来描述可以在程序中实现的功能。如果存在所有必需的功能,则capa认为该程序包含该功能。capa规则是YAML文档,其中包含元数据和表示其逻辑的语句树。规则语言尤其支持逻辑运算符和计数。