病毒分析
点击放大

<h1 align="center">
Shelltropy
</h1>
<h2 align="center">
The more predictable you are, the less you get detected
</h2>
A technique of hiding malicious shellcode based on low-entropy encoding.
Entropy is the measure of the randomness in a set of data (here: shellcode). The higher the entropy, the more random the data is. Shannon Entropy is an algorithm that will produce a result between 0 and 8, where 8 means there is no pattern in the data, thereby it's very random and 0 means data follows a pattern.
Note: Check out my blog article for a more detailed explanation of my research, and a simple Shellcode Injection PoC as well.
For the encoder:
Create a new Studio project and import both Entropy.h and shannonEncode.cpp and simply build it.
For the Shellcode Injection PoC (with Syscalls):
Open the Studio project file located in and simply build it.
Note: If you want a simple Shellcode Injection PoC with WinAPI check out my blog
For the decoder (optional since it's included on the Shellcode Injection PoC):
Create a new Studio project and import shannonDecode.cpp and simply build it.
The concept is to divide the array into chunks and insert a low-entropy pattern of bytes between each chunk. When the sample is run, we must reconstruct the original payload in memory, bypassing the static detection of the high entropy code at this stage.
It's also worth noting that the low-entropy code to be inserted can follow a of patterns, and the amount of insertions can vary, thus it can be used to circumvent static signature detection. The second step is to combine the high entropy chunks of bytes with the low entropy chunks.
Because, after all, we need to restore the obfuscated code to what it was initially in order to proceed to the de-obfuscation step, the third task will restore the original array of bytes by deleting the low entropy patterns.
!poc_logic_flow
!
Note: The following results are only tested with CS Shellcode.
~ Raw default Cobalt Strike shellcode
(High-entropy) Normal: 7.062950
(Low-entropy) Encoded: 4.527140
~ XORed Cobalt Strike shellcode
(High-entropy) Normal: 4.583139
(Low-entropy) Encoded: 3.278284
High-Entropy (left side) (right side) default CS Shellcode integrated with Syscalls (Syswhispers2):
!results-side-by-side
While encoding, the size of the shellcode will be 2 times larger, making it easier for Blue Team/ Malware Analysis to detect such encoded shellcodes.
The Shellcode Injection template (using Syscalls2) is copied from this project:
开发语言:Assembly
Star 数:269
该项目属于病毒分析方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕A technique of hiding malicious shellcode via Shannon encoding. 展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | Shelltropy - A technique of hiding malicious shellcode via Shan |
| 所属分类 | 病毒分析 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 23:24:48 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 181 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |