executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
re-loader加载器/投放器分析:多层下载、内存加载、模块拼接。 触发词:加载器、loader、dropper、投放器、内存加载、模块拼接
Independent GitHub snapshot · Automated classification · Original documentation governs
所有工具先验证再使用。本技能是动态分析为主——运行环境与监控工具直接复用下列技能(装法见各技能),本技能额外补两个提取用工具。
strace -V + gcore --help 可用pip install pefilepython3 -c "import pefile; print(pefile.__version__)"pe-sieve.exe /? 输出用法按顺序执行,每步记录证据(路径 + sha256,见 [[re-triage]]);每层载荷的"来源"(URL/路径/内存偏移)与 sha256 是报告核心([[re-ioc]])。
初始样本识别(下载器 vs 完整载荷):
file loader.bin && sha256sum loader.bin
ls -la loader.bin # 下载器通常小(几 KB~几百 KB)
strings -n 6 loader.bin | grep -iE 'http|url|download|temp|\.exe|\.dll' | head -30
下载/解压链跟踪:
# Linux 沙箱内
strace -ff -o out -e trace=network,file,process ./loader.bin
grep -E 'connect|sendto|openat|execve' out.* | head -50
# Windows 沙箱内: ProcMon 过滤 网络操作/文件写入/进程创建 三个类别
sha256sum 存档内存加载分析(反射式加载 / 进程空洞):
proc.name=loader 或 ProcMon 进程操作 + 内存写入);[[re-memdump]] 在窗口期 gcore -o out <pid> 提取(时机见坑 2)模块拼接(多文件合成 / 多段写入):
# 拼接后校验: 内存切片/下载片段重组出的模块
python3 - <<'EOF'
import pefile
pe = pefile.PE('mem_module.bin') # 解析重组产物
print(pe.FILE_HEADER.Machine, len(pe.sections), pe.OPTIONAL_HEADER.AddressOfEntryPoint)
EOF
提取最终载荷分析:
gcore 转储太早(载荷未解密/未映射到可执行状态)或太晚(已执行完毕被清理),提取出的模块残缺/全零;原因——内存载荷只在落地窗口期完整存在;对策——按跟踪日志定位落地点(网络接收 → 写入内存 → 创建线程),在反射入口/线程创建前转储([[re-analyze/platform-tips]] 关键经验: 按明文/代码 materialization 定 dump 点,OEP 非通用判据);配合断点暂停进程再转储;多转几次对比br mmap_base + offset)确认入口file 永远是第一步;解析器选容错实现(可处理损坏头)
(来源:reverse-skill field-journal,MIT)