Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Packer-payload-EntropyReducer — 使用序列化链表降低熵并混淆你的载荷 | Kitploit
工具/GitHubGitHub/gmh5225/packer-payload-entropyreducer
加密/解密工具Payload生成Shellcode恶意软件分析红队Payload 开发
GitHubgmh5225/packer-payload-entropyreducer

Packer-payload-EntropyReducer

使用序列化链表降低熵并混淆你的载荷

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
55813年前尚未审核

EntropyReducer:降低载荷的熵并使用序列化链表对其进行混淆


工作原理

EntropyReducer 算法由 BUFF_SIZE 和 NULL_BYTES 的值决定。以下说明当 BUFF_SIZE 设为 4、NULL_BYTES 设为 2 时,EntropyReducer 将如何组织你的载荷。

image


混淆算法

  • EntropyReducer 首先检查输入的原始载荷大小是否为 BUFF_SIZE 的整数倍,如果不是,则对其进行填充使其满足该条件。
  • 然后它从载荷中取出每个 BUFF_SIZE 大小的块,使用 InitializePayloadList 函数为其创建一个链表节点,将载荷初始化为链表。
  • 创建的节点将拥有一个大小为 NULL_BYTES 的空缓冲区,用于降低熵。
  • 此时,尽管 EntropyReducer 已通过降低载荷的熵完成了其任务,但它并未就此停止。它接着继续随机化链表中每个节点的顺序,打乱原始载荷的顺序。此步骤通过 归并排序算法 完成,该算法通过 MergeSort 函数实现。
  • 排序后的链表处于随机顺序,因为链表排序所依据的值是原始载荷前三个字节的 XOR 值,该值决定了它在重新组织的链表中的位置,此步骤可见此处
  • 由于链表通过指针相互链接,将其保存到文件是不可能的。我们被迫对其进行序列化。
  • 生成的链表的序列化通过 Obfuscate 函数完成,见此处。
  • 之后,序列化数据即可写入输出文件。

去混淆算法

  • 由于 混淆算法 的最后一步是序列化链表,因此这里首先要做的是反序列化混淆后的载荷,从中生成一个链表,此步骤在 Deobfuscate 函数中完成,见此处。
  • 下一步是使用节点的 Id 对链表进行排序,这使用之前相同的归并排序算法完成。
  • 现在,链表已处于正确的顺序,可以按应有的方式重建载荷的字节。因此我们只需从每个节点中剥离载荷的原始字节,如此处所示。
  • 最后一步是释放已分配的节点,见此处。

用法

  • EntropyReducer 仅从命令行读取原始载荷文件,并将混淆后的版本写入以 ".ER" 为前缀的同一文件名。
  • 最终混淆后载荷的大小取决于 BUFF_SIZE 和 NULL_BYTES 两者的值。不过,可以使用以下公式确定
FinalSize = ((OriginalSize + BUFF_SIZE - OriginalSize % BUFF_SIZE ) / BUFF_SIZE) * (BUFF_SIZE + NULL_BYTES + sizeof(INT))

本仓库中的 PoC 项目用于执行生成的 ".ER" 文件,作为反序列化和去混淆的示例。


集成到你的项目中

你只需将 EntropyReducer.c 和 EntropyReducer.h 文件添加到你的项目中,并调用 Deobfuscate 函数即可。你可以参考 PoC/main.c。


输出示例

在此示例中,BUFF_SIZE 设置为 3,NULL_BYTES 设置为 1。

  • 原始载荷,第一个载荷块(FC 48 83)

image

  • 相同的载荷块,但位于不同的偏移位置

image


效果

  • metasploit 生成的 x64 calc shellcode 熵值为 5.883,通过 pestudio 查看。

image

  • 同一文件经 AES 加密后,熵值为 7.110。

image

  • 使用 RC4 算法得到的结果几乎相同;7.210

image

  • 然而使用 EntropyReducer,熵值甚至低于原始载荷;4.093

image


归并排序算法取自 c-linked-list。

下载工具