Crypto in Malware / Reverse Engineering
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
本小节在你在二进制文件中看到 crypto/compression 时,帮助你快速识别。
Identifying cryptographic / compression algorithms
Technique-first heuristics
- 在紧密循环中大量的 shifts/rotates、XORs 和 32-bit 算术运算。
- 在
.data中的 lookup tables (S-boxes),或运行时生成的表。 - 重复的
0x100次循环通常暗示 RC4。
Windows crypto/compression APIs
CryptDeriveKey / CryptCreateHash
如果使用了这些,第二个参数是一个 ALG_ID:
.png)
Table: https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id
RtlCompressBuffer / RtlDecompressBuffer
通常表示使用内置的 Windows compression(LZNT1、XPRESS 等)。
Constants & tables
有时可以通过在线搜索常量(或表的第一个 dword)来指纹化某个 hash/cipher。
.png)
AES tables example:
.png)
RC4 recognition notes
RC4 往往可通过以下特征识别:
- 两个 256 次的循环(init + KSA)
- 随后是使用
% 256的 PRGA 循环,并用 keystream 对数据进行 XOR
Unpacking binaries
Technique
Packers 会变换二进制,使静态分析产生误导(垃圾代码、加密的 section、运行时解包)。目标是捕捉到它在下列时刻的行为:
- 在内存中分配/解密真实代码
- 将其标记为可执行
- 跳转进入该代码
Identifying packed binaries
- 缺乏 strings(或只有 packer 的 strings)
- 许多 strings 没有 xrefs(商业 packer)
- 使用 packer-ID 工具:
- PEiD
- Exeinfo PE
Basic recommendations
- 从底部开始向上分析;unpackers 通常较晚跳转。
- 查找
JMP/CALL reg模式或栈技巧(push addr; retn)。 - 在
VirtualAlloc/VirtualProtect上设置断点并跟踪 RWX 区域。 - 跳转后 strings 突然激增通常表示你到达了解包后的代码。
- 使用工具(如 PE-bear)转储内存并修复头信息。
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HackTricks

