Manalyze:PE文件的静态分析工具

安全 数据安全
当我的杀毒软件第13次尝试隔离我的病毒样本集时,我决心开发Manalyze。另一方面的原因也是我对杀毒软件日益失望,它们不会解释为什么把某个文件判断为恶意软件。显然,大部分人需要有个杀毒软件来帮他们做决定。

介绍

当我的杀毒软件第13次尝试隔离我的病毒样本集时,我决心开发Manalyze。另一方面的原因也是我对杀毒软件日益失望,它们不会解释为什么把某个文件判断为恶意软件。显然,大部分人需要有个杀毒软件来帮他们做决定。但我认为很多专家用户,即病毒分析人员可以使用一种能够提供尽可能多信息的工具来分析PE可执行文件,并且由他们自己来做最后的决定。

Manalyze:PE文件的静态分析工具

想要查看此工具生成的样本报告,可访问https://manalyzer.org/。

PE文件的静态分析工具

Manalyze是用C++写的,支持Windows和Linux平台,以GPLv3协议发布。Manalyze是一款针对PE文件的强大分析器,它有灵活的插件架构,能让用户深入分析文件。它能够

能够识别PE的编译器
识别加壳的可执行文件
应用ClamAV签名
查找可疑字符串
寻找恶意的入口组合(即 WriteProcessMemory + CreateRemoteThread)
识别程序中密码算法(跟IDA的findcrypt插件类似)
提交哈希值到VirusTotal
验证authenticode签名(仅Windows)

如何生成

Linux 和 BSD平台(Debian Jessie 和 FreeBSD 10.2测试通过)

$> [sudo or as root] apt-get install libboost-regex-devlibboost-program-options-dev libboost-system-dev libboost-filesystem-devbuild-essential cmake git
$> [alternatively, also sudo or as root] pkg installboost-libs-1.55.0_8 cmake
$> git clone https://github.com/JusticeRage/Manalyze.git&& cd Manalyze
$> cmake .
$> make
$> cd bin && ./manalyze --version

Windows平台

1. 从boost.org获取Boost库,安装CMake

2. 生成boost库

cdboost_1_XX_0 && ./bootstrap.bat && ./b2.exe--build-type=complete --with-regex --with-program_options --with-system--with-filesystem

添加一个BOOST_ROOT环境变量,指向boost_1_XX_0文件夹的路径

3. 下载安装Git

4. git clone https://github.com/JusticeRage/Manalyze.git && cd Manalyze &&cmake

5. Manalyze文件夹中应该有一个VisualStudio项目manalyze.sln。

离线生成

如果你要在没有网络的电脑上生成Manalyze,你要查看以下项目:

Yara

hash-library

将这两个文件放到external文件夹,即external/yara和external/hash-library。然后运行runcmake . -DGitHub=OFF。

二进制文件

Windows x86二进制文件

所有的二进制文件都有证书签名,指纹为:26fc24c12b2d84f77615cf6299e3e4ca4f3878fc。

生成ClamAV规则

由于ClamAV签名数量庞大并且更新频繁,把它们放在二进制文件里显然不合适。当你第一次使用ClamAV插件时,可能会看到这个错误信息:[!]Error: Could not load yara_rules/clamav.yara。要生成一下的话就去bin/yara_rules运行update_clamav_signatures.py。

要更新签名的时候就运行一下这个脚本。

用法

$ ./manalyze.exe --help
Usage:
-h [ --help ] Displays this message.
-v [ --version] Prints the program's version.
--pe arg The PE to analyze. Also accepted as a positional
argument. Multiple files may be specified.
-r [ --recursive] Scan all files in a directory(subdirectories will be
ignored).
-o [ --output ]arg The output format. May be 'raw'(default) or 'json'.
-d [ --dump ]arg Dump PE information. Available choices are any
combination of: all, summary, dos(dos header), pe (pe
header), opt (pe optional header), sections, imports,
exports, resources, version, debug, tls
--hashes Calculate various hashes of the file (may slow down the
analysis!)
-x [ --extract ]arg Extract the PE resources to the target directory.
-p [ --plugins ]arg Analyze the binary with additional plugins. (may slow
down the analysis!)

可用插件:

– clamav:使用ClamAV病毒特征库扫描二进制文件

– compilers: 尝试判断生成二进制文件所使用的编译器

– peid: 返回二进制文件的PEiD签名

– strings: 检测可疑字符串(anti-VM,process names…)

– findcrypt: 识别程序中密码算法

– packer: 检测加壳

– imports: 检查可疑入口

– resources: 分析程序的资源

– authenticode: 检查PE的数字签名是否有效

– virustotal: 在VirusTotal检查样本检测结果

– all: 运行所有可用插件

使用范例

manalyze.exe program.exe

manalyze.exe -dresources -dexports -x out/ program.exe

manalyze.exe –dump=imports,sections –hashes program.exe

manalyze.exe -r malwares/ –plugins=peid,clamav –dump all

样本报告

Manalyze:PE文件的静态分析工具

 

责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2021-06-08 13:56:34

工具静态代码

2020-11-17 09:27:26

KubernetesYAMLKubeLinter

2012-05-22 00:28:21

JavaJava开源开源工具

2021-07-29 06:37:55

KubernetesKubeLinter工具

2020-12-22 08:00:00

开发分析工具

2022-12-13 15:42:56

Clang-Tidy静态分析工具

2022-12-09 15:38:54

Cppcheck静态分析工具

2023-09-14 22:57:52

2016-03-29 14:54:36

2017-05-10 14:27:29

静态代码漏洞安全

2013-10-31 11:08:15

2020-12-07 14:46:07

程序员代码分析工具

2021-03-29 23:05:36

程序员工具静态分析

2021-01-05 09:25:27

DockerSemgrep代码静态分析工具

2024-01-08 13:47:00

代码分析工具

2022-12-12 16:11:47

Clang-Tidy工具

2011-05-05 09:54:05

静态代码

2024-01-03 08:48:09

NilAway静态分析工具

2022-01-27 09:57:55

远程代码漏洞

2021-04-19 10:26:41

网络安全PE文件
点赞
收藏

51CTO技术栈公众号