yml2213
9c889215f2
feat(vm): 提升器按闭包边界切分函数 + 递归展开全部子程序
做了什么:
- tdc_disasm.disassemble_cfg 增加 follow_closures 开关
(提升单函数时关闭, 避免"子函数体的可达性溢进父函数")
- tdc_lift.run 递归提升所有被引用的闭包: 229 个独立函数
- 函数名统一为 sub_<target>, 便于按 pc 定位
为什么:
- 原来整个程序挤在一个 function 里(闭包 body 与父函数地址连续), 无法按子程序阅读
- AGENTS.md §3.3 步骤5 明确要求"子程序调用(闭包创建)递归展开"
怎么验证:
- .venv/bin/python tools/tdc_lift.py tcaptcha/core_js/tdc_sample.js
-> lifted functions=229; XTEA 例程 = sub_9109, 内含 r2=(r2+2654435769)
- .venv/bin/python tools/tdc_query.py .../tdc_sample.lifted.txt who r2
-> sub_9109 @9109: r2 = 0; @9285: r2 = (r2 + 2654435769);
2026-10-11 22:18:42 +08:00
..
2026-10-11 20:13:14 +08:00
2026-10-11 20:13:14 +08:00
2026-10-11 20:13:14 +08:00
2026-10-11 20:13:14 +08:00
2026-10-11 20:13:14 +08:00
2026-10-11 21:47:27 +08:00
2026-10-11 20:13:14 +08:00
2026-10-11 22:18:42 +08:00
2026-10-11 21:30:26 +08:00