AI 自动化逆向(二十九)受保护区间的真实形状是「夹层」

AI 自动化逆向(二十九)受保护区间的真实形状是「夹层」

本文是「AI 自动化逆向」系列第 29 篇。上一篇:先量保护面,再决定要不要脱壳;下一篇预告:片段级恢复:单位是片段,不是函数。

前言

上一篇量完了边界------被保护的部分大约占代码段的 3%。这一篇往里看一眼:

那道边界里面,究竟长什么样?

答案是这一篇要讲的唯一一件事:它不是黑箱,也不是"代码或数据"的二选一。它有一个具体、可描述、可以拿来干活的结构------一个很有画面感的词:

夹层。

(同前几篇:文中"AI"指执行分析的模型,"我"指设定目标、审结果的人;内容均已脱敏。)

一、AI 在这里踩的坑:两个坏心智模型

面对"读不出来的区域",AI 用过两个坏模型,都不对,而且错在同一处。

坏模型一:黑箱化

"读不出来"被升级成"里面不可知"------于是要么绕着走,要么放弃。这是上一篇讲过的错法二。真实情况是:区域里的东西是可以被看的,只是不能像看普通代码那样顺着看。

坏模型二:齐次化

"一个区间要么是代码、要么是数据"------于是用一个函数级 的比例去给它贴标签。这是第 2 篇那条判据链连翻五次的根源。真实情况是:区间内部是"分层的混合"------两种东西同时住在一段字节里。

两个模型错在同一处:把"混合"当成"整体"。 一个说整段是谜,一个说整段是一个物种;真相是整段是夹心。

二、过程:看清夹层

形状本身

把这类区间拆开看,长这样(文字示意):

复制代码
[ 桩 ][ 壳字节流 ][ 幸存的原始指令 ][ 桩 ][ 壳字节流 ][ 幸存的原始指令 ] ...

机制并不复杂:原指令被逐条"换桩" ------每条(或每几条)原始指令被一个"跳进保护区"的桩替换;但原始字节留在原地 。于是还活着的真指令,就这样夹在桩与桩之间,被字节流隔断。

它直接解释了一个曾经很费解的现象:为什么从区间开头向后线性解码,一定翻车。 因为解码是一列火车,从起点顺着轨道开;只要轨道的任何一段被拆掉,火车后面的每一站都错位 。而这里的轨道是每隔几根枕木就断一次。

"解不出来"是解码器行进方式的问题,不是内容的属性。 换一种走法(不从区间开头走,而是"逐偏移扫描"),路就通了。

三个观测:这个形状是怎么被看见的

观测一:反比。 给全部可疑区间算"线性解码率"的时候出现了一个刺眼的反比------解码率最低的那个区间,反而藏着最多的真代码片段 (二十多块片段,其中十七块带证据------比大部分"正常"区间还多)。"解码率与含真代码量完全不成正比"(第 7 篇记下的怪象),到这里看见了结构原因:越是被桩替换得彻底的区间,线性解码越是寸步难行,而幸存字节偏偏还在原地。

观测二:链条。 解码率最低的那个区间里,捞出了一条完整的比较链------逐项比较、跳转串联、语义完全自洽,"自洽到不可能不是代码"。(就是第 2 篇的那条反例。)

观测三:零交集。 把全部可疑区间都跑一遍片段恢复:"一个片段都捞不出来"的区间:零个。 ------混合不是特例,是普遍形态。

怎么读它:两层读法

有了形状,读法也跟着分成两层:

  • 桩层 (执行路径层):从函数入口往下看,找"跳进保护区"的转移------它告诉你哪些分支被护住了;
  • 幸存层 (残留结构层):逐偏移 尝试解码,保留"以返回/间接跳转结尾、且不含跳进保护区的转移"的连续段------它告诉你体内还留着什么真东西。

两层的产出分开记、对起来用:桩负责交代"被动了哪里",片段负责交代"还剩下什么"。

三、判据与验证:四条

1. 保护区不是黑箱------它有形状。 形状不用猜:把区间打开,两种东西都看得见;看不见,是读法不对。

2. "解不出来"先问解码器的行进方式。 线性失步是方式问题:换"逐偏移 + 结构闭合"就能捞(第 30 篇展开)。

3. 混合是常态。 看到低解码率,先想夹层------不是"纯数据",也不是"全没了",而是"部分幸存"。

4. 单位跟着形状走。 结构是片段级的,读数就用片段级;桩层与幸存层的证据分开记录,别合成一个布尔(第 12 篇的老账)。

四、结论

一句话:受保护区间不是一堵墙,是一层夹心。

墙让你绕;夹心让你挑着吃 。弄清楚形状的价值,是把"能不能读"这个问题从态度问题 ("放弃吧/硬啃吧")变成了结构问题("桩在哪、幸存段在哪、单位是什么")------而结构问题,是可以有答案的。

五、边界声明

  • 本文只讨论AI 自动化逆向中的判据设计与审核方法,不涉及任何具体产品、厂商或服务的分析结论。
  • 文中所有地址、偏移、常量、字段名一律为占位符或示意值 ,
    不代表任何真实目标中的取值;示例代码为说明判据而编写,不构成可运行的针对特定目标的工具。
  • 文中提到的比例与数字均来自作者项目内的测量记录,仅用于说明方法失效的方式。
  • 请勿将本文内容用于未授权的用途。

六、收尾

形状看清了,下一步是把它变成工具 :一种"单位是片段、不是函数"的恢复方法------以及它自带的一条很有意思的性质:对某类区域,它天然返回空------而那恰好是它能立足的地方。

下一篇计划聊:片段级恢复:单位是片段,不是函数。


转载请注明出处:

https://lizhiyong.blog.csdn.net/article/details/169268802

相关推荐
yz_aiks1 小时前
Claude Code effort 用什么级别:五个档位是什么、什么时候该调(Opus 5.5)
人工智能·ai编程·开发工具·效率工具·claude code
卢卡上学1 小时前
WorkBuddy 十分钟做出一份能交差的 PPT
人工智能
柏慧通云报餐1 小时前
政企清廉食堂数字化建设方案:基于一体化报餐平台的全链路管控落地思路
大数据·运维·人工智能·物联网·sass
轻口味1 小时前
我用 TRAE 做了个 Obsidian 插件,把掘金接进分发流水线(本文就是它发的)
人工智能·程序员
snpgroupcn1 小时前
SAP迁移工程下篇:模板复用、自动化执行与阶段内置校验的实现(下篇)
运维·自动化
FPGA信号处理1 小时前
【人工智能:原理与技术】概率图模型的推断:变量消元、采样与滤波
人工智能
GlobalInfo1 小时前
2026机器人关节谐波减速器研究报告:市场规模与十五五风向
大数据·人工智能·机器人
阿里云大数据AI技术1 小时前
云栖实录|DataWorks全新发布:Agentic AI时代企业级数据智能体平台
人工智能
沉下心来学鲁班1 小时前
具身智能实战:让机器鸭爬梯子——双策略交接与接触力控制的深度解读
开发语言·人工智能·python·机器人