Shellcode分析非常重要。然而,静态分析效果不佳,并且很容易失败。另外,静态分析工具通常不是免费的。而动态分析需要在适当的环境中,将shellcode加载到另一个进程中,通常是一个虚拟机。
PyAna原理
本文中我们将介绍一款新工具PyAna,该工具旨在使得分析shellcode更容易。PyAna使用Unicorn框架来模拟CPU,并创建一个虚拟的Windows进程,shellcode就是注入到该进程中来分析的。这使得它能够做到自动化分析,并能够提供一个灵活的轻量级环境,而不需要一个虚拟机。
在未来,PyAna将可以应用于其他领域的安全研究,如fuzzing或漏洞利用检测。
使用方法
命令行类型:PyAna.py [shellcode]
例如:PyAna.py Samples/UrlDownloadToFile.sc
显示结果报告:
依赖环境
PyAna依赖于以下环境:
1、Nguyen Anh Quynh开发的Unicorn框架和Capstone
2、Ero Carrera开发的pefile
目前功能
1、使用Unicorn绑定并以Python语言实现
2、模拟一个简单的shellcode:calc、UrlDownloadToFile
3、Windows系统结构模拟器目前还不完整
4、一些Win32 API hook
5、仅仅支持32位
后续工作
1、支持Windows上的PE文件
2、支持拆包
3、应用到fuzzing、漏洞利用检测方面