Skip to content

Latest commit

 

History

History
127 lines (106 loc) · 9.41 KB

File metadata and controls

127 lines (106 loc) · 9.41 KB

MalwarePinAnalyzer 项目进度

更新时间:2026-07-19

已完成并验收

阶段 能力 验收证据
1 模块化 Pintool、二进制协议 v1、TLS 缓冲、模块/线程、安全读取、Python JSONL x64/x86 Release 构建与协议测试
2A/2B Windows API 参数/返回值、句柄、文件/注册表时间线 Pin 集成测试
3 API 调用树、全量函数调用树、多个样本 DLL、符号 API 叶节点停止规则 x64/x86 调用树集成测试
4A 本地内存生命周期、深度写入、私有执行、Dump、解包报告 x64/x86 内存测试及真实报告
4B1 Win32 远程内存/线程和注入链 x64/x86 注入报告
4B2 Native 内存、Section/View、运行时 syscall 映射、direct syscall x64/x86 报告及回归
5A/5B 反调试/时间观察、CPUID、RDTSC、异常、PEB/TEB、环境枚举、自校验证据 x64/x86 反分析报告
5C 反调试中和与统一虚拟时间;保留 original/effective/action x64/WOW64 差异和虚拟时间测试
6A 跨域行为报告、IOC、持久化候选、运行差分、DNS/socket/WinHTTP 链 x64/x86 网络报告及回归
7 子进程跟随、每 PID 独立日志、PROCESS_CREATE/START/EXIT、离线进程树、x64→x86 工具切换 同架构及跨架构 Pin 集成测试
8A 显式模块/RVA或绝对地址 ROI、线程过滤、指令字典、x64/x86 寄存器/分支/内存快照、硬配额、VMP Trace 报告 双架构真实 ROI Trace 与协议测试
8B 动态基本块、dispatcher 证据评分、handler slice/聚合、VIP/VSP 候选与硬件 SP 降权 合成 VM-like 流、短流保守性、多线程隔离及真实日志报告
8C 样本作用域私有执行自动 ROI、API/VMEntry/VMExit 每线程触发状态机、handler slice 重放包导出 x64/x86 私有执行、触发顺序、协议与真实报告
8D rolling-key 证据候选、写后值、内置与 Triton x86/x64 局部语义验证/符号化 合成 VM-like 候选、普通样本零候选、真实 slice 逐步验证
第一版收尾 A Force 反调试策略、有界 API Buffer 采集、主模块/DLL 跟踪范围、版本化规则配置 双架构集成测试与规则契约测试
6B 挂起进程/Hollowing 证据链、进程命令行/互斥体/服务/任务 IOC、Dump/Buffer/PEM 指纹 离线保守关联与 x64/x86 无恶意进程链测试
8E 模块内多函数名称 ROI;保留既有 RFLAGS/EFLAGS、寄存器、内存与分支状态 x64/x86 导出函数范围真实 Trace
用户体验收尾 mpa.ps1 一键采集/报告/验证、quick/standard/deep/vmp 预设、标准报告套件、结果索引和中文手册 x64/x86、deep、VMP ROI、目标参数及多进程端到端测试
9A 自动发现样本调用的命名 API、JSON 关键参数配置、通用 x64/x86 ABI 参数采集、API 清单报告 双架构自动发现、CreateFileW/CopyFileW 参数与完整调用配对测试

当前完整回归结果:

  • 离线协议、分析与部署契约测试:98/98(另有 4 项可选 Triton 依赖测试按预期跳过);
  • x64 Pin 集成测试:36/36;
  • x86/WOW64 Pin 集成测试:35/35;
  • 合计:169/169;
  • x64 与 Win32 Release 构建均为 0 警告、0 错误。

全套执行期间曾有用例因主机休眠导致 Python 产生负超时时间;受影响的方法均 已单独完整重跑通过,属于测试运行环境中断,不是 Pintool 超时或崩溃。

验收报告位于 output/process-tree-x64.jsonoutput/process-tree-x86.jsonoutput/cross-arch-process-tree.json。 跨架构报告确认 x64 父进程与 x86 子进程正确关联,子进程退出码为 23, 唯一诊断是预期的 architecture_switch 信息。

阶段 8A 验收报告位于 output/vmp-trace-x64.jsonoutput/vmp-trace-x86.json。两者均精确达到 5000 条运行事件硬上限,所有 instruction ID 都存在定义且无重复;x64/x86 寄存器数分别为 16/8,达到配额后 进程仍正常退出。

阶段 8B/8C 报告位于 output/vmp-analysis-x64.jsonoutput/vmp-analysis-x86.jsonoutput/vmp-trigger-x64.jsonoutput/vmp-trigger-x86.json 以及 output/vmp-replay-*-slice1.json。 API 触发报告均达到 1000 条运行事件硬上限并保留 25 条逐线程状态转换; VMEntry/VMExit 集成测试验证同一入口/出口地址只记录一条运行指令,顺序严格为 active 状态事件、指令事件、dormant 状态事件。

当前状态

