news 2026/10/29 20:05:27

AI 自动化逆向(三十三)换一个「驱动器」,覆盖率跳了一个量级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI 自动化逆向(三十三)换一个「驱动器」,覆盖率跳了一个量级

AI 自动化逆向(三十三)换一个「驱动器」,覆盖率跳了一个量级

本文是「AI 自动化逆向」系列第 33 篇。上一篇:一次布 60 个点:怎么知道丢了几次命中;下一篇预告:自建指令缓存:把分钟级查询压到秒级。

前言

上一篇把观测端修好了——丢事件的问题解决了。可修好观测端之后,一个更上游的问题浮出来:

覆盖率上不去。而绝大多数时候,人和 AI 的反应是同一个字:按——按更多的键、更长的序列、更复杂的组合。

这一篇讲一个把这条路直接掀掉的发现:覆盖率的瓶颈往往不在观测端,在"驱动端"。

(同前几篇:文中"AI"指执行分析的模型,"我"指设定目标、审结果的人;按本系列纪律,本篇只讲实验设计思想,不涉及任何具体通道、端点或命令。)

一、AI 在这里踩的坑:拼命"按"的天花板

这个项目有一段时间,动态覆盖全靠"模拟用户操作":把猜测的快捷键、组合键一个个按过去,看能不能撞上更多被执行的目标。账本是这样的:

  • 一轮扫描,七十多次组合键、每个开/关各一次——零新增;
  • 一次"自动战斗"整整开过几分钟——什么都没触发(因为那个功能要先有"目标"才真正开打);
  • 三拨、更多的键、更长的窗口——并集原地不动。

为什么"按"会停在一个数上?答案是给没触发的目标做了一次分类:

  1. 按界面注册的:打开某个屏幕时才会跑——它等的是"某个界面被打开";
  2. 由外部消息/数据驱动的:它等的是系统的输入(比如服务端说的话),不是键盘;
  3. 只被脚本调用的:它等的是脚本层的动作。

看明白了吗——这三类里,没有一类是"按键"能到达的。键盘的射程到此为止,再按一万次,也不会有一个新增。

顺带,"按"这条路还有两个又贵又脆的老毛病:

  • 环境耦合:组合键会撞上别的软件的全局热键(那次撞键让一轮扫描的读数整个作废——环境里的无关程序能直接影响你的实验);
  • "按对键"的答案不用猜:这个程序自己带了一层快捷键说明——一个开关键呼出,画面上把每个功能对应的键全标出来。这是免费的 ground truth;而且它还是画面证据——证明按键确实到达了程序(比"我按了"硬得多)。

(记住这个从代码里挖表——和让程序自己把表画出来——的对比:后者更全、更便宜。第 16 篇那把尺子在这里量的是"真值来源"。)

二、过程:从"按"到"驱"

停在天花板上之后,设计问题变了。不再问"还能按什么键",而是问:

还有什么东西,能改变系统的状态?

顺着刚才的三类目标反推它们的"上游":要打开界面、要系统的输入、要脚本的动作——那这些上游本身,能不能被批量、编程化地触发?

由此得到一个明确的换法:

  • 旧驱动模型:模拟用户——每个状态变迁都要在真实 UI 上一动作一动作走一遍;成本极高,可达集还被界面本身限制;
  • 新驱动模型:按系统建模、批量触发——找到一个更高层、可编程的通道,按"系统"(地图、战斗、物品、技能……)逐个批量地驱动状态变迁。

一句话概括这个设计思想的杠杆率:能改变系统的入口从来不止一个;最贵的入口是"模拟人",最便宜的入口是"系统自己的通道"。

两点必须说清的边界:

  1. 换的只是驱动端。观测端那一整套纪律——布点时机、丢失对账、三态数据——一条都不能省(上一篇)。换驱动不是省掉验证,是把验证放到更大的舞台上去做。
  2. "新通道存在"本身要先被证明:能打开、能下发、下发确实改变了状态——同款证据纪律(第 23 篇:先找"谁能动它",再谈怎么动)。

