boreltaf/string-deobfuscator
GitHub: boreltaf/string-deobfuscator
一款基于 Capstone 反汇编引擎的逆向分析工具,专门检测和还原恶意软件通过运行时栈上动态构建来隐藏的字符串。
Stars: 0 | Forks: 0
# 字符串去混淆器
**主题:** 逆向工程与对手技术
用于检测在 **运行时于栈上构建** 的字符串——这是恶意软件常用的反分析技术,旨在对 `strings` 实用工具隐藏 C2 URL、命令和配置数据。
## 工作原理
恶意软件经常使用连续的
`mov byte [rbp-N], 'X'` 指令逐字符构建字符串。由于该字符串
在 `.rodata` 中从不作为连续字面量存在,`strings` 命令什么也
看不到。
此工具使用 Capstone 反汇编 `.text` 段,并识别
三种模式:
| 模式 | 技术 | 示例 |
|---------|-----------|---------|
| byte-write | 连续字节存储 | `mov byte [rbp-0x30], 'h'` … `mov byte [rbp-0x2f], 't'` |
| dword-write | 多字节立即数 | `mov dword [rbp-0x30], 0x70747468` → "http" |
| movabs-store | 64 位加载后存储 | `movabs rax, 0x…` ; `mov [rbp-0x28], rax` |
## 环境要求
- Python 3.8+
- Capstone:`pip install capstone`
就这些——零其他依赖。
## 快速开始
```
# 安装这一个 dependency
pip install capstone
# 构建 test binary
gcc -O0 -fno-builtin -o test_binary test_stack_strings.c
# 证明 `strings` 会遗漏隐藏数据
strings test_binary | grep -E "(evil|Mozilla|/bin/sh)"
# → (无输出!)
# 运行 deobfuscator
python3 string_deobfuscator.py test_binary
# → 发现: https://evil-c2.com:8443/api
# Mozilla/5.0 (Windows NT 10.0)
# /bin/sh
# @reboot /tmp/updater
```
标签:Capstone, DAST, DNS 反向解析, 云资产清单, 反混淆, 字符串混淆, 恶意软件分析, 系统运维工具, 逆向工具, 逆向工程