阶段 9A 已完成实现:默认 api_tracking=auto 自动记录从样本作用域进入的命名 系统 API,内置 60 项语义规则继续提供深度参数/句柄关联且不会与通用事件重复。 用户可通过 -ApiConfig 传入版本化 JSON,一次声明大量需要关键参数的 API;入口 会先严格校验并编译配置,再启动目标。通用采集支持 x64 Windows ABI 与 x86 winapi/cdecl/fastcall,所有字符串和 Buffer 均使用有界安全读取。标准报告新增 api-inventory.json,直接回答 API 名称、调用次数、线程、参数解析来源和样例。

阶段 8D 已实现 rolling-key/VM 状态候选的保守评分,以及内置 x86/x64 标量 整数语义验证。事件 53 为具有可靠 IPOINT_AFTER 的非控制流写指令采集有界 写后值,x64/x86 5000 条 Trace 分别产生 438/1157 条写后事件。真实测试 slice 的支持指令均与观测一致,x64/x86 覆盖率分别为 69.2% 和 75%;调用、返回和跨 ROI 控制流仍明确标为 unsupported。官方 Triton 后端已经接入并实际验证原始 指令字节,x64/x86 覆盖率提升至 76.9%/81.25%,支持选择寄存器与捕获读内存的 符号化并导出 AST,零语义不一致。

第一版收尾 A 已完成:force 可按 force_anti_debug=absent|present 强制已批准 的反调试结果;capture_buffers 可在 1–16384 字节硬上限内安全采集 API 输入/ 输出;trace_maintrace_sample_dll 已控制全量调用树及样本指令级反分析 作用域。rules/ 现包含 Observe、Neutralize、Force 三套版本化配置合同和 schema, 启动诊断不再把任何已声明开关标为 inactive。

阶段 6B 已加入严格句柄代次和顺序约束的挂起进程/Hollowing 候选,结论标为 inferred;IOC 报告增加进程命令行、命名互斥体、服务/任务注册项、Dump/Buffer 哈希和完整 PEM 证书/公钥指纹。阶段 8E 增加模块内多函数名称 ROI;运行事件原有 的 RFLAGS/EFLAGS、通用寄存器、内存与分支事实继续保留。

上一版可复现部署包位于 dist/MalwarePinAnalyzer-1.0.0.zip,包含双架构 DLL、离线 分析器、规则、运行入口、原生 x86 验收入口和包内 SHA-256 清单;x64/x86 包内 采集及严格日志验证均通过。validate-log 会验证协议架构、事件完整性、主模块、 全局序列唯一性、线程内序列递增、线程生命周期平衡和正常进程退出。原生 x86 验收脚本默认拒绝在 x64/WOW64 环境产生正式通过结果;其 WOW64 门禁自测已通过。 最终包大小为 3,162,087 字节,SHA-256 为 7aaed226bed36d2c9245e5e2b20927d4f4340851b5f6419e32ad7223db7d9ef7;包内 40 个文件的清单复核无错误。最终发布包一键分析证据位于 output/ux-release-final-x64/reports/validation.jsonoutput/ux-release-final-x86/reports/validation.json,分别验证 3398/3069 条事件, 线程流均为 31 个。

用户体验收尾新增推荐入口 mpa.ps1:默认一条命令自动识别目标架构、采集并生成 完整报告套件;支持 quick/standard/deep/vmp 四个预设、目标参数、多个样本 DLL、 子进程以及 report/verify 离线工作流。每次运行生成独立目录和 reports/README.md; 多进程运行生成根索引及 process-tree.json。真实端到端结果包括:最终 standard x64/x86 分别 3398/3069 条事件,deep 生成 1273 个函数调用节点,函数 ROI 生成 4 条 VMP 指令事件,子进程模式生成 2 份日志、2 份报告并正确关联一个根进程。

阶段 9A 发布包为 dist/MalwarePinAnalyzer-1.1.0.zip,包含自动 API 追踪器、 JSON 配置编译器、配置 Schema/示例、API inventory 报告和更新后的中文手册。 包内一键实跑结果位于 output/phase9a-release-x64output/phase9a-release-x86:分别记录 3821/3692 条事件、1313/1255 次 API 调用和 97/98 个唯一 API;两种架构均从配置正确提取 CopyFileW 的源/目标路径, 并标记 50 次 CreateFileW 为配置请求。发布包大小为 3,202,151 字节,SHA-256 为 c70ec19b10f7941b5e29f0d9870e0b4d3ec5fa96f538589e072a3f40a1bb9353

后续计划

  1. 将发布包复制到原生 32 位 Windows 实机,运行 native-x86-acceptance.ps1 并归档生成的 validation.json

已知边界

  • 原生 Windows 10 x86 已具备一键部署验收和防伪门禁,但当前工作环境仍不是 原生 32 位系统,因此尚缺实机/虚拟机产生的最终 validation.json
  • neutralize 只修改已批准的反调试查询和显式启用的虚拟时间;
  • PEB、CPUID、异常、环境枚举与自校验证据仍保持观察模式;
  • force 只修改已批准的调试器存在性查询,不伪造 PEB、CPUID、异常、环境或 自校验结果;
  • 当前能够定位、导出、具体验证和局部符号化候选 handler,但还不是自动 VMProtect 去虚拟化器;跨 ROI 连续完整语义和自动生成去虚拟化代码不在 第一版承诺范围内。