# 无限五代维护约定(v1.1.0) - 每次客体恢复实验首先执行 docs/GUEST_DEBUG.md 的“每次实验必做的启动与就绪检查”:定位实际 VMX → VMware 启动/恢复 → vmrun list 精确确认 → 客体桌面解锁 → 预置服务启动 → 实际认证连接 → 本次目标 SHA 目录匹配 → 原审批下采集/恢复与完整清理。不能跳过启动步骤,把虚拟机未运行、未解锁、服务未连或新样本未接入记成去虚拟化算法失败;缺件记为 environment-not-ready。实际实验机是 D:\IG5-VMs\IG5-Win11-Lab\IG5-Win11-Lab.vmx,桌面的 win11 镜像目录是 ISO;路径每次仍须核实。锁屏由用户解锁,不记录口令。ig5_profile guest_debug 仅查文件,authenticatedStartupVerified=false 是该接口的固定范围标记,不是实时连接失败证据。新目标通过新私有 bundle/manifest/profile 正常部署,不绕过旧目录;不直接修改安装副本或安全设置。每次暂停/重启/恢复快照/服务到期后重新核对就绪证据,旧结果不得继承。 - recovery.context 见 docs/VM_CONTEXT_MODEL.md:只接受 1..16 个已提交 handlers UUID/SHA,逐层重验 handler/recurrence/selection CAS;调用者不得提供 VIP/VSP、阶段或 opcode 语义。只从完整录制观察归纳 fetch updater、dispatch base input、source/target carrier 与 memory-proximate mutable register 候选,并保留所有 partial unknown GPR/STORE。单一 recorded run 只能是候选,initialization/fixup/business 在 module/memory epoch、函数合同、独立 oracle、不同输入/VM 实例缺失时必须 unknown;dispatch 仅 observed-candidate。独立 Python 审计重读全部 source report 并复算;非CPU/可达性/通用ISA/具体程序/3.8/业务证明。test:vm-context。 - CMOV 内部控制例外见 docs/STATE_PROJECTION.md:只接受字节绑定的寄存器源16/32/64位、固定SLEIGH完整条件计算/源值快照/可选先清高32/跳至确切fallthrough/目的COPY。全部16条件与非重叠临时量逐项匹配;原全部raw和预算保持,最多一条无回边条件边。只有同次planner在所有GPR/STORE地址和值/末控制/side exit证明整个目的frame已死才省略,r32含完整64位,条件标志保持,不注入初始值或提供活CMOV结果。内存源、未知前缀/错序/冗余宽度、缺件/额外写拒绝;不推广一般内部CFG。test:cmov-dead-frame与Java实际解码/独立原始解释、录制主体、安装SDK/真实模型分层,不计完整CPU/VM/3.8/业务通过。 - recurrences显式sample_strategy=distinct-source-targets可按源字节/观察目标组合首次出现分页,pair_offset0..255,最多256组合/每页8完整路径,原128位置/1024逻辑/256KiB快照/4096内存访问及所有worker/采集/求解额度不变。默认首4尾4的完整报告形状及旧引用重算保持。源地址只由原完整DAG的纯初始GPR表达式计算,必须匹配确切宽度原生读取;缺失/冲突/RAM或opaque依赖保留未观察,不从RAX/目标猜源值。全输入/描述符扫描和组合盘点是观察,只有选中路径做普通状态检查;不能当全部组合/ISA/phase/业务通过。超过256组合保存unindexed计数/下界,公共预览最多8行,完整清单绑定报告SHA,handler复用报告内已封存选样模式。test:flow-pairs与独立原始解析、安装/SDK/实际模型分层。 - recovery.handlers见docs/VM_FETCH_FLOW.md:只接受已提交recurrences UUID/SHA、显式同摘要原PE和原指令额度;先重验flow/原全部窗口并重算recurrences,再自动选至下一确切fetch头的主体,不收调用者地址/语义/未知值。Java opaque-status全16GPR/整内存/有序STORE;只按原字节相对分支核对控制PC,GPR/RAM/数据常量不重定位,CALL/RIP数据/未支持指令拒绝。未知标志映像不由记录填值,写后读取不种入初始RAM;partial保留未知GPR/STORE,条件出口两侧保留。原128不同地址/1024逻辑、两槽/单child2GiB50秒/同nonce ACK+root真实exit、总60秒、数据worker64MiB15秒及全部采集/SMT/13门/pins不改。旧3.11观测不是新原生执行/完整CPU/VM角色/3.8/业务证明。test:vm-handlers、原记录独立审计、安装/SDK/配置模型分层记录。 - recovery.recurrences见docs/VM_FETCH_FLOW.md:只接受已提交flow UUID/SHA,重验原完整窗口与字节描述符;不读原PE、不启动分析/调试native。单数据worker原64MiB/15秒/1+4、profile60秒、原256窗口/16MiB/默认50k显式100k不扩。首4尾4完整路径,最多8*128=1024逻辑组,单路径快照256KiB;超限仍扫描全部输入并保留未验证。有限已观察初始RAM+按序STORE overlay,全部16末态GPR/目标/写入核对;不补零、不从寄存器/flags推断未知效果,最多4096回放内存访问。原录制结构与全描述符匹配不冒充所有77次普通状态验证或CPU/中间GPR/flags/完整写footprint证明。源地址更新/表输入仅观察候选,VM角色/epoch/跨输入/业务false。test:flow-recurrences及真实旧录制独立解析、安装/SDK/配置模型分层;13门、40工具和原pins不改。 - recovery.flow显式semantic_check=true见docs/VM_FETCH_FLOW.md,独立assessed-v1,不改变默认结构v1。内部固定JSON经flow-semantics原两槽/单进程2GiB50秒;原Z3 pins/2秒512MiB/128查询/1MiB/2048式8192词128深度及全flow60秒不扩。全DAG含死定义核验、全16GPR/整内存/全部STORE根不cut,第二RAM仅源字节精确store。先验证可满足前提,其他LOAD按列表耦合;全部SAT有限见证由64MiB15秒数据worker独立回放。抵消索引/目标、unknown/未支持/预算/缺见证不升级;查询+模型+输出共4MiB。semanticNonconstancyProved仅存在普通IR双状态索引/目标变化且有相邻scope,非独占索引因果、CPU、原生可达性、新输入覆盖、VM或业务。原13门/pins/旧helper不改;test:flow-semantics与显式runtime、安装、模型分层。 - recovery.flow见docs/VM_FETCH_FLOW.md:仅已提交roles UUID/SHA+显式同摘要原PE,重验全部原录制,自动最早候选/连续窗口/首次间接控制,128不同位置和1024逻辑总额度、全阶段60秒与原两槽/子Job预算不扩。原文件逐字节唯一可执行映射后固定分析blob,只走Java全16GPR/整内存/全部STORE及独立首指令投影;同初态结构签名比较不是状态组合或CPU/语义非常量性证明,x XOR x和普通switch/RET歧义保留。不恢复隔离文件,不调headless/native SLEIGH,不猜epoch/VM角色;原13门不变。test:vm-flow及源码/安装/原记录独立核验/DSH模型分别记录。 - recovery.roles见docs/VM_ADDRESS_ROLES.md:复用原报告/窗口核验,数据worker两次遍历,4096站点/128选点/每站首4尾4,共最多1024观察;采样遗漏和计数下界明确。decode-observed只经原两槽/单进程2GiB50秒/同nonce ACK+root真实exit,处理有界JSON指令字节,不执行PE/不processing/不调headless或SLEIGH。地址/加载/间接目标匹配是观察,普通缓冲区/结构/返回仍有歧义,不赋VIP/VSP、不猜phase/epoch/文件地址;13门及原pins不变。新增test:vm-roles、真实旧录制/独立解析/安装/实际模型分别记录。 - 本宿主headless.exe与原SLEIGH DLL已有4551策略阻断证据,禁止以新目标/目录或复制、改名、重复启动重验。x64dbg runtime_policy.py在同配置组件路径的Popen前查应用级阻断历史;4551无自动过期/清空,损坏状态也拒绝,写缓存失败在当前适配器内仍保留拒绝。记录只影响应用能力选择,不改系统策略,不授予执行/清理权限。ig5_doctor x64dbg只读文件/缓存并保留blocked或not-probed,文件在不代表启动验证。源码/安装/实际模型均不得将本次新增store采集称原生通过;先走离线研究,其他后端须各自真实能力核验。回归test:runtime-policy。 - 可选record_events随原审批record_trace采集解码store位置前后字节,见docs/NATIVE_STORE_EVENTS.md。sidecar+raw共享1MiB,单步前预留,32位置/256字节,512步/40秒不扩;窗口16MiB含sidecar。身份变化或不可读保留null,changed=false不证明无写,枚举不证明内部写序,因果/CPU完整footprint仍false。只读观察入口重验全部事件再分页;旧记录不补写入,phase/epoch仍未知。test:store-events、显式固定自产原生夹具、SDK/安装/模型分层;旧VMCI bundle需另验。保持13门及原清理协议。 - P1只读观察层见docs/VM_OBSERVATIONS.md:`ig5_profile recovery={observations:{recordings:[{id,sha256}],target_sha256,offset,limit}}` 与case_ref互斥;只读当前debug-traces存储,稳定字节再次绑定原报告SHA,全部窗口核验后分页。保留CPUID缺失中间状态、未知阶段/epoch/写入,不猜字节码角色。共享原数据worker64MiB/15秒/1+4和256段/16MiB/50k默认100k显式预算;不新增执行或清理权限。test:vm-observations、Python独立解析、SDK/安装/真实模型分层,不能提升为完整VM或3.8业务通过。 - VM 研究主线与里程碑见 docs/VM_RECOVERY_FRAMEWORK.md,参考吸收见 docs/REVERSE_WORKFLOW_SOURCE_REVIEW.md。先按函数合同/有效证据/未决义务选择实验,局部handler证书作为组件回归。P0 的 case/plan/io/profile 与只读 CLI 保持调用者工作状态、字节身份和阶段证明分离;`ig5_profile recovery={case_ref:{path,sha256}}` 单独调用,先核对原 case 字节摘要,再读引用并保存完整输入快照及计划报告。自动执行/独立阶段验证器未连接,不能当完整VM/精确3.8/业务或清理权限;真实模型的规划验收也不代表自主业务恢复。回归 npm run test:vm-framework 及真实SDK/安装/配置模型分层;不改旧proof helper、runtime pins、13审批门、40工具或原预算。 槽208与137的条件连接见docs/CONTEXT208_JOIN.md:78保存原入口RBP到F+208,137从旧槽144读取原入口RSI,不能混淆当前VIP寄存器。四份完整核心相等后复用旧6项未切割局部查询,本轮22查询16UNSAT6SAT另证3层54绑定/4写/2出口与84→86→88事实、21槽和原671窗口/映像保持;复用不是新增覆盖,非CPU/原生/整VM/精确3.8业务证明。 槽200与处理器0条件连接见docs/CONTEXT200_JOIN.md:136保存原RSP S到F+200,0从旧槽120读取原始入口RBP经R9压栈,不能混淆当前RBP=S。全16GPR/整内存/6写/4出口及20槽保持,76→82→84事实,表项78四字节复用。30查询23UNSAT7SAT是局部方程和明确归纳;源字cut另有原LOAD证明,SAT派发cut恢复原STORE。初版2秒unknown保留,非整VM/CPU/精确3.8业务通过。 处理器208与256字节搬栈循环固定样本证书见docs/HANDLER208_RELOCATION.md;12/24/41条路径、自动32次复制和34层组合保持全16GPR/整内存/有序STORE/互补出口。84查询79UNSAT5SAT为局部方程与明确内存/绑定归纳,不是未切割整VM或精确3.8业务通过;75→76仅加一字节、复用四表项,原671窗口和19槽保持不可省略。 - 规范E8 rel0允许固定完整INT_SUB(RSP,8)/STORE(nextEA,8)/BRANCH(nextEA)形状;仅零位移,原BRANCH与语义hash/raw3/STORE索引1保留,不归一化成伪CALL。终端control仍transfer=call/returnAddress,directCall另记decoderForm/decoderControlOpcode;无ABI/返回假设。宿主零位移终端重验原raw完整字段/位宽/地址空间/栈写,键序无关、缺件/额外字段拒绝。非零CALL及其他前缀/间接/畸形/活初始flags限制不变。三份未切割全16GPR/整内存/有序STORE/控制方程3UNSAT及RET后栈写非空SAT,264状态/792报告计算仅普通模型,非CPU/业务。原失败保留,见docs/CALL_REL0.md与prove/verify_call_zero_semantics.py。 - ig5_ir level=discover仅target/ea、可选max_instructions1..128及Boolean follow_direct_calls(默认false),复用两槽/固定协议根/原单进程2GiB50sJob和九文件失败回执。仅已固定Triton disassembly,不processing/初始化目标状态/执行PE;全部独立依赖核对并持续持有。原字节映射/顺序/EB/E9及显式E8callee/停止元数据宿主重验,候选不是第二解码器或语义证明。RET总停,不猜call return/ABI;条件/间接/系统/循环/重叠/预算/映射边界保持。将实际candidatePath交现有显式Java project再次验语义,未知flags/CALL形状拒绝不变;先前CALL rel0拒绝原件和入口默认3条CALL停止误期望均保留;当前有限零位移形状见docs/CALL_REL0.md。40工具/13门/原pins不改;不得把模型的地址生成闭环称自主新VM语义或精确3.8业务通过。见docs/PATH_DISCOVERY.md。 - opaque-status分类的undefined与unmodeled可交叠,同一OF可同时属于架构未定义与解码缺失;共同阻断传播,defined/preserved互斥且不得与blocked相交、每类无重复、六flags全集完整。两份原始SHR夹具覆盖该误拒与重新ADD定义,活OF仍拒绝。136/78完整普通方程和公开18绑定证明连接67→69→75字节条件,旧17槽逐字节保持、新176=新FlagsImage/192=0、next208仅条件成立。入口knownMask0/有效未知64与ADD未知59独立;原671窗口/64→10桥接/映像保持不可省略。22查询16UNSAT6SAT、1264数值场景是局部证明与明确归纳,不是未切割整链/CPU/原生/精确3.8/业务通过;早期unknown保留。见docs/CONTEXT_WRITE_JOIN.md及prove/verify_context_write_join.py。 - sequence/transition-chain可另显式template_mode=opaque-status,独立ig5-pcode-opaque-status-transition-chain-v1,仍逐模板闭合CPU flags;跨段仅传普通GPR/完整内存中的保存标志映像。模板descriptor不含全局valueNode,layers[].flagImages逐应用绑定实际PUSHFQ STORE.value并计根;每次应用新鲜64位未知、已知位覆盖及有效未知位保留,AF仍未知。只共享字面常量,状态位纯计算也不能复用前层非恒定节点ID;规范覆盖节点带statusOverlayStep且不经全局常量折叠。原raw/STORE索引、互补出口和18个精确状态绑定不删,预算不扩。10查询6UNSAT4SAT是局部136/两层全状态与明确绑定归纳,非单项未切割整链证明;2560普通状态数值场景不是CPU或业务覆盖,该两层证书本身未证入口字节接点;后续67→69→75条件归纳见docs/CONTEXT_WRITE_JOIN.md。默认strict/opaque-effects/flat/循环规则保持。见docs/OPAQUE_STATUS_COMPOSITION.md。 - project预览的reportSchema/实际节点与引用及STORE数/partial-unverified和false范围标志须排在可变长度opaque/解码元数据之前,保证前512字符可读;DSH可裁剪响应中段,不能由旧报告猜测缺失字段。实际模型首次报告遗漏prefix计数并超3500B的失败和两次原始write内容保留;修复通过长元数据回归、真实Java及冷重载后模型重验,不覆盖原失败冒充首次通过。 - project可另显式选择opaque-status,独立ig5-pcode-opaque-status-projection-v1;仅将同一路径中有来源且未越过未知/未定义/未建模屏障的状态位覆盖到PUSHFQ的新鲜64位未知映像。先检查原raw读前写依赖,再记录定义;内部BSR/BSF例外不提供活标志位。AF/初始/其他未知位不补值。ADD64实例已知CF/PF/ZF/SF/OF,mask=0x8c5,freshInputBits=64而effectiveUnknownBits/unknownBits=59;零操作数只推出已知mask部分为0x44,不能写成完整RFLAGS=0x44。宿主检查来源/规范位树/STORE与引用,非独立CPU证明。原57条raw、原STORE索引56及替代24条/索引23均保留;另有上条显式地址组合,不支持公开跨报告连接,不加预算。handler250条件研究需当前脚本/编码器/完整回执hash,66+1=67初始字节,4个旧表项字节复用不可重复计数;全16GPR/整内存/别名/有序写入、AF自由与旧模式精度负例分开保留。见docs/OPAQUE_STATUS_PROJECTION.md。 - handler137证书源回执以物理绝对路径和SHA同时绑定,允许Windows斜杠和大小写拼写差异;同内容另一文件、相对/缺失/带..的非规范路径不能替代同一回执。test_handler137_receipt_paths覆盖实际DSH曾触发的斜杠错误;原始读取器失败、模型失败报告与修复后真实模型重验分别保留。 - opcode137维护证明覆盖16指令检查路径和28指令快路各自的完整翻译,不写成“仅翻译16/28”。全部16GPR/整字节内存/先读后写/有序两写与互补出口保留;局部摘要无内存不别名假设。47上下文字节+13立即数字节+6后继字节共66前提下,以原窗口/映像保持引理和全部17槽的逐字节归纳实例化接点;整体数组2秒unknown原样保存,不能当UNSAT。137快路false恰为初始RSP在[16,264),但上一立即数处理器快路成立时它必成立;不得把上一guard为false的编码末态传给137。后继250/0x140055f66仅在明确前提下成立,原生/搬栈/业务仍未过。prove_handler137_semantics与独立verify_handler137_semantics保持固定Job/SMT预算,不暴露公开跨报告组合或扩大128不同地址限制。 - project/compose公开预览统一返回dagReferences,必须来自宿主核对的完整DAG计数,不从上次报告或节点数猜测。project重算有序边、初态/末态/内存/存储/控制以及guarded分支/出口和opaque输入的根引用,核对原8192引用/2048节点/128深度;错误在报告保存前拒绝。compose沿用全部状态绑定来源和完整层根计数。该值仅是结构元数据,不是语义/CPU/业务证明。上下文17槽研究固定47初始字节与分离前提,保留S-72后写零与自由flag映像,以局部UNSAT和明确字节内存归纳证明,不能用不同节点ID当地址不相交或称单项整体SMT证明。 - 入口链条件域研究只读取匹配的封存报告/自产目标,不新增公开证明路线。SMT编码先检查整个DAG,包括被cut遮住的定义;所有state_binding仍有完整来源等式。LOAD自由化仅用于全称地址界,派发目标/guard只能以先前UNSAT证书、显式初始字节与映像分离及全部有序内存链接推导;64→10位偏移桥接不能省略。unknown保留,原查询/Job预算不改;确认child真实exit后才有界读日志。53写/25字节事实/16续接及显式entry-plus17的55写/30字节事实/17续接共用671窗口,均为固定3.11 Demo研究。v2维护报告计数动态核对,旧范围另跑回归。立即数handler17全16GPR/整内存/guard/两出口分别证明;接点快路false恰为初始RSP在[8,264),映像分离不能代替此条件。133不同地址仍前置拒绝,无公开跨报告组合接口;新13字节事实、原生前提与业务未过不能省略。见docs/ENTRY_CHAIN_DOMAIN.md和test:chain-domain。 - ig5dash会话投影stateVersion=2,结果优先读取真实message.toolCallId,兼容旧callId;仅匹配已观察pending ID才结算,重复/上下文压缩回放结果不重复记错,并行尚有pending不能显示全部结束。版本1旧缓存须由宿主重放完整日志,不能只清徽章冒充进程退出。该投影仅表示已记录会话活动,不管理分析/调试进程、租约或审批;test_dashboard_projection、实际宿主projection服务及DSH重载后的徽章分别验证。 - sequence/transition-chain可另显式template_mode=opaque-effects,独立ig5-pcode-opaque-transition-chain-v1 schema;默认strict/flat/constant-loop不变。复用原完整字节与固定raw指纹的PUSHFQ/RDTSC/规范16位BSWAP模型,不新增一般硬件/flags权限;每次应用每条活未知效果生成独立step/instruction节点,模板缓存不得共享未知值,死未知效果仍保留描述与全raw计数。原STORE索引/替代索引均保留,逐层guard/写后内存/互补出口完整;模板和全局优化共享原4096访问计数,不扩大任何原预算。宿主逐应用重验原效果、鲜明身份/类型/范围及全部计数,公开representationValidation仅表示宿主结构/来源核验,不是CPU/SMT/可达性/业务证书。实际入口+16段和重复入口、strict拒绝及内存超限均分层验收;重复入口守卫false不能当原生可达。见docs/OPAQUE_COMPOSITION.md及test:opaque-chain。 - compose显式representation=transition-chain仅sequence,独立ig5-pcode-transition-chain-v1 schema。每段all16GPR/完整内存/guard的18个state_binding必须精确等于先前source,不是自由值;来源等式和完整层状态根均计8192引用,全部绑定计2048节点。段内depth128和expandedDependencyDepth分别报告,原flat拒绝不变;64段/128不同地址/1024逻辑指令及访问字节/4MiB/两槽/50秒/2GiB不改。宿主核对层新鲜性、完整输入、来源类型/顺序、不越过边界、STORE进入guard和完整写后内存、互补出口及全部计数。flags/opaque/未知别名不放宽,constant-loop仍flat;源码/真实解码/安装/模型分层验收,不升级可达性或保护业务。见docs/TRANSITION_CHAIN.md及test:transition-chain。 - project/compose失败诊断保留Java首异常及嵌套原因;已验证自有job输出最多64KiB failure receipt,固定九文件/每日志4MiB,cleanup缺确认不读活日志。宿主重验job/nonce/target/pins/错误及文件摘要后保存failed-unverified报告并在错误文本附路径/SHA;不把失败或receipt当作成功、清理ACK或root退出,不改两槽/50秒/2GiB预算。源码/真实Java/安装/配置模型验收分别记录,见docs/JAVA_PROJECTION.md和test:analysis-failure。 - project/compose 显式 projection_decoder=java 使用独立 pin 的自有 Java 包装器及原固定上游 JVM/JAR/SLA,默认 native 不静默切换,其他level拒绝。614上游文件分块散列并持续持有拒绝写入/删除句柄;精确语言/SLA/pspec和输入/输出/原文件字节再次核验。Java解码和Python状态计算顺序运行,各自创建时Job单进程/2GiB,共享原50秒截止时间/两槽;任一子阶段退出或nonce ACK缺确认不得释放。包装器位于adapters/ghidra/projection-java随源码发行,不得命名为java目录以免遮蔽JPype包;不改原runtime/distribution pins、供体或安全设置。processStages与javaDecoder元数据必须核验,原flags/BSR/BSF/opaque/别名及预算不放宽。源码/实际原生分析/安装/DSH模型证据分层,完整保护业务不因解码接口增加。见docs/JAVA_PROJECTION.md。 - 可选 VMCI guest 调试复用 ig5_dbg 及原13公共审批门,每次显式 backend=x64dbg/guest_profile/guest_binding_sha256,ig5_profile guest_debug 只检查文件。目标由预置 SHA 目录选择,不接收远程路径/上传/shell。guestCID+目标SHA的持久占用在原生RPC前arm;宿主/桥接死亡、stop/no-task、cleanedUp普通错误均不能释放。仅原始服务/会话/目标的HMAC核验终止回执且所有已观察root实际exit/Jobclosed才complete,断线走审批op=recover;缺件unknown保留,旧nonce不能影响新占用。完整close等待对端close_ack再断流,断线不当ACK。新私有包和ISO含独立实验配对密钥不得公开,HMAC非加密/进程认证,原运行时pins不改。新回归、自产原生、安装和真实DSH模型验收分层,保护业务通过数不因客体链路增加。详见docs/GUEST_DEBUG.md。 - 显式 `projection_mode=opaque-effects` 使用独立 `ig5-pcode-opaque-projection-v1` 表示,只对完整字节/固定原始解码同时匹配的 PUSHFQ、RDTSC、规范16位BSWAP生成未知效果。PUSHFQ保留RSP-8与任意64位栈写,RDTSC新64位值分给EDX:EAX且两GPR高32清零,未定义BSWAP放宽整个目的GPR;不代入观察值、不宣称精确指令/CPU/业务。原raw全额计预算,原STORE索引与内部替代索引分开,全部写入/别名和4096访问额度保留。公开不能提供未知值或伪操作;strict/guarded-path/compose和活初始/未定义flags、一般内部控制的拒绝不变。见docs/OPAQUE_PROJECTION.md;VM状态、初始化/分发、ISA和业务证据见docs/VM_MODEL_RESEARCH.md,结构计数与报告缺失检查不得冒充完整业务。 - project 的 flags 分类须绑定同一不可变指令字节与真实解码,不接受用户提供的语义声明。活依赖不得跨越架构未定义、固定 SLEIGH 未建模或未知分类的 flags;机器指令内部的有效 p-code 依赖也须检查,包括最终 STORE。MUL/IMUL、AF 缺失及移位/旋转的计数边界分别保留;后继确实重新定义或不观察这些 flags 时可保留原数据流。有限分类与数值回归不构成完整架构证明,禁止为通过而注入初始 flags 或删去原路径指令。 - `ig5_ir level=project` 为固定原始文件路径的状态 DAG,不是等价证明。最多128条明确首选地址,末控制保留两后继/间接表达式,全部写入按顺序保留,自由GPR及一致字节内存不替换为观察值或文件常量。默认strict拒绝中途条件/间接控制,显式guarded-path条件边规则如下。重复地址/未知副作用及活初始flags拒绝;内部p-code控制仅允许下述严格BSR/BSF例外。与lift共用2请求/60秒,固定分析child在创建时绑定单进程2GiB/50秒Job,5秒清理、同nonce ACK与root真实exit均确认才释放。解码和DAG在child内,报告4MiB,2048节点/8192引用/128深度;不执行目标、不写DB,业务和整程序通过均false。详见 docs/STATE_PROJECTION.md,纯语义/宿主与真实解码/DSH验收分开。 - projection_composition纯核心由公开`ig5_ir level=compose`地址计划包装,复用lift/project两槽、固定协议根及同一创建时Job/取消/ACK+真实exit规则。根与计算child分别验证sequence或constant-loop计划,原文件/解码器锁定绑定后最多解码128不同地址,显式出现最多1024;不接收raw p-code、摘要/证书/次数/观察状态。各模板strict投影全部16GPR,自行闭合flags,只衔接GPR和写后内存,不跨模板删除活scratch。重复应用完整计逻辑指令/p-code/读写,STORE与出口保留自身guard;自动重复仅用自由初态DAG的确定常量条件,未知或未退出拒绝。64应用/1024逻辑指令/65536逻辑操作/1024访问字节及65536各项推导尝试累计与旧project128指令/256字节分开。宿主核对原解码/模板、展开计数与完整DAG根/深度;4MiB含最终格式化。公开独立schema、纯核心、部署和DSH模型验收不得混用,不升级为架构/可达性/业务通过。详见docs/STATE_COMPOSITION.md及docs/INTERNAL_COMPOSITION.md。 - project/compose近直接CALL仅接受原字节无前缀E8 rel32与完整固定3操作RSP-8/STORE下一首选地址/CALL实际目标的精确匹配;缺失/额外/错误压栈、前缀/间接/远调用仍拒绝。下一地址只能是callee入口,不能用CALL fallthrough冒充callee摘要。终点kind=direct并保留transfer=call、returnAddress十六进制字符串;path.directCall为内部生成的字节/语义摘要。STORE和原raw工作全保留,普通状态flags保持但活初始flags仍拒绝;无ABI/CET/OS/故障/可达性/业务证明,13审批门不变。新回归test_pcode_calls与test_projection_calls_host、真实test_projection_call_runtime及DSH分层报告。 - compose写后读只对同一不透明uint64主体加模常量偏移或绝对常量推导精确别名;最新STORE逐字节优先,部分重叠拼接,回绕保留。主体不同为未知别名,禁止跳过未知写入读旧值;4096 STORE访问优化预算耗尽原LOAD回退,不提升raw/DAG/进程限额。PUSH/RET可转发同址目标但全部STORE、弹栈RSP、守卫及补出口仍保留,原LOAD/STORE全额计数;memoryNormalization为诊断而非求解证书。新测试test_composition_memory与真实原生/局部SMT证据分层,不升级架构/可达性/业务。 - compose长计划使用与内联参数互斥的composition_plan_ref={path,sha256},最多64KiB稳定普通非链接UTF-8 JSON,原字节hash核对后仍执行同一地址计划验证;仅规范化计划交给原固定进程,未知字段/观察/证书/次数仍拒绝。原文件SHA blob与规范化摘要、精确模板/地址数保存到compositionInput,子进程拒绝也返回验证摘要/计数;原路径之后变化不改快照。新文件引用验收不能追认旧内联漏项通过。busy/取消在文件读取前,所有其他level拒绝此参数,40工具和13审批门不变。 - 组合计划显式indirect_mode=guarded-target仅以真实目标表达式==下一确切uint64入口作为续接guard,保留不等侧的原动态目标和控制执行后全部16GPR/内存(RET含已弹栈RSP);不代入候选目标、不删除另侧或改变flags闭合。每次STORE沿用当时进入guard,所有新引用计原预算;常量不匹配保留false路径而非声称到达。纯核心独立representationSchema由公开compose包装,默认模式仍拒绝中途间接/RETURN;无自动目标穷举或可达性/业务证明,旧project不接收组合参数。 - 显式projection_mode=guarded-path使用独立ig5-pcode-guarded-projection-v1 schema。下一精确EA必须只匹配中途CBRANCH的一侧,同目标两侧、中途间接/RETURN、重复EA继续拒绝;一个planner/DAG连续保留flags与写后内存。每个分叉时点把所选GPR和本条件加入反向活集,不能仅用最终活集省略在side exit仍有用的BSR等效果。每条STORE绑定进入指令的guard,不能用最终pathGuard抹去此前写入;sideExits保存各自guard下当时的所选GPR/内存及未分析续程。终点registers/currentMemory/control仅在pathGuard非零时有效,flags不导出为可续接出口状态。全部guard、分叉、出口state引用均计入原DAG预算;预览最多8个side exit,完整数组留报告。没有可达性、可满足性或业务覆盖证明,默认strict报告保持原结构。 - BSR/BSF内部控制例外只接受不可变字节绑定的16/32/64位寄存器源完整固定SLEIGH结构:BSR全部10/11条raw操作、三边和83/164/323步上界;BSF独立匹配全部11/12条、三边和99/196/387步上界,包含最低位掩码及递增计数,不套用TZCNT或BSR结构。可选66、随后单REX,冗余66+REX.W及额外/重复/错序前缀拒绝。在同次planner中从全部STORE地址/值、末控制、所选GPR及每个中途side exit反向计算依赖。目的写入frame与六个状态flags必须全部已死,32位目的包含显式清高位的完整64位;活ZF也拒绝。内存源、活输出、其他CFG与未知前缀不套用例外。内部生成的internalElisions绑定原字节、地址、规范化raw摘要及真实出口live集合,不接受用户证书,原raw及预算计数不减少。有限结构的终止论证/数值回归不是完整架构或SMT证明。 - BSWAP在切片前按同一不可变字节检查编码:只支持可选66、随后可选一个紧邻opcode的REX、0F C8–CF。66且无有效REX.W的16位形式架构结果未定义,整条拒绝,即使目的寄存器不在末投影中;不把SLEIGH确定的32位公式当架构结果。保留正常32/64位及66+有效REX.W;重复、错序或额外前缀保守拒绝,不能将更早但已失效的REX.W当有效。未支持形式不一定是CPU非法编码;此规则不是通用未定义GPR模型。 - project的INT_REM只允许等宽无符号操作数和非零立即除数,零/符号除数在切片前拒绝,原raw与预算计数保留;不根据观察值猜除数,不放宽所属机器指令的flags屏障。BSF实际失败路径同时包含该计数余数操作,不能删原指令绕过。 - 模型解释投影须从control.condition引用追到最终Boolean表达式,不能以中间CF/ ZF的OR替代后续BOOL_NEGATE;完整reportSha256来自原公开响应。区分架构未定义与解码器遗漏/错误公式,并保留具体编码和计数范围。首次实际工具交付与后来上下文压缩分别记录,不能将压缩后不可见描述成首次读取截断。分页每次最多200行并记录范围;明确要求完整读取时须读完,不以摘要冒充完整读取;仅在任务允许时保存简短进度便于恢复上下文。 - 完整有限地址读取须独立数值域穷尽认证、当前映射值全覆盖、地址/值均为不可变参数常量整数DAG且无归一化/未知写入;PHI/LOAD/CALL/freeze/poison、特殊承诺、缺件与超限保留LOAD回退,不绕过411。277项具名检查匹配251 custom+2 KnownBits+24 oracle;两份64轮诊断在原512内385尝试块返回RCX+96,11诊断完整返回SSA的66查询与局部内存9查询不外推内存副作用、全优化或保护业务。Ultra仍976/139及211/411/201。 - 未跟踪标量/批量写入触发单调内存失效与诊断411;未来LOAD、缓存及恢复快照不得使用旧buffer/文件常量,后续GEPLoadPass也禁折叠。精确同块完整存储仍可独立转发。普通x64数据align1;伪内存改写后重新推导函数memory effects。266个名称逐项匹配240 custom+2 KnownBits+24 oracle;两份RW别名夹具完整返回/数据内存SSA的14查询仅固定初始单元条件,不能外推全优化/OS/代码一致性。Ultra当前976指令/139尝试块、211/411/201及opaque未知续程,exit0不计恢复,旧2451/503为前版证据。 - switch边条件只从选择臂排除关系推导;未知臂可命中同目标时拒绝选择。raw地址别名共用块/队列,条件取交集,父/默认假设恢复。跨指令匹配仅纯函数参数/常量整数Boolean DAG,拒绝PHI/LOAD/CALL/freeze/poison/特殊承诺;128访问16层、最多64匹配事实,原预算不变。261个名称须逐项匹配源码235个custom+2 KnownBits+24 oracle,不以碎片日志凑数。两份16轮夹具147块完成且完整返回SSA证明通过,不外推Ultra(仍2451/503)。 - 异常展开表的函数入口标记不证明分支输入状态等价;Unflatten分支不得仅凭outline复用旧块状态,入口/调用的兼容行为与独立循环合流分开。新增回归后255项微测试;自产三目标循环旧47与应32反例已证明,修复保留未知预算续程,不能宣传已恢复该结果或Ultra业务。 - Mergen单/双目标快速路径须独立保守数值域完整且全部目标可映射;部分候选保留raw目标比较和opaque未知默认转移/结果(诊断211)。预算续程用opaque __ig5_unlifted_block_*,参数是分析块标识而非原生VA;不得以ret undef/unreachable抹去缺口或当作业务返回。253项微测试、自产三控制夹具与完整SSA证明仅局部范围,Ultra在原512块预算仍503,业务未过;不以提高预算改变验收。 - `ig5_ir level=lift` 复用40工具中的既有入口,固定本地 Mergen 独立运行时,目标只读不执行/不改数据库。显式preferred ea、low12 initial_flags、最多16个精确内联地址与4096块;始终partial/unverified,不因IR或正常退出计业务通过。新运行时与原vendor/distribution pins分离。Windows Job在创建时原子绑定,仅一个分析子进程/2GiB/50秒计算与5秒清理,宿主最多2请求/60秒;只有同nonce cleanup ACK与root真实exit均确认才释放,异常缺确认保留owner。完整诊断与IR存SHA报告,参数与原始文件/录制状态边界见docs/LIFTER.md。 - 可选 ScyllaHide 用户态侧进程仅在已审批的自有 x64 native start 暂停后安装,固定源码/配置/二进制 pins;默认 none,记录环境改动与逐 hook 未验证。无任意 PID/路径/profile,不调权限/驱动/系统安全。对应源码和重建见 docs/SCYLLAHIDE.md。exception_disposition=handled 仅已观察当前 run/epoch/stop 异常的 cont;私有 headless stdin 仅发送固定 serun,真实回调确认,不接受命令字符串、不改旧桥资产/清单,不自动吞保护器异常。 - 录制器只有在所有解码存储位置的执行前/后字节相同、GPR/RIP及非TF flags不变且预测RIP不同,才标记存储指令转移未观察;每指令最多32处/256字节观察,不记录伪指令,不推断隐藏执行。离线守卫保持全部符号条件,在完整合取上证明候选等价,不能用具体观察值替代约束,128次SMT预算不变。Enigma两条路径返回与输出证明仅局部通过,内部分支/符号地址覆盖未证明时业务通过数仍0。 - 轨迹内存按字节区分初始观察/已写/未知。窄写后的宽读只能补未知字节,不覆盖已知值或符号;首次观察的零也必须标记已知。输入相关或真实已知内存冲突继续拒绝。Enigma八轮66614条已录制返回,新的通用AST/精确SMT DAG优化可在原预算内证明轨迹输出;守卫/全输入域覆盖未证明、独立全宽源码查询超时,仍不计业务通过。原初始内存与期限失败保留。 - 互补常量移位OR仅在同宽/同源/计数互补的精确匹配下改为旋转,支持两级合并;任意全宽新变量上的局部SMT模板UNSAT才可实例化,输出保留真实原主体。综合前后共享512节点预算,投影失败回到原AST综合。求解DAG的每个新变量均保留完整BV等式/Boolean等价定义,原变量自由;2048节点/8192引用与遍历/128深度限额,默认拒绝不能当UNSAT。仅状态协调可回退完整原查询,2秒/512MiB/128查询/50软60硬期限不变。回退仍固定所有非未知变量,不能覆盖输入。引用展开与同宽ADD扁平化须完整定义/同余和投影证明;展示256节点/32层不增加。 - 源码只在 `C:\Users\Administrator\Desktop\无限五代\dsh-infinite-gen-5` 修改。 - 运行副本为 `C:\Users\Administrator\.dsh\plugins\dsh-infinite-gen-5`,不得直接改运行副本。 - 每次调整后依次执行全部项目 JavaScript 语法检查、全部项目 Python 编译检查、回归烟测、Robocopy 镜像同步、重载宿主、本次启动日志检查。使用与宿主一致的 Python;完整命令与 npm 回归范围见 README。 - 使用 PowerShell;后台启动宿主或助手进程时指定隐藏窗口。Robocopy `/MIR` 前核实源码与目的目录的绝对路径,退出码 0–7 可接受。 - 对外界面、工具说明、诊断响应及错误消息商业引擎统一使用 Reverse 称谓,开源来源明确标 Ghidra/x64dbg,不泄露商业引擎版本或带版本的安装路径。内部配置/API 标识保留兼容。 - Function Calling Schema 的必填项必须写在父级 `required: [...]` 数组,不能在 property 中写 `required: true`。 - DSH 兼容声明为可选 peer `@deepseek-ai/dsh: >=0.2.0-rc.1 <0.3.0-0`,实际宿主使用 `includePrerelease: true`;0.3 预发布版也必须排除,不得以 `<0.3.0` 误放行。本轮实际验证 `@deepseek-ai/dsh-app-boot` 与桌面包 `0.2.1-alpha.1`,不能以用户口头“0.2.1 re1”代替安装包版本,不能把 semver 接受范围说成所有版本均已实测。证据与重验入口见 [DSH_COMPATIBILITY](docs/DSH_COMPATIBILITY.md)。 - 公开工具通过 `source/json_output.js` 输出严格 JSON:仅省略可选对象字段的 undefined,null 保留;必须拒绝负零、非有限数字、BigInt、循环引用、数组空位/undefined、非普通对象及 accessor,不静默丢失含义。64 位地址保持十六进制字符串;扫描熵生产者将数学零转为正 0.0,无观测数据为 None/null,不能用输出序列化掩盖算法问题。 - 完整目录为 40 工具:25 只读、13 审批、2 生命周期/配置。`ig5_crypto` / `ig5_protocol` 是仅数据分析工具,不执行样本、不修改原始输入或引擎数据库;分析产物独立保存。13 个审批工具必须经过 `installApprovalGate`,包含 `ig5_switch_repair`、`ig5_emulate`、`ig5_sync` 与 `ig5_capture_control`;直接调用宿主公共 approval.request,携带真实 agent/toolName/callId/signal,仅 allowed-once 才 next,保留下游 deny;缺 agent/服务、rejected/unavailable/未知/throw 默认 deny,cancelled/abort 为 cancel。不得依赖 ask 经宿主折算为 allow,不缓存批准,不通过脚本、HTTP 或直接 Worker RPC 给产品用户建立写入旁路。 - 默认 Core 8 为 `doctor/open/status/funcs/strings/decompile/close/profile`(均带 `ig5_` 前缀)。需要高级能力时先调用 `ig5_profile toolset=full`;`toolset=core` 恢复 8 个入口,不传参数只查询。支持 scoped API 时全局只注册 Core8,其余工具经 `agent.ctx` 注册到当前 agent;profile 和命令必须传真实执行 agent,不按字符串 id 猜作用域,缺少 agent context 时拒绝变更。既有/新建 agent 按 `config.toolset` 初始化,agent/disposed 与插件卸载清理 exact disposers,同 id 替换不能串扰。旧宿主保留 instance 模式并明确返回 `toolsetScope=plugin-instance`。两种切换都不持久化、不授予样本执行或写权限;回归覆盖两个真实 scope 的 schemas/get/execute 隔离、失败回滚及卸载重载。 - 八个原生技能(原五个加 `ig5-crypto` / `ig5-protocol` / `ig5-reverse-agent`)与 `/ig5` commands 由 `workflow.js` 注册并在卸载时清理;修改注册代码必须验证 Core/Full 切换、工具/技能/命令注册失败回滚与生命周期。持续逆向使用宿主原生 Goal 工具和续轮驱动,不以保存 workspace 笔记冒充自动继续;profile.autonomy 只读检查真实执行 agent 的 Goal,不创建任务、不调模型、不声称此查询已验证驱动。 - 表达式常量旋转/互补移位和同宽ADD/MUL/AND/OR/XOR结合交换规范化须任意全宽主体的局部模板SMT UNSAT与精确主体实例化;最多64项、共享512节点/32层/64尝试/128查询及原期限。已规范化的子项不在交换/扁平化后重复遍历,未知或新主体不代入观察值。Enigma八轮输出的全uint64源码等价已通过(独立2409组+直接/DAG UNSAT),但640守卫中找到输入反例,记录路径不覆盖全输入,业务通过仍0;不得删除守卫换通过。 - `guardDomainDiagnostic` 仅在守卫投影失败时诊断;DAG拒绝才分组,每次保留全部固定环境约束,最多16尝试并共享原求解/请求预算。SAT只证明记录合取非全域,全部UNSAT须无缺口无重叠覆盖所有条件。诊断不删除守卫、不升级coverage、不执行反例;未知/预算/超时必须保留。完整报告存证,预览保留witness和数组计数。 - `trace_image_only=true` 仅显式离线轨迹模式,须trace_target_sha256、匹配录制绝对路径标签及每条路径的不可变映像;不读/恢复原PE,不隐式回退,不放宽其他引擎/执行入口。worker重验blob/稀疏映射、AMD64 PE32+头及模块大小;空洞拒绝。targetVerification标录制身份,原文件比较计数/真假及preferredImageBase为null。RVA零坐标仅内部映射,不冒充PE首选基址;记录头另标观察。前缀输出证明不等于函数返回,预算/13门保持。 - 候选守卫可复用完整原约束XOR候选查询的真实SAT反例来拒绝其他候选,不能据此接受等价;16 witness/42候选、256节点32层常量候选求值、缺模型输入或环境时不复用。原AST/符号具体值不修改,接受仍完整UNSAT;guardCandidateSearch保存源查询、witness与拒绝引用,预览截断保留计数。不能把候选SAT、输出证明与覆盖证明混为一谈。 - FC预览可将重复大型证明链改为明确标记的proof摘要,fullProofRef须绑定同一完整报告UUID/SHA和JSON pointer,保留真实status/method/scope;原完整证明与表达式不改。摘要不能冒称完整证书,仍超核心预算显式previewBudgetExceeded。实际DSH检查须确认未被宿主spill截断。 - 工作台 `/ig5-data` 仅允许显式只读类型,结构体仅允许 `list/get`;结构体编辑只生成可编辑 composer 草稿,插入后仍由用户发送并通过宿主审批。不得自动 submit 或覆盖现有草稿;无原生接口时保留复制入口。 - `ig5_struct` 参数名是 `action`,调试参数名是 `op`。 - 类型系统使用 `ida_typeinf.tinfo_t`、`udt_type_data_t`;Local Types 数量使用 `get_ordinal_limit/get_ordinal_count`;空地址使用 `ida_idaapi.BADADDR`;导入回调参数为 `(ea, name, ordinal)`。 - 回滚依赖项目自建 `_op_journal`,不能假设无头引擎自动记录 Undo。switch repair 默认 preview,`apply=true` 需审批且不在该 Undo 范围内,必须明确说明。 - `expected` 是可选参数;提供时必须前置比较并在不匹配时拒绝,补丁工作流应优先显式提供。必须拒绝未加载区域;导出应读取当前数据库状态、尊重已执行 Undo,不能盲目重放历史审批日志。 - CFG SVG、焦点切片、结构体草稿与审计分页已完成 renderer 和真实浏览器 fixture 验证。异步读取须隔离函数/目标/引擎/样本身份/修订切换的旧响应;审计使用真实 `args/detail/ts/isError` 字段并按目标与引擎过滤(sync 归属目的引擎);文本不得作为 HTML 注入。 - 开发回归使用样本副本并断言返回值,不将“调用未抛异常”视为功能通过。默认样本为上级 `_research\fixtures\notepad.exe` 文件。 - 验收须区分实际安装包 SDK/registry、可控服务 gate、VM renderer、真实浏览器 HTTP fixture、真实原生 worker/目标执行和下载附件校验。`test_host_sdk.mjs` 使用实际 app.asar 服务但不启动 GUI/原生引擎;`test_client.mjs` 是 renderer fixture,`preview_client.mjs` 是使用 DSH React 的模拟数据浏览器。注册 40 工具、load 成功、fake/mock 通过或旧报告均不能代替本轮逐功能原生断言;记录受测源码/安装副本、宿主实际版本、支持/不支持项及独立证据。 - 调试器 `load` 成功不代表运行态通过;成功响应必须依据实际事件与进程状态。真实调试烟测是显式运行的 `scripts/test_debug_runtime.mjs`。 - 原生 win32 已在 notepad 副本通过 start→ASLR 断点→寄存器读写→step→注释回写/Undo→故意访问违规的结构化异常上下文→恢复→stop。Bochs 仍仅 load/bpt 成功,start 曾返回 `rc=0/no-task`,不能把原生后端证据外推为 Bochs 运行态通过;外部模拟器路径未确认不是已证实的唯一根因。 - 微码原生 filter 管线、多级真实 IR、临时 IR optimize 与受限 `xor-self/sub-self` optinsn 规则已验证。隔离构造真实临时 MBA 时两种规则各命中 1 次,`mov #0`/源清空/目的保留及原生 optimize、verify、finally remove 通过,IDB 字节不变;自然夹具自定义规则仍 `rule_hits=0`,不得声称自然函数发生规则改写。未实现通用去平坦化。 - MSVC64 继承及 Itanium class/SI/VMI 已验证生成 PE 夹具中的真实字节布局,不等于原生 Linux ELF 装载验证。调用解析要求显式 `table+offset`,不自动推导寄存器来源。 - `ig5_bindiff` 使用多特征启发式、变更块、歧义和截断信息;`[rcx+4]`→`[rcx+8]` 已在生成 PE 夹具中验证 matched+changed/变更块,不得把评分当成语义等价证明或自动漏洞确认。 - 仿真使用插件内 vendored Unicorn 2.1.4 和公共 `MemoryImage` / `cpu_emulator`,支持 x86/x64/ARM64 CPU 与明确 ABI,复制内存最多 64 MiB,无 OS/import/TLS 仿真。已知引擎 R/W/X 以 4096-byte 页设置,字节区间共享页时取权限并集;未知权限才兼容 RWX 并返回 unknownPermissionRegions/Pages、pagePermissionMerges。合成栈/新增缓冲为 RW,注入数据不提升现有引擎页权限;保护与未映射 fault 分开,syscall/sysenter/interrupt 明确中止,超时、指令上限与 HLT 分开。不能声称完整 OS 页保护模拟。显式商业 Reverse provider 仅提供 x86/x64;ARM64 已在 Ghidra + Windows Unicorn 验证,不代表手机原生移植。依赖锁定见 `worker/requirements-emulation.txt`;保留原始 RECORD、裁剪记录与完整许可证,静态 unicorn.lib 裁剪不改实际 DLL。 - 日志与产物位于 `C:\Users\Administrator\.dsh\ig5\artifacts`;检查本次启动新增的 `ig5-diag.log` 记录。 - v1.0.0 统一三引擎路由但不统一可写数据库。默认 `engine=reverse`、`reverseProvider=bundled` 使用五代内置车道,`provider=ghidra` 明确数据库服务来源;显式 Ghidra 使用独立车道。`ig5_ir` 读取真实 raw/high p-code,`ig5_microcode` 返回实际 stage 与兼容 maturity 映射,不冒称专属微码等价;脚本入口支持真实 Ghidra API 和明确兼容子集,未知 API 拒绝。`reverse:false` 仅关闭商业探测;无商业安装也须保持内置核心和40入口可用。商业适配器须显式 `reverseProvider=commercial`。 - `source/project_store.js` 管理 SHA-256 artifact、可移动路径、engine attachment 与持久 dbRevision;不同 session 不暗中共享活跃 DB。成功变更后递增修订并清缓存,`expected_revision` 在执行队列内前置核验。稳定数据库复用保持历史修订,崩溃恢复不可猜测释放活跃 attachment。 - `source/attachment_lease.js` 记录宿主及 worker 的 PID、OS 创建身份、nonce 与机器归属;仅两原所有者均确认停止时恢复,在元数据锁内重验完整 owner 和同 nonce。任一存活、未知、legacy 或 foreign-host 保持 fail-closed。同 nonce 恢复幂等,延迟旧 owner 恢复不得关闭替代 attachment。异步 kill 请求和断管不证明退出;只有实际退出或数据库 close 确认后释放正常会话租约。 - `source/worker_transport.js` 的 UTF-8 接收硬上限为单行 16 MiB、累计未解析缓冲 32 MiB,处理器配置前 backlog 最多 256 条/8 MiB。超限一次结算 ready/RPC,清缓冲并终止自身 worker;宿主不能重复 tree kill 或先释放仍存活 worker 的 attachment。真实子进程预算回归不得误终止 companion。 - 工程文件锁按 PID、OS 创建身份及 nonce 核验,完整 claim 原子发布;活锁、权限不明及未知 legacy 锁保持 fail-closed,不按年龄清理。释放与恢复使用同 nonce 非空 tombstone 防延迟恢复误移新锁,目录中仅保留极小 owner 元数据,当前不自动删除;仅可确认宿主及相关 worker 全部停止后维护清理。未知 `projects.lock` 必须核实无所有者再人工移走。锁竞争测试使用临时目录和真实子进程,不改用户工程。 - 数据库排他与修订按物理文件身份识别硬链接及目录别名,兼容未创建路径;多条历史记录冲突必须明确拒绝,不能猜测合并修订。file/RVA 转换同时核对来源和目的唯一映射;保留十六进制/BigInt,不用 Number 中转 64 位地址。 - `source/address_ref.js` 使用十六进制字符串/BigInt 保持 64 位地址精度;VA/RVA/file/runtime/stack/register 等空间不得混用。转换要求明确 imagebase/section/已加载模块映射,BSS/overlay 不假造文件偏移。动态地址核对 runId/moduleLoadEpoch/stopSeq,旧暂停上下文不能继续执行。 - `ig5_sync` 仅在同 hash 的两个静态引擎数据库间显式复制所选 RVA 名称、行尾注释、有限字节。preview 和 apply 都经工具级审批;apply 必须核验 digest、hash、attachments、revisions 与前后值,并锁定两边队列;部分失败返回 applied/remaining、atomic=false,已尝试计划不可重放。不得宣传自动全量同步、类型同步或跨引擎原子 Undo。 - x64dbg 使用自建 ig5-native SDK+NamedPipe bridge,不依赖 automate/ZeroMQ。headless 不等于不执行样本;load 不执行,start/continue/trace 必须有该目标运行授权及审批。公开工具链已验证 x64 中文路径 PE 的 ASLR/RVA 断点、regs/readmem/modules、step/setreg、受限 trace、结构化 AV、控制 owner/takeover、过期 run/stop 拒绝、只读缓存 HTTP 与 stop/dispose;x64/x86 真实 headless 闭环、24 项 adapter fake、管道 DACL、取消/超时/退出清理均通过。线程、当前线程调用栈与硬件断点已接入;两架构四槽各自通过 execute→删除/替换→write watch→真实写入命中共 8 流程。TitanEngine 回调补丁保留用户在暂停回调期间替换的断点,不误删新槽;不能外推任意样本。 - 工作台静态选择器必须隔离 session key/target/engine,排除 x64dbg 调试会话。原生 openView 焦点绑定 engine/target/artifact;运行态页仅读缓存,不能借 GET 启动调试器或执行 RPC。Ghidra p-code 结果应标来源及截断。 - 运行态缓存 state 必须带 scope,并在 render 时核对 session/target/engine/artifact/attachment;目标切换立即隐藏旧快照,不能仅依赖 effect 清理或等下一次响应。 - 完整发行包内置 `runtimes/ghidra` 与 `runtimes/x64dbg`,默认 install 离线校验并带入插件,不依赖另跑 setup 或外部 `.dsh/ig5/runtimes`。manifest 相对路径保持可移动;默认按已加载插件物理目录解析,兼容 profile Junction 与 `--preserve-symlinks`,不猜测借用另一个插件版本的运行时。显式 runtime 配置覆盖仍受支持,缺失或错误明确拒绝,不静默回退。不要修改商业安装、全局 Python 或 system PATH。默认静态引擎为内置 Reverse,用户可用 `defaultEngine` / `engine` 显式覆盖;内置 Reverse/Ghidra 使用不同项目根和租约,保持既有 Ghidra database_key 不变以复用用户项目。 - 默认 Reverse 为五代随包服务,来源明确标注,不因缺商业安装显示不可用。可选商业扩展只在 `reverseProvider=commercial` 使用已有授权本机安装,不随包附商业程序或许可,不称商业内核自研;DSH 也不随包。`source/reverse_runtime.js` 仅商业分支做有界路径和文件检查;显式错误不能替换其他候选。所有车道文件检查与实际 startup 区分,内置车道实际 doctor 或 open 成功才 `startupVerified=true`,商业扩展仍需 doctor 成功;工作台显示内置就绪/启动验证或真正的缺件与失败,不伪造可用。不泄露商业版本路径。 - IG5 独立内核通过 `ig5_ir level=kernel` 使用,IG5 自有 PE/ELF 加载、CFG、局部 IR 和 RTTI,真实 C 管线由明确署名的开源 Ghidra native core 提供;不称完整商业兼容实现。`adapters/kernel/native` 是自有构建产物,不更新原有 runtimes/vendor pins;保留上游 Apache/zlib 许可、源文件 hash 和 DLL proof。原生请求必须位于隔离自有 worker,最多两个、硬时限<=60秒,取消/协议失败幂等停止,确认退出前保留owner。公开地址精确字符串;partial包含截断和未决;禁止目标执行/数据库写入,不绕过既有审批。手机宿主未验证,不由ARM64目标推断移动端可用。 - 源码 ZIP 新安装器仅补齐 `runtimes/` 与 `third_party/sources/`,保留用户下载的当前代码。`scripts/distribution.json` 固定既有公开 ZIP 作为不变资产供体,禁止将它指向包含自身的新发行 ZIP 制造自引用哈希。`-DistributionArchive` 固定大小/SHA-256 验证原 ZIP、复制至安全暂存再提取/全量复验,ZIP 必须位于源码目录之外;它与 `-DistributionRoot` 互斥。完整包 `-RepairAssets` 必须先验证完整外层清单中的核心代码,核心改动/无外层清单拒绝,不能与 `-RuntimeSource` 合用;资产恢复仍全量核验,不改上游清单。旧安装器无新参数,旧包用户重新下载最新源码并离线复用固定原 ZIP,不能拷新脚本进旧 SHA 封存包。SHA 错误应显示相对路径、预期/实际 hash/大小并保持现有 DSH 安装不变;其它用户文件变化原因未确认,不归咎某种解压器。 - `third_party/sources/{ghidra-12.1.4,ghidra-master,x64dbg-development,x64dbg-runtime}` 保留固定来源、逐文件 hash 与上游许可。随包 Ghidra 为固定 `Ghidra_12.1.4_build` 完整 Java/PyGhidra/native 的本地 DEV 构建,目录 PUBLIC 仅兼容别名;12.3 DEV 桌面原档独立保留。x64dbg 固定源码及 `third_party/x64dbg-build` 补丁已重建 x86/x64 headless/dbg/bridge/loaddll/TitanEngine,GUI 与 proof 列明链接依赖仍预编译。development 原修订未知,不冒称补充模块是原 gitlinks。源码存在不等于已暴露全部功能或随用户包提供全部离线构建工具链;保留所有上游许可,项目 NC 条款不覆盖第三方。 - 安装/打包不能按目录basename把源码中的真实 projects/sessions/downloads 等目录误当运行缓存删掉;第三方逐文件清单应在复制后仍匹配。远端普通安装入口是 GitHub Release 的完整 Windows ZIP;GitHub 自动生成的 Source code ZIP/tar.gz 与 git clone 为维护源码,不包含随包运行时和完整上游源码资产。发布页链接不证明附件已上传,只有核验 Release、附件名称/大小与下载校验后才能宣称发布成功;不得将只补 manifest 的 Git 源码宣传为可安装完整包。third_party/x64dbg-build 的维护补丁、构建锁、脚本与许可证应纳入 Git,运行缓存和上游大资产继续排除。维护者setup属于联网资产重建,普通安装无需它;用户项目与缓存默认不分发。 - Ghidra 默认 analysis_profile=interactive,仅跳过批量 Decompiler Parameter ID,函数反编译仍可用;full 显式选择。ig5_open analysis_timeout 为 1–600 秒。真实 notepad interactive 约 85 秒/853 函数、无超时、分析后 decompile 子进程数为 0,不作通用性能保证。分析预算到期须保留并传播 partial/analysis,作业、status 和工作台标明“部分分析结果”,不能把可读结果当作全分析完成。项目自有代码为 CC BY-NC-SA 4.0,第三方组件按各自许可保留通知,不受项目 NC 条款覆盖。 - 引擎提交后若修订元数据持久化失败,必须捕获并返回明确错误、回收会话,不能让 stdout 事件异常终止宿主,也不能继续使用未更新的 dbRevision;此故障路径已回归。 - 安装资产准备前冻结核心文件的 path/bytes/SHA;完整包修复沿用外层清单已认证记录,准备目录和最终 stage 必须对同一记录校验,不能在下载后重新快照。复制资产后再次核对固定两份 manifest、四份源码 inventory、bridge pins 与实际文件清单,内部自洽清单不能替代固定来源校验。 - Ghidra `partial/analysisComplete` 是全程序 profile 状态,`scopePartial/scopeComplete` 是当前范围;范围完成不能升级全程序完成或改其 profile。`committed` 表示内存事务,`saved` 表示确认原生保存;名称/注释/补丁每次保存,类型/结构体/分析为 session-only 原生 Undo,正常 close 保存,后续 save 可使原生 Undo 失效。强杀/硬超时可能丢失未保存修改;检查 recovery/unsavedChanges/durableRevision,不自动重放。 - Ghidra `partial_commit`/`recoveryRequired` 错误不可被压成普通失败或暗示回滚;保留 committed/saved/stage/journalId/revision/durableRevision 等证据。原生数据库与 intent/sidecar/审计不是跨文件原子事务。sync remaining 为未确认项,失败项也可能已提交,必须检查 failed 证据并恢复目的数据库后重新 preview,不能盲目重试。 - 数据分析与引擎执行分层:`source/crypto_analysis.js` / `protocol_analysis.js` 只接收有界 bytes/参数,不做任意文件读取、网络或代码执行;`analysis_tools.js` 四选一处理 inline/path/ref/static source,静态读取保持队列与修订检查;独立 worker jobs 的取消不得影响原生引擎。分析 artifacts 使用独立 SHA-256 blob/UUID report,不与 native artifactId 或数据库 revision 混同,不接受用户输出路径。 - `source/audit_history.js` 异步倒序游标默认每页扫描最多 4 MiB、每行最多 2 MiB;核验文件身份、快照范围与筛选,允许正常 append、检测同大小 rewrite/replace/truncate,大历史保留未知 total/partial;不声称“改写旧前缀再追加”的完整性链。`source/patch_export.js` 核验当前 artifact/hash/engine、数据库身份和当前映射,Windows target 大小写归一;排除旧样本/数据库,无法绑定的 legacy 补丁历史拒绝导出。范围最多 16,384 条/8 MiB,changes report 最多 4 MiB;独占 wx stage 后 rename,目录拒绝链接并重验身份;两个输出非原子提交,不能写穿旧 report hardlink。 - `source/history_index.js` 对 active/archived metadata 分别异步分批索引:每批最多 10,000 个目录项/16 MiB,每条最多 8 KiB,最多缓存 100,000 条,未完成明确 partial/indexing/lower bound。只读取选中页 metadata,目录替换与选中缓存摘要改写拒绝。history stats/archive/restore 保留结果 UUID、完整报告和 blob/key refs;仅移动 metadata,不删除磁盘数据,不宣称自动 GC;部分移动明确 atomic=false。 - 解密 key/IV/tag/AAD 不以原始字节写入报告或错误。recover 支持有界单字节 XOR、重复 XOR 统计/已知明文约束和 AES 候选材料检索;评分含 Latin、有效 UTF-8 CJK 和有限格式头,不保证任意中文编码、重复 XOR 二进制或完整格式有效。恢复 key 仅进入 sensitive blob,报告不预览,recipe.key_ref 必须完整且来源一致;producer 绑定的敏感 ref 禁普通 input,但 unbound/ref 和本地文件仍可直接读取,不宣称秘密 ACL。partial key 禁执行;统计分数/crib/padding 不等于独立验证。GCM final 失败不发布明文,短 tag 不当 strong;不宣传随机 AES 全空间破解或通用去混淆解密。预算覆盖候选生成和内层评分工作。 - 协议捕获保留方向、capture spans、TCP holes/conflicts、unsupported/truncated/budget;infer 提供有限整数长度、canonical unsigned LEB128 varint-prefix、TLV、固定长、LF/CRLF framing 和字段候选及独立 holdout,不把缺口/冲突当完整流或假造帧起点。TLV 不是 BER/DER 或嵌套解析;动态 varint 头之后不假造固定字段 offset。保留歧义/尾部和中性字段名,schema不自动赋语义;u64/i64 保留精度。协议数据 worker 本身不监听或主动发包,不做 IP 分片重组或传输层 checksum 验证;实时采集由 capture 模块负责,观察状态由下述 state actions 单独处理,不宣传通用业务语义恢复。PCAP/PCAPNG、多报文、误报/预算与独立 holdout 需验收;Node 复用不等于手机原生移植。 - Windows Ghidra worker 在首次导入 PyGhidra/JPype 前必须运行 native_bootstrap,校验随包 JDK 的物理边界与 x64 CRT,持有进程局部 DLL 目录句柄并验证绝对加载路径;禁止依赖维护机 System32 的 VC Runtime、修改全局 PATH 或篡改资产清单。scripts/test_ghidra_bootstrap.py 验证缺件/架构/路径/失败清理,真实 DLL 探针与无 Reverse 的实际分析/调试验收分别记录,不等同于干净 Windows VM 试验。 - 审计的目标与引擎优先读取同步目的身份及宿主 _ig5 执行证据;普通省略 engine/target 的 Ghidra 写入不能丢失或归属 Reverse。无新证据的旧记录保留历史 Reverse 归属,不按当前默认会话重解释。前审批拒绝/取消目前不写入 post-execute 审计,不能把流水声称为全部审批历史。 - Core8/Full40 保持不变。`ig5_decompile style=dossier` 用一个会话队列聚合伪代码/CFG/callers/callees/stack,并核对身份、函数入口与修订;普通反编译也在队列内读缓存。正文 UTF-8 字节与数组项数预算不等于全部后端计算预算;错误、部分分析与截断保留原状态。缓存最多16份/1MiB,键绑定attachment/artifact/provider/revision和预算。 - `ig5_profile workspace` 显式绑定已打开静态target,任务存储在独立 `projectRoot/investigations`;进度、假设与结论均为调用者声明,更新必须CAS `expected_task_revision`。仅系统dossier捕获能新增systemEvidence;报告校验SHA、scope、函数和章节,旧attachment/revision标stale不升级证据。报告保存与任务关联是两步提交,失败必须返回stage/reportSaved/taskLinked;不复制解密密钥原值,不写IDB或授予执行权限。回归入口见 `docs/INVESTIGATION_WORKFLOW.md`。 ## v1.1.0 独立采集约定 - Core8 不变,Full40 = 25 只读 + 13 审批 + 2 生命周期/配置;新增 ig5_capture 与 ig5_capture_control。后者所有 action 都走公共一次审批,包括 start/stop/replay;GET 路由只读本地状态和证据,不能启动代理或发包。 - capture_proxy 采用 Node 原生流式转发,监听 127.0.0.1,只接受显式 origin 范围。HTTP 数据在有界预算内截取;HTTPS CONNECT 默认不提供明文,tls=true 才生成本机 CA 并解密。不得自动改系统代理/证书信任;上游 TLS 验证始终保持开启。 - 采集与静态数据库修订分离;正文使用原 analysis artifact SHA 引用,来源、session、截断和完整状态必须保留。重放检查活跃 session 和批准范围,不跟随重定向,取消不证明远端未执行。被动 HTTP 观察不等于漏洞确认。 - Burp 文件、加载器和许可不复制进插件。纯 Node 采集不依赖 Burp。完整 Burp Pro 能力、任意 TCP/UDP 网卡采集和 HTTP/2 未实现,不能宣称完成。 - 1.1.0 复用已固定的 1.0.0 原生资产,Test-IG5RuntimeVersion 仅增加这一明确兼容对;distribution.json、原运行包清单和源资产 hash 保持原值,不以新代码版本重新封存供体。 - 验证新增 test:capture,真实 HTTP/TLS 测试仅用临时目录和本地靶服务;DSH SDK、renderer fixture、实际网络与宿主重载分别报告。 - 下发载荷 inspect_payload/materialize 保持离线数据车道,不自动执行脚本、解压、打开引擎或建立函数因果关系。materialize 固定 SHA 文件名,校验捕获报告摘要、blob、完整性及非链接文件;压缩/截断/HTTP 范围/不完整 WS 拒绝。真实 test:capture-runtime 验证 HTTP 下发到随包静态 dossier,同 hash 仅证明输入对应,不代表已还原隐藏服务器实现。 - state_trace 只读调用者选定的完整、有序、同 origin HTTP 交换;显式声明应用会话 start/complete,不从 TCP/代理 session 猜边界。训练与 holdout 不重复记录;校验源报告与 body SHA 后生成中性方向符号及来源,默认 route/status 或显式 1..8 字节 body-field。输出 input 原样用于 state_infer;新验证清单只含 traces,省略 holdout。 - state_infer/state_validate 复用 ig5_protocol 和隔离数据 worker,不新增工具。前缀树与 future-equivalent 合并假设分别保存,竞争目标不丢弃,部分前缀的不确定性穿过已匹配边;accepted/rejected 仅描述模型关系,合并成功原因必须为 fits-merged-hypothesis。相同符号/内容 hash 只标重复行为/内容,来源 ID 重叠另报;不同 ID 不证明独立采集。验证重建完整保存模型并核验摘要,不使用截断预览、不加入新训练。1 MiB JSON 及轨迹/事件/状态/工作预算必须保留,超限不提交模型。 - ig5_microcode action=deobfuscate 在 Ghidra provider 的真实 HighFunction SSA 上生成只读 SCCP/位片/条件分支/dispatcher 覆盖层,默认 generated/firstpass。LOAD/CALL 无完整模型;可达间接控制流、部分图与未完成定点/预算耗尽不发布确定证明。保持 rewritten/idb_modified/executed=false,不重写 SSA/机器码、不生成去混淆 C,不宣传任意 VM 去虚拟化或通用去壳。 - 本地 /ig5 state、state-validate、deobfuscate 只调用限定只读 action;state 默认深度2合并,state-validate 固定前缀树,合并验证用显式工具参数。测试与实际 DSH GUI 安装/启用/重载分开报告,未完成 GUI 验收不得由算法、SDK、fixture 或原生 worker 通过代替。完整参数和回归见 docs/DEOBFUSCATION_STATE.md。 - VMP 学习样本回归使用 scripts/fixtures/vmp_samples.json 固定来源/大小/SHA;外部二进制与上游源码保存在 artifacts,不随包分发、不执行。test:vmp-research 在启动 worker 前全量验 hash,包装函数与观察到的被调函数分别记录;加载、局部恒等式或模型推断不能作为去虚拟化成功。 - deobfuscation_symbolic 的 expressionSimplifications 为同宽局部 bitwise 真值表/线性 MBA 数学等价,不使用物理寄存器相同作为 SSA 身份。32 节点/12 层/6 变量/64 真值表行,间接目标依赖切片最多 32 节点;共享原 max_steps/max_evidence。全局间接控制未知可保留完整原生图的局部恒等式;图 partial/预算未完成撤下全部局部证明,targetsResolved 始终 false。原生生成 PE 验证 XOR 恢复、Ghidra tail-JMP 的 CALLIND 表示与未决 LOAD;外部 VMP 结果另报。 - ig5_ir level=trace 为已有记录的离线指令语义解释,nativeTargetExecuted=false / traceReplayed=true / databaseModified=false。Triton 独立依赖不改旧 runtime pins;固定 wheel、完整 RECORD/许可/逐文件 hash 在 worker/trace_vendor。输入2份/各4MiB/合计8MiB、默认每路径50k指令、显式最多100k、128次求解、60秒请求硬期限;取消只终止所属 worker。禁止为 trace 恢复启动外部样本或绕过 ig5_emulate/ig5_dbg 审批。 - 轨迹状态只能协调独立未定义/硬件变量,禁止覆盖输入依赖;普通状态冲突与遗漏初始内存拒绝。候选/低位投影/路径覆盖必须有真实 SMT unsat;wholeBinaryVerified 始终 false,记录环境假设和未知路径不隐去。ELF program-headers 模式仅用于轨迹字节绑定,默认静态内核仍严格检查 section;不得将 PT_LOAD 有效说成 section 完整有效。test:trace 与固定三样本 test:vmp-recovery、DSH 真实模型工具调用分别验收,完整参数见 docs/TRACE_RECOVERY.md。 - 扩大保护样本清单为 scripts/fixtures/protection_corpus.json;collect/prepare 只下载并有界解码数据,二进制/上游源码不分发、不执行。trace 原始提示行只允许按固定源 hash 和精确前导/尾随规则派生,公共解析器保持严格。启发式条件 AST 候选最多42个,另可对只含 x/y 的实际谓词作有界直接投影(256节点/32层),仍须SMT证明;含未知环境、超限或未证明条件保留 partial。test:protection-corpus 的 hash/加载、test:protection-native 的 Ghidra/SSA、test:expanded-trace 的语义恢复与真实 DSH 分层报告;隔离和 APK 不计通过,不宣传任意 VM 完整恢复。详见 docs/PROTECTION_CORPUS.md。 - 原生 record_trace 保持 ig5_dbg 的公共审批,单窗口 512 步/1 MiB/40 秒,2 秒单步等待软期限保留已确认前缀;只以同暂停 epoch 的 PAUSE+STEPPED 确认单步,不能把 pause/命令接受当成功。原生 v1/v2 h/r/d/e/mr/i/c/f 格式核对完整 GPR/flags/末态;d 只能无损还原实际快照,c 仅显式 CPUID 与紧邻 flag-only/NOP 或64位非CPUID输出GPR的 ADD/SUB immediate,无中间快照;原生末态必须核对,内存/分支/改CPUID输出拒绝。TF 仅独立调试环境协调,输入依赖不覆盖。长轨迹最多256段/原始16MiB→无损规范化4MiB/默认50k、显式最多100k指令,核对 immutable 报告、blob、目标/run/thread/stop 序号与GPR/flags/RIP。旧原生资产与清单不改。 - break-process 只作为已审批 suspend 的显式方式,验证 native 调试、cleanup job 与当前被调试进程,不接收任意 PID,不附加外部进程。thread_id 仅暂停时只读读取 native x64 已有线程,selectedThreadRegs 不替换当前线程缓存。原生回归 test:debug-trace 与实际 DSH 调用分别记录。 - 显式 backend=x64dbg op=cont 可有界等待最多120秒,其余调试操作最多60秒;宿主RPC须留出清理余量,配置不足先拒绝,不静默截断。此等待不扩大 record_trace 的512步/40秒或离线恢复的求解/内存/时限。selectedThreadRegs 可读取同一暂停中的 DR0–3/DR6/DR7,不能改变所选线程或调试寄存器。 - CPUID 合并停止可支持精确 F6 C0–C7 imm8 的寄存器 TEST,只有标志位效应,无内存/分支/额外硬件读取或GPR改写。记录器验证全部末态,PF按实际结果字节,AF仅作为未定义观察;离线恢复保持符号依赖并独立证明。没有中间快照的事实必须保留。 - CPUID合并停止另支持精确66 81 F8–FF imm16的16位寄存器CMP,六个状态标志均按架构语义核对,不写GPR、不接受内存或额外指令。守卫低位宽度可从实际AST的AND低位连续掩码/OR对应补掩码推导,仍共享2048节点扫描、42候选和既有SMT预算,不按观察输入或源码选条件。 - flags_ast只折叠无符号依赖的标志位,符号/环境变量保留,逐快照核对不减少。表达式投影前可做有证书的AST结构简化:NAND补集异或、双补/异或双补、重复拼接字的固定旋转。512次节点遍历/32层/64规则尝试,每节点最多4次前序改写,仍共享128次SMT和50/60秒期限;不改原AST、不按参考公式改写。合成、局部等价同余、投影和表达式后续简化的证书链必须完整保存,预览缩略不能冒充未生成证据。 - modern_corpus.json 固定官方签名 VMP 3.11 Demo 生成的自产输入/输出/配置/编译日志;生产器、SDK、保护二进制不进插件。仅自产 fixture 可在显式原生验收中执行,外部学习样本仍只读。普通 Demo 提示可正常确认,不修改许可/安全设置;隔离文件不恢复或通过改名绕过。版本、加载、真实采集与业务恢复四种证据分开,Demo/basic options 不宣传最大强度或现代VMP已经全部恢复。 - record_image 仅随已审批 x64dbg record_trace 捕获同一初始暂停中的主映像,模块最多8MiB/2048页、共享40秒期限;不可读页保存为空洞,不补零。trace_image 只能引用固定摘要的录制报告;blob、目标、run/thread/stop、入口、初始flags和runtimeBase须匹配。独立运行用各自 traces[i].trace_image;共享映像不能绑定不同ASLR地址。匹配调试器观察字节不等于匹配原文件或证明未来自修改代码,wholeBinaryVerified=false。 - x64dbg op=regs/thread_id 可只读查询所选自有线程的 ThreadHideFromDebugger,返回 selectedThreadDebuggerVisibility;查询失败/异常布尔值保留 null/unknown,QUERY_INFORMATION 打开失败可回退原有限查询权限读取寄存器,不将未知变为 False。不调用 NtSetInformationThread、不挂接/暂停/改写线程。核验前后所属调试暂停 epoch;隐藏线程的独立暂停/一致性未证明,须保留观察范围。scripts/test_thread_visibility_runtime.mjs 仅执行编译证明绑定的自产夹具,分别验证隐藏前 False、隐藏后 True、辅助线程 False 与当前线程/寄存器不变;真实 DSH 验收另记。 - Enigma 官方7.80 Demo 的生成器/SDK及自产保护输出仅在 artifacts;传统VM标记与RISC(Demo缺失)分开。生成成功/标记日志不等于业务恢复;Enigma未过的启动、隐藏线程猜测、API观察和调试入口试验保留失败,不合并到 VMP/UPX 通过数。试验性的自产夹具 API 拦截需显式环境参数、编译/SDK/NT导出及加载字节核验、32普通停止/128 API观察预算,所有参数和环境改动保存;不是产品通用反反调试入口,未捕获请求不能宣称拦截生效。不得据此修改原保护器、许可证或安全设置。