性能优化
CTF恶意软件分析时用:从混淆脚本…
适用于 CTF 中分析恶意样本、混淆脚本、C2 通信、PE/.NET 恶意软件、shellcode 或内存注入的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
CTF恶意软件分析时用:从混淆脚本、C2通用
解决思路
- 安装 Python 包:`pip install yara-python pefile capstone oletools unicorn pycryptodome volatility3 dissect.cobaltstrike`。
- Linux 安装工具:`apt install strace ltrace tshark binwalk binutils`。
- macOS 安装工具:`brew install wireshark binwalk binutils ghidra`。
- 手动安装 dnSpy(Windows .NET 反编译):从 https://github.com/dnSpy/dnSpy 获取。
- 静态分析先用 `file suspicious_file`、`strings -n 8 suspicious_file | head -50`、`xxd suspicious_file | head -20`。
- PE 快速分析:`python3 -c "import pefile; pe=pefile.PE('mal.exe'); print(pe.dump_info())" | head` 与 `peframe mal.exe`。
- 动态分析必须在沙箱中运行:`strace -f -s 200 ./suspicious 2>&1 | head -100` 和 `ltrace ./suspicious 2>&1 | head -50`。
- 提取网络指标:`strings suspicious_file | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'` 和 `strings suspicious_file | grep -iE 'http|ftp|ws://'`。
- YARA 扫描:`yara -r rules.yar suspicious_file`。
- 混淆脚本处理:把 `eval`/`bash` 替换为 `echo` 打印底层代码;提取 base64/hex 数据块并用 `file` 分析。
- JavaScript 去混淆:把 `eval` 替换为 `console.log`,解码 `unescape()`、`atob()`、`String.fromCharCode()`。
- PowerShell 去混淆:解码 `-enc` base64,把 `IEX` 替换为直接输出。
- 垃圾代码检测:识别 NOP sled、push/pop 对、死写入、跳到下一条指令的无条件跳转;过滤后提取真正的 `call` 目标。
- PCAP 分析:`tshark -r file.pcap -Y "tcp.stream eq X" -T fields -e tcp.payload`;关注异常端口上的 C2;用 `strings | grep` 提取 IP/域名。
- 自定义加密协议:流密码双向共享 keystream 状态,按时间顺序拼接所有 payload。
- ChaCha20 keystream 提取:发送 nullbytes(0 XOR 任意值 = 任意值)。
- C2 流量模式:识别 beaconing、DGA、DNS tunneling、带自定义头的 HTTP(S)、编码 payload。
- RC4 加密 WebSocket C2:用 `tcprewrite` 重映射端口,添加 RSA 密钥解密 TLS,在二进制中找 RC4 密钥。
- 识别加密算法:AES 查 `0x637c777b` S-box;ChaCha20 查 `expand 32-byte k`;TEA/XTEA 查 `0x9E3779B9`;RC4 查顺序 S-box 初始化。
- 恶意软件中的 AES-CBC:Key = 硬编码字符串的 MD5/SHA256;IV = 密文前 16 字节。
- PE 分析工具:`peframe malware.exe` 快速分类,`pe-sieve` 运行时分析,`pestudio` 静态分析(Windows)。
- .NET 恶意软件分析:用 dnSpy/ILSpy 反编译,用 AsmResolver 做程序化分析;LimeRAT C2 使用 AES-256-ECB 与 MD5 派生密钥。
- 恶意软件配置提取:检查 `.data` 节、PE/.NET 资源、注册表键、加密配置文件。
- 沙箱规避检查:检查 VM 检测、调试器检测、计时检查、环境检查、分析工具检测。
- 反分析技术:VM 检测(CPUID、MAC 前缀、注册表、磁盘大小)、计时规避(sleep/RDTSC 沙箱检测)、API hashing(ROR13/DJB2/CRC32 + hashdb 查询)、进程注入(hollowing、APC、CreateRemoteThread)、环境检查。
- 木马化插件分析:将恶意插件与官方发布版 diff,定位 try/except 块中注入的代码;自定义字母表旋转 `C[(C.index(ch) - offset) % len(C)]` 解码 C2 域名,XOR 解码 endpoint 路径。
- PyInstaller + PyArmor 解包:用 `pyinstxtractor.py` 提取,用 PyArmor-Unpacker 处理保护代码。
- Telegram Bot 证据恢复:用恶意软件源码中的 bot token 调用 `getUpdates` 和 `getFile` API。
- Debian 包分析:`ar -x package.deb && tar -xf control.tar.xz`,检查 postinst 脚本。
- 编写 YARA 规则检测恶意软件:匹配字节模式、字符串和正则到文件或内存转储;检测 XOR 循环 `{31 ?? 80 ?? ?? 4? 75}`、base64 blob、编码 PowerShell;用 `yarac` 编译以加速扫描。
- Shellcode 分析:`objdump -b binary -m i386:x86-64` 反汇编;用 Unicorn Engine 模拟并安全 hook 系统调用;用 Capstone 做程序化反汇编;查找 XOR 解码 stub。
- 内存取证:`vol windows.malfind` 检测注入代码(PAGE_EXECUTE_READWRITE 且无映射文件);`windows.pstree` 查看可疑父子进程关系;用 `windows.vadyarascan.VadYaraScan` 对内存做 YARA 扫描。
- 网络指标快速参考:`strings malware | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'`;`tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort -u`。
- DNS-based C2、Poison Ivy RAT Camellia 解密、网络指标、PCAP 分析、AES-CBC、加密识别的完整细节见 `c2-and-protocols.md`。
- 动态分析技术:网络监控、内存字符串提取、自动化沙箱执行;完整细节见 `scripts-and-obfuscation.md`。
- 脚本与混淆完整细节见 `scripts-and-obfuscation.md`;PE/.NET 完整细节见 `pe-and-dotnet.md`。
适用边界 · 注意事项
- 样本只是普通 crackme、带壳挑战二进制或自定义 VM,且无恶意行为时,改用 `/ctf-reverse`。
- 主要任务是网络重建、磁盘雕复或主机痕迹恢复时,改用 `/ctf-forensics`。
- 挑战转向公开归因或基础设施追踪时,改用 `/ctf-osint`。