三、判据与验证:四条

1. 覆盖推不动时,先给"推不动"归因。把未触达目标做分类——如果剩余目标的驱动来源不是你正在用的那一种,再加努力也是零。分类是换驱动的前置动作。

2. 换驱动源,优先于加强现有驱动。穷举输入的边际收益迟早归零:与其在同一个入口上更用力,不如先问"还有没有另一根杠杆"。

3. 便宜的真值先捡。程序自带的说明层 / 快捷键表 / 帮助界面——如果它能自己把答案画出来,就别再从代码里挖。

4. 驱动换、判据不换。时机、对账、三态——观测端的账本原样保留,只把"谁在开车"换掉。

四、结论

这个系列从第 1 篇讲到现在的那些"金句"里,这一条是隐藏最深、杠杆最大的:

AI 在穷举输入上花的力气,往往不如换一个驱动源。

覆盖率不是"输入了多少"的函数,是"驱动了多少种状态变迁"的函数——而状态变迁的入口,值得在动手之前先"清点"一遍。

五、边界声明

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

六、收尾

驱动的问题讲完了。下一篇回到工具链,讲一件自建的基础设施——它把"分钟级"的查询压到"秒级",让上面所有这些"当场重跑、当场对账"的纪律付得起:自建指令缓存。

下一篇计划聊:自建指令缓存:把分钟级查询压到秒级。



转载请注明出处:
https://lizhiyong.blog.csdn.net/article/details/169268880

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 20:04:11

常见的智能体介绍

国内外主流智能体Agent介绍 ✅ 国内智能体 1. WorkBuddy(腾讯云) 研发企业:腾讯云(CodeBuddy团队) 底层调用模型:原生腾讯混元Hy3/Hy4;兼容DeepSeek、GLM、Kimi、MiniMax,支持自定义API Key切换多模型 特色与功能 桌面本地执行型办公智能体,俗称腾讯小龙虾Agent;支…

作者头像 李华
网站建设 2026/10/29 19:53:24

(已解决)关于fpga的时序收敛问题记录

问题记录 1、Axi stream或者Axi Lite和逻辑通信时,因时钟时序不匹配,造成时序不收敛。 2、从别处考来的工程中,自带使用set_clock_groups -asynchronous组时,-of objects[get pins U_xxxx/xxxx…]&#xff…

作者头像 李华
网站建设 2026/10/29 19:52:20

【移动元件库】15.时间选择器

时间选择器是移动端场景下用于选择日期、时间或同时选择二者的输入类组件,属于级联选择器在日期选择场景的垂直化应用,其选项关联交互逻辑与级联选择器同源,复杂度相对更低。 1️⃣动图效果 元件库目前共提供三类时间选择器,分别为…

作者头像 李华
网站建设 2026/10/29 19:50:08

鸣潮模组怎么装:WuWa-Mod 的 .pak 安装与配置,三步完成启动

鸣潮模组怎么装:WuWa-Mod 的 .pak 安装与配置,三步完成启动 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod 日常任务里每个技能都要等冷却条,跑图时体力耗尽又得停下…

作者头像 李华
网站建设 2026/10/29 19:49:12

QuickLook 文件预览指南:按一次空格键,快速预览 100 多种格式

QuickLook 文件预览指南:按一次空格键,快速预览 100 多种格式 【免费下载链接】QuickLook Bring macOS “Quick Look” feature to Windows 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLook QuickLook 把 macOS 的 Quick Look 功能带进了…

作者头像 李华
网站建设 2026/10/29 19:47:09

一条命令跑通二进制逆向:rea AI 逆向 CLI 终端实操指南

一条命令跑通二进制逆向:rea AI 逆向 CLI 终端实操指南 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea 手头一个陌生的 ELF,或者一个解包后的 Elec…

作者头像 李华