基于仿真的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 Github操作在生成期间未识别机密值   java根据给定的索引号选择适当的字符。开关语句   java如何在我的项目中使用SCA mvn插件在Fortify SCA扫描中仅包含一个文件夹?   java SwingWorker无法完成   使用KeyBindings Java在按住键时摆动停止暂停   java如何从sqlite数据库获取数据   java如何使用windows批处理文件逐个启动spring引导jar文件?   在Java中,字典是在构造函数中初始化映射的更好方法   用于在Java中创建2D形状的swing高级API   JavaSwing:制作一个可滚动的JPanel列表   引用泛型类中枚举成员的c#语法   java Doc4j:由于元素类型不同,比较两个文档失败   java如何优化绘制这些标记?