diff --git a/tools/tdc_probe.js b/tools/tdc_probe.js index 7ac51a5..f1db10f 100644 --- a/tools/tdc_probe.js +++ b/tools/tdc_probe.js @@ -84,9 +84,27 @@ function probeTdc(tdcFilePath, options = {}) { // ---- 神谕钩子(自包含, 写在沙箱内的 window 上): 记录 PC, 并在进入 XTEA 例程时 dump 密钥寄存器 ---- const TARGET_PC = parseInt(process.env.XTEA_PC || "9109", 10); - const HOOK = "window.__PC=window.__PC||[];window.__H=function(H,E){window.__PC.push(H);" - + "if(H===" + TARGET_PC + "&&!window.__XT){var c=E[7];window.__XT={at:H," - + "r7:Array.isArray(c)?JSON.stringify(c).slice(0,300):String(c),prev:window.__PC.slice(-260)};}};"; + const BASE = (process.env.BASE_KEY || "1817655617,1381395306,1245924197,1767660346"); + const HOOK = "window.__PC=window.__PC||[];window.__W=[" + BASE + "];" + + "window.__H=function(H,E){window.__PC.push(H);" + + "if(H<=" + TARGET_PC + "&&!window.__ARR){" + + "for(var i=0;i=0)window.__WRD={at:H,reg:f,prev:window.__PC.slice(-120)};}" + + "};"; + // 可选: 在指定 PC dump 全部寄存器 (神谕二分/定位用) + const DUMP_PC = parseInt(process.env.DUMP_PC || "-1", 10); + if (DUMP_PC >= 0) { + tdcCode = "window.__DPC=" + DUMP_PC + ";window.__DUMP=null;(function(){var _h=window.__H;" + + "window.__H=function(H,E){_h(H,E);if(H===window.__DPC&&!window.__DUMP){var o=[];" + + "for(var i=0;i