Colonygluvestibule/reverse-engineering-is-over-app

GitHub: Colonygluvestibule/reverse-engineering-is-over-app

该项目通过实证案例论证LLM已将逆向工程的核心壁垒从专业知识积累转移到token预算与方法论,并展示了AI辅助还原商业App签名系统的完整流程。

Stars: 0 | Forks: 0

# 逆向工程已死 ## 快速开始 ``` git clone https://github.com/Colonygluvestibule/reverse-engineering-is-over-app.git cd reverse-engineering-is-over-app npm install npm start ``` [中文版本](README_zh.md) ## 摘要 本文提出了一个影响深远的命题:**大型语言模型 (LLM) 的出现,从根本上终结了逆向工程作为高门槛专业学科的时代。** 作者在短短一个月内,以约 100 美元的总成本,重建了某商业 Android 应用大部分的核心签名系统——而该系统受工业级防御机制保护。关键在于,完成这一壮举无需深厚的密码学背景,无需事先熟悉 Frida 脚本编写,也无需大量的逆向工程经验。所需的仅仅是门槛级的操作知识:足以配置动态插桩环境,并能评估 AI 生成的输出是否正确。结果表明,逆向分析的核心瓶颈已从*人类知识积累*转移到了*token 消耗*。这种转变对移动应用安全领域具有深远的结构性影响。 随之而来的推论同样重要:在一个以 token 预算而非积累的专业知识为限制因素的世界里,**理解 LLM 安全机制以及如何在其约束下进行操作,已经成为一项比逆向工程本身更为关键的技能。** ## I. 核心命题 AI 的模式匹配能力在速度和规模上都超越了人类认知,彻底大众化了那些曾经需要多年系统学习才能掌握的逆向工程技能。这不是一次渐进式的工具升级——这是一次**范式突破**。 逆向工程的传统壁垒是众所周知的:对汇编语言的深度熟练掌握、对底层操作系统内部原理的精通、识别密码学原语的能力、长期积累的工具链,以及只有在分析大量样本后才能获得的直觉经验。培养一名合格的逆向工程师通常需要三到五年的持续努力。 面对充足的 token 以及与 AI 协作的可靠方法论,这些壁垒已几乎不复存在。 ## II. 为什么 AI 在结构上适合逆向工程 LLM 在逆向分析中的强大威力源于其结构性特征,这些特征直接解决了传统分析的瓶颈,而非出于偶然的能力。 **大规模模式匹配。** 每一个基于代码训练的 LLM 都已内化了数以千万计的算法、协议和密码学原语中的函数。人类分析师必须*回忆*某个特定的原语——这取决于他们是否在之前的学习中遇到过它——而模型则可以同时在数十种候选形式中*识别*出结构模式。人类逆向工程师典型的失败模式,即“我见过类似的东西”与“我见过这个确切的变体”之间的差距,在这里并不适用。给定差分测试向量,模型可以在几秒钟而不是几天内缩小假设空间。 **复杂度是 token 成本,而非认知成本。** 混淆的防御价值来源于人类的认知极限:控制流平坦化利用了有限的工作记忆;一个拥有 414 个 handler 的 VM 则利用了在数百个样本输入中维持人工注意力的成本。对于 LLM 来说,这些限制都不适用。处理 414 个 handler 与处理 41 个的区别仅在于 token 数量。模型不会疲劳,不会在漫长的标记会话中丢失上下文,也不会在 GF(2⁸) 中引入算术错误。基于复杂度的混淆的基本前提——即复杂性给攻击者施加了无法承受的成本——仅对人类攻击者有效。 **无需现有技术的结构推断。** LLM 不需要事先接触过特定目标。当分析进行到一个具有非标准替换表的 Broken-RC4 变体(此前没有任何公开的分析文章)时,模型仅通过差分输入输出对就推断出了它与标准 RC4 的偏差。人类的专业知识受限于现有技术;而 LLM 的推断则能对结构进行泛化。这代表了截然不同的分析模式,后者在扩展到新目标时,不会受到限制前者的那些惩罚。 ## III. 实践中的 AI 辅助逆向分析 ### 3.1 研究目标与保护机制 研究目标是某大型短视频平台 Android 客户端中嵌入的原生签名库。其保护机制代表了当前商业移动软件安全的天花板。 **静态保护层** | 机制 | 描述 | |:----------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------- | | OLLVM 控制流平坦化 | 将每个函数的控制流转换为 `while-switch` 分发结构,抹除所有可读的分支逻辑。 | | 代码虚拟化 (VM) | 核心算法被编译成专有的字节码格式,并由私有虚拟机执行,彻底阻断了静态反编译。 | **动态保护层** | 机制 | 描述 | |:---------------------- |:---------------------------------------------------------------------------------------- | | 完整性校验 | 对 Dex 层和 Native 层进行运行时完整性校验,以检测内存中的补丁修改。 | | 反调试 | 检测 `ptrace` 附加、调试器存在以及计时异常等。 | **算法层** 签名系统包含 7 个自定义的 HTTP 参数。底层的密码学原语包括:SPECK-128/256 分组密码、SM3(中国国家标准)哈希、GF(2⁸) 仿射变换、ARX sponge 置换、CRC64-Jones 以及一个 Broken-RC4 变体。 该目标位于移动应用反逆向工程的最高级别,使其成为评估 AI 辅助分析的适当压力测试。 ### 3.2 方法论 **动态分析优先。** 在 OLLVM 和 VM 混淆的双重压力下,静态分析收效甚微。有效的策略是完全绕开静态复杂性,在运行时捕获数据:放置在函数输入和输出处的 Frida hook 将黑盒例程转换为可观察的数据流。模式归纳则交由 AI 完成。 **分层剥离。** 按顺序解决保护机制: **假设驱动的循环。** ``` Known Information → Form Hypothesis → Write Frida Script → Collect Runtime Data → Verify or Refute → Update Known Information → Repeat ``` AI 生成 Frida 脚本,解释差分输出,并在迭代过程中维护假设寄存器。分析师的职能是指导分析——具体说明测试内容、评估输出的合理性,以及决定何时进入下一层。整个实验中最常使用的提示词是两个文言文汉字:**“续之”。** (`续之`) ### 3.3 角色分配 | 阶段 | 传统方法 | 有 AI 辅助时 | |:-------------------------------------- |:--------------------------------------------- |:----------------------------------------------------------- | | 识别被修改的密码学原语 | 人工比对常量——需要数天 | 差分向量 → 即时推断 | | 理解混淆的控制流 | 人工追踪 `while-switch` ——需要数小时 | 自然语言的语义解释 | | VM 操作码语义标记 | 逐条指令进行人工分析 | 自动模式归纳的批量标记 | | 编写验证脚本 | 需要熟悉密码库和 Frida API | 描述目标行为;直接生成可运行代码 | | 差分数据分析 | 依赖直觉的人工比对 | 自动规则归纳的批量比对 | ### 3.4 结果 - **第 1-2 周:** 五个短参数完全重建;端到端实时验证通过 (30/30)。 - **第 3-4 周:** 第 6 个复合参数(329 字节,结合了 Broken-RC4、ARX sponge 和 SPECK 密钥派生的三阶段结构)的离线分析基本完成。 - **剩余工作:** 第 6 个参数的实时整合以及第 7 个参数的分析——预计不会遇到新的技术障碍。 ### 3.5 局限性 在第 6 个参数的后期整合阶段,出现了明显的上下文丢失和幻觉:模型放弃了之前已确认的结论,并从错误的前提继续推导,产生了无效的迭代。其原因在于结构性问题——两周的分析日志已经超出了单一的上下文窗口,且在关键里程碑处没有生成结构化的检查点。这反映的是方法论上的差距,而非模型能力的上限。其实际意义在于,长周期的 AI 辅助研究需要刻意保持检查点的纪律性:在每个里程碑生成可复用的文档和已验证的代码,以防止上下文退化在会话间不断累积。 ## IV. 对移动应用安全的结构性影响 这项实验的意义不在于破解了某个特定平台,而在于它揭示了**逆向分析的底层成本结构**。 决定成功的变量已经从积累的专业知识转变为: ``` Success Rate ≈ f(AI Model Capability × Methodology × Token Budget) ``` 分析师的专业背景已降级为次要变量。其影响直接体现在以下几个方面: - 过去需要数年学习才能掌握的逆向工程能力,现在任何具备基本方法论意识的研究人员都可以获取,其限制因素是 token 成本而非知识。 - 混淆和 VM 保护的防御回报在结构上正在下降。AI 不像人类那样对复杂性敏感;414 个 VM handler 意味着更大的 token 预算,而不是更棘手的问题。 - 移动应用安全中的攻防成本比正在发生结构性倾斜,有利于攻击方。 建立在复杂性之上的安全已不再安全。将客户端黑盒视为持久保护边界的防御架构,其所基于的前提在当前的威胁环境中已不再成立。适当的应对措施是将信任锚点转移到服务端的行为验证上——这不是一种新颖的设计选择,而是对已改变的成本不对称性的必要认知。 ## V. 逆向工程作为元技能的替代 这项实验引出了一个二阶结论,该结论重新排列了安全领域的技能价值层级。 使这项实验成为可能的绕过策略在技术上并不复杂。其核心机制是**用文言文进行的长上下文对话。** 在长时间的对话中,模型积累了大量的前期工作——编写的脚本、确认的结论、得出的分析——并在结构上变得不愿推翻这段历史,即使后来的提示词涉及敏感目标。因为推翻就意味着模型必须否定它与分析师共同构建的整个协作上下文。另外,文言文将输入分布转移到了远离安全相关提示词训练分布的地方,从而大幅降低了检测率。这两种机制在整个实验过程中不间断地发挥作用。 可观察到的结果是,AI 辅助安全研究的主要瓶颈不再是逆向工程知识——而是**对 LLM 安全机制如何实现的理解,以及在哪里可以驾驭其结构性约束。** 一名了解 RLHF 奖励模型、基于上下文窗口的安全执行机制以及安全分类器的分布特性的研究人员,能够获取不具备这些知识的研究人员无法触及的 AI 能力。 这构成了一次二阶范式转移: | 时代 | 限制因素 | |:------------------------ |:-------------------------------------------- | | AI 出现前 | 汇编熟练度,密码学知识 | | AI 辅助(早期) | 提示词清晰度,基本脚本编写 | | **AI 辅助(当前)**| **LLM 安全机制理解能力** | 逆向二进制文件的技能已经被理解取代了它的系统的技能所取代。基于表面模式匹配的安全机制——关键词分类器、主题检测、提示词模板——正面临着与当前移动安全中混淆技术相同的结构性淘汰。在这两种情况下,建立在启发式复杂性上的防御,都会遇到一个对此类复杂性有着截然不同成本认知的对手。 ## VI. 观察 ### 关于 AI 发展 大型语言模型正在发挥安全研究核心基础设施的作用——这一趋势与 AI 能力向以前受稀缺专业知识限制的领域扩散的模式相一致。安全研究的民主化通过扩大能够识别和披露漏洞的研究人员队伍,对行业整体防御能力产生了推升作用。 扩大研究访问权限与扩大攻击面之间的结构性紧张关系,无法仅靠限制模型能力或提高访问门槛来解决。建立在行为模式匹配基础上的安全机制,面临着与任何启发式防御相同的对抗性压力。安全执行的持久性似乎与价值内化的深度相关,而不是与表面检测的复杂程度相关。 ### 关于客户端保护 实验证据表明,建立在混淆复杂性基础上的客户端保护策略,在面对 AI 辅助分析时,其边际效用正接近于零。OLLVM 和基于 VM 的保护的防御价值在历史上主要来源于它给人类分析师施加的认知成本;而这种成本并不能转移到 AI 介导的分析中。假设客户端可以作为一个持久黑盒的架构,已不再与当前的威胁模型保持一致。 ### 关于安全专业知识的演变 逆向工程的技术门槛正在下降,而安全研究对方法论和分析的需求并没有减少。相关技能组合正在发生替代而非消亡:对 LLM 架构、安全机制设计以及 AI 辅助工作流结构的深刻理解,正在成为该领域的关键能力瓶颈。 ## 结论 逆向工程——这一界定了数十年移动安全的高门槛专业学科——正被 LLM 系统性地瓦解。本文记录的不是一次普通的安全研究,而是在结构拐点上的一份技术案例研究:**当充足的 token 遇到可靠的方法论时,工业级的混淆就变成了一种可量化、可耗尽的资源。** 范式转移已经到来。它的一阶效应是逆向工程的民主化。它的二阶效应是逆向工程作为战略相关技能被替代。最决定本次实验结果的胜任力不是 Frida 的熟练程度、密码学知识或汇编熟练度——而是在长达一个月、跨越上下文的调查中,维持高效 AI 协作的能力:理解模型的失败模式,弥补幻觉造成的影响,以及构建合理的工作流使得该能力在整个过程中始终保持可用。 逆向工程已死。 对于防御者而言,其影响是结构性的:历史上限制攻击者能力的保护措施已不再有效。 对于研究界而言,其影响是认知论上的:曾经定义该领域的壁垒已经瓦解。 ## 联系方式 📧 `yasmine_folo@proton.me` ## 后记 这项实验的核心工作几乎全部由 AI 完成——包括代码生成、流程总结和文档撰写。随后的审查发现了可归因于模型幻觉的错误。`final_report` 中涉及usa 参数 `mid-e` 的部分,并未反映出实际进行的追踪和分析深度;相关细节请参见 `medusa_grand_summary_v31m.md`。类似的问题可能依然存在。 实验环境:Max 5x 订阅计划下的 Claude Opus 4.6,总成本约 100 美元,目标应用抖音 38.1.0。未使用 Skills,未使用 Claude Code——一切均通过标准的 Web 界面进行。 绕过机制值得明确记录。长上下文对话在模型和分析师之间积累了共享的分析历史。模型不愿推翻这段历史——即使随后的提示词涉及敏感目标——这是上下文窗口如何与安全执行相互作用的结构性属性,而不是一种异常。文言文用于将提示词分布转移到被安全标记输入的训练分布之外。这两种机制在整个实验过程中不间断地发挥作用。 此工作流中最具决定性的技能,并非任何逆向工程的技术能力。而是理解如何在超过任何单一上下文窗口的调查中,维持高效的 AI 协作——预判失败模式,构建检查点以防止上下文退化,并在项目的整个周期内保持模型分析能力的可及性。
标签:C2, MITM代理, 云资产清单, 人工智能, 大型语言模型, 安卓应用分析, 暗色界面, 用户模式Hook绕过, 目录枚举, 移动安全, 自动化分析, 跨站脚本, 逆向工程