Shellcode分析工具PyAna

简介:

Shellcode分析非常重要。然而,静态分析效果不佳,并且很容易失败。另外,静态分析工具通常不是免费的。而动态分析需要在适当的环境中,将shellcode加载到另一个进程中,通常是一个虚拟机。

Shellcode分析工具PyAna

  PyAna原理

本文中我们将介绍一款新工具PyAna,该工具旨在使得分析shellcode更容易。PyAna使用Unicorn框架来模拟CPU,并创建一个虚拟的Windows进程,shellcode就是注入到该进程中来分析的。这使得它能够做到自动化分析,并能够提供一个灵活的轻量级环境,而不需要一个虚拟机。

在未来,PyAna将可以应用于其他领域的安全研究,如fuzzing或漏洞利用检测。

使用方法

命令行类型:PyAna.py [shellcode]

例如:PyAna.py Samples/UrlDownloadToFile.sc

显示结果报告:

Shellcode分析工具PyAna

  依赖环境

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、漏洞利用检测方面

下载地址:

https://github.com/PyAna/PyAna


本文转自d1net(转载)

相关文章
|
7月前
|
开发框架 .NET C#
利用WinDbg分析C#程序产生的转储文件
利用WinDbg分析C#程序产生的转储文件
|
10月前
|
存储 Python Windows
1.7 完善自定位ShellCode后门
在之前的文章中,我们实现了一个正向的匿名管道`ShellCode`后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取`GetProcAddrees`函数地址,并根据该函数实现所需其他函数的地址自定位功能,通过枚举内存导出表的方式自动实现定位所需函数的动态地址,从而实现后门的通用性。
50 1
|
10月前
|
存储 安全 Shell
1.6 编写双管道ShellCode后门
本文将介绍如何将`CMD`绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的`ShellCode`后门,并以此提高代码通用性。最终,我们将通过一个实际的漏洞攻击场景来展示如何利用这个后门实现内存注入攻击。
53 0
|
12月前
|
安全 Windows
【工具分享】免杀360&火绒的shellcode加载器
【工具分享】免杀360&火绒的shellcode加载器
314 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(一)
Cobaltstrike4.0 —— shellcode分析
232 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(三)
Cobaltstrike4.0 —— shellcode分析
250 0
|
存储 算法 安全
Cobaltstrike4.0 —— shellcode分析(二)
Cobaltstrike4.0 —— shellcode分析
208 0
|
Windows
【转】Minidump 文件分析工具
许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.   通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:\WINDOWS\Minidump\Mini082106-01.
4748 0
栈溢出原理与 shellcode 开发
 ESP:该指针永远指向系统栈最上面一个栈帧的栈顶  EBP:该指针永远指向系统栈最上面一个栈帧的底部 01  修改函数返回地址 #include #include #define PASSWORD "1234567" ...
1333 0
基于WinDbg的内存泄漏分析
在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,但是有没有证据,我们该怎么办? 这时我们就要依靠无所不能的WinDbg了。
1085 0