火眼恶意代码行为识别工具-Capa

  • A+

火眼逆向工具开源地址:https://github.com/fireeye
1. Capa简介
可识别可执行文件的功能
开源地址:https://github.com/fireeye/capa
编译地址:https://github.com/fireeye/capa
规则地址:https://github.com/fireeye/capa-rules

  1. 程序安装
    下载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 查看具体参数指令

图片.png

2.3 IDA插件使用
在IDA的Python2.7环境下
- - pip2 install https://github.com/williballenthin/vivisect/zipball/master
- 在capa根目录:pip install .
- File -> Script file ->打开capa-master/capa/ida/ida_capa_explorer.py

图片.png

  1. 原理简介
    官方介绍: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文档,其中包含元数据和表示其逻辑的语句树。规则语言尤其支持逻辑运算符和计数。

相关推荐: Driftingblues3靶机渗透

Driftingblues3靶机练习 网络结构: 环境搭建平台为VMware15,使用VirtualBox亦可,网络为nat模式,网段192.168.1.0/24 网络由攻击机kali、靶机组成 靶机ip:192.168.1.146 kali linux ip…