基于仿真的windows二进制文件自动与平台无关解包器

unipacker的Python项目详细描述



| | | |       / / (_) \ \                  | |
| | | |_ __  | |   _   | | _ __   __ _  ___| | _____ _ __
| | | | '_ \/ /   | |   \ \ '_ \ / _` |/ __| |/ / _ \ '__|
| |_| | | | \ \   | |   / / |_) | (_| | (__|   <  __/ |
 \___/|_| |_|| |  |_|  | || .__/ \__,_|\___|_|\_\___|_|
              \_\     /_/ | |
                          |_|

非{i}封隔器PyPI: unipackerDocker Cloud Build Status

MasterBuild Status
DevBuild Status

使用Unicorn引擎解压缩PE文件

恶意软件作者使用运行时打包程序是非常常见的,因为这是一种有助于阻碍分析的技术。 此外,打包程序是反病毒产品面临的一个挑战,因为它们使通过签名识别恶意软件变得不可能 或是独自一人。

为了能够分析打包的恶意软件样本,通常需要解压缩二进制文件。通常这意味着, 分析员必须使用动态分析技术(工具:ollydbg,x64dbg)手动解包二进制文件。 也有一些自动解包的方法,但它们都只适用于windows。因此当 针对打包的Windows恶意软件,分析人员将需要Windows计算机。我们项目的目标是 通过使用产生可运行的windows二进制文件的仿真,独立于平台的自动解包。

完全支持的封隔器

  • ASPack:具有高压缩比的高级商用封隔器
  • FSG:免费软件,快速解包
  • MEW:专门为小型二进制文件设计的
  • MPRESS:免费的、更复杂的打包机
  • PEtite:免费软件打包程序,类似于aspack
  • UPX:跨平台、开源打包程序
  • yzpack

其他封隔器

只要所需的api函数是在un{i}packer中实现的,其他任何打包程序都应该可以工作。对于包装工来说 不知道是否要手动指定模拟的开始和结束地址。 如果您想从pe报头中声明的入口点开始模拟,直到检测到部分跳转, 按Enter

用法

正常安装

为您的操作系统安装YARA包,从pypi中获取un{i}packer并使用自动创建的命令行包装器启动它:

pip3 install unipacker
unipacker

有关如何使用un i}packer的详细说明,请参阅Wiki。 此外,所有shell命令都有文档记录。要访问此信息,请使用help命令

开发模式安装

克隆存储库,并在项目根文件夹中使用pip3 install -e .

激活开发模式

使用Docker

您还可以使用提供的dockerfile来运行un{i}packer:

docker run -it -v ~/local_samples:/root/unipacker/local_samples vfsrfs/unipacker

假设您的主目录中有一个名为local_samples的文件夹,那么这个文件夹将安装在容器中。 因此,un packer将能够通过/root/unipacker/local_samples访问这些二进制文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java的目标是从我的项目中删除不起作用的文件   java对for循环的理解   java我完成了在作业要求的位置查找字符的部分,但是如何从我找到的字符串中删除字符呢?   基于帧时的java动画   java请求无效。缺少XGoogUploadCommand标头   java如何在viewsource模式下使用openStream?   grpc grpc_ARG_KEEPALIVE_PERMIT_而不调用java服务器?   java如何通过Junit测试Web服务调用   如何在java中获取鼠标中键?   使用junit在spring测试中加载属性文件   Java中用于类的类修饰符   java多色文本图像   sql无法调试Java中的“连接到数据库失败”异常   java如何指定hibernate连接映射?   java Android工具栏不显示   java仿射转换不同的图形对象   使用终端的java问题   Java在tomcat上查找127.0.0.1失败