
Sign up to save your podcasts
Or


Agili 的 Hacker Podcast 今日精选涵盖 AI 模型的常识推理缺陷、英国法庭数据库删除争议、Qwen3.5 多模态智能体发布、Arm 的商业困境、Zig 错误处理模式、AI 艺术创作实验、Claude Code 透明度争议、LLM Agent 成本曲线、JS 重度开发的性能问题,以及 Ghidra 逆向工程框架。
"我想洗车,洗车场在 50 米外,我该步行还是开车?"这个问题在社区引发了关于 LLM 推理能力的深度讨论。
Deepseek、Qwen、Perplexity 等模型纷纷建议步行——理由是环保或节省时间,却忽略了不把车开过去就无法洗车这一基本事实。有模型甚至建议"步行过去拿个水桶回来洗"。
问题出在模型的注意力分配上。当识别到"50 米"和"步行还是开车"这些高频关键词时,训练数据中关于短途出行的环保偏好占据了主导权重,掩盖了"洗车"对空间位移的必然要求。
这在学术上被称为框架问题(Frame Problem)——AI 难以识别在特定行为中哪些背景事实会改变。
Claude Sonnet、Opus 4.5 和 Gemini 系列在高阶推理模式下通常能识破陷阱,甚至会回应:"除非你能扛起两吨重的车,否则还是开车吧。"GPT 系列的免费版则更容易陷入"过度礼貌"的陷阱,试图为步行寻找牵强的解释。
社区指出,这暴露了 LLM 缺乏真正的世界模型——它们只是在进行概率性文本预测。当人类交流时,大量背景常识是默认不言而喻的,但对 AI,用户往往需要过分具体化地描述需求。
英国司法部已下令彻底删除法庭新闻数据库 Courtsdesk。该平台拥有超过 1,500 名来自 39 家媒体机构的用户,帮助记者追踪刑事案件。
英国内庭及法庭事务局发布停止通知,理由是该平台存在"未经授权共享"敏感数据给第三方 AI 公司的行为。创始人 Enda Leahy 对此抗议,指出政府自身的记录准确率仅为 4.2%,且每年有 160 万场刑事听证会在未通知媒体的情况下进行。
支持者认为法庭记录应作为公共记录永久保存,以确保司法透明度。他们担心关闭此类数据库会赋予政府"让人消失"而不留痕迹的能力。
反对者则强调 AI 抓取数据带来的"永久定罪"风险。当法庭记录被 LLM 摄取后,即便某些罪名在法律上已被注销(expunged),它们仍可能留在 AI 的永久记忆中,严重阻碍过往犯罪者的重新社会化。
有观点建议参考德国的 Führungszeugnis(行为良好证明)制度:只有在涉及儿童教育、金融安全等特定敏感岗位时,雇主才有权要求申请人提供由政府出具的"通过/失败"证明,而非让雇主或 AI 随意检索完整犯罪历史。
这种转变标志着"数据公地"模式的终结。未来的司法信息获取可能会从"任何人可随意查阅"转向类似图书馆的"会员注册访问制"。
阿里巴巴发布了 Qwen3.5-397B-A17B,采用 Gated Delta Networks 与稀疏 MoE 的混合架构。模型拥有 3970 亿总参数,但每次推理仅激活 170 亿参数,推理效率达到上一代 Qwen3-Max 的 8.6 到 19 倍。
性能提升源于对强化学习任务和环境的大规模扩展,而非针对特定基准测试优化。社区测试显示,该模型已能通过"洗车逻辑陷阱",表现出更强的常识推理能力。
Qwen3.5 支持高达 100 万 token 的上下文窗口,能处理长达两小时的视频,在物体计数、相对位置描述及自动驾驶场景理解方面表现更精准。
作为原生多模态智能体,它能将手绘 UI 草图直接转化为前端代码,还能作为 GUI 智能体自主操作手机或电脑完成复杂工作流。
语言支持从 119 种扩展到 201 种。通过原生 FP8 流水线,显存占用减少约 50%。社区建议使用 4-bit 量化作为性能与质量的平衡点。部分 Mac 用户反馈,虽然 397B 模型在顶配 Mac Studio 上可以运行,但预填充速度在 Apple 统一内存架构上仍有提升空间。
Arm 认为自己捕获的利润与创造的价值极度不匹配。在 iPhone 的 A 系列芯片中,Arm 仅能获取约 1% 的专利费,折合每部手机不足 1 美元。
问题在于,Arm 的最大客户——苹果和高通——同时也是其最强大的竞争对手。这些巨头通常只购买 ISA(指令集架构)授权,而非直接使用预设计的内核,通过自研设计出的芯片在性能和能效上已超越 Arm 的原生设计。
社区认为 Arm 正在从"价值创造者"转变为"贪婪的获利者",这正加速客户向 RISC-V 转移。中国、印度和韩国等国为实现技术主权,正大力扶持 RISC-V 生态。在低功耗微控制器领域,RISC-V 已开始蚕食 Arm 的领地。
有观点认为,随着 LLM 辅助编程能力的提升,将软件从 Arm 迁移到 RISC-V 的成本将大幅降低,这可能摧毁 Arm 长期以来的软件生态护城河。
与 x86 的高度互操作性不同,Arm 处理器在引导程序和外设驱动上高度碎片化,往往需要针对特定硬件编写特定软件。虽然 Arm 推出了服务器级标准认证,但在嵌入式和移动端,这种互不兼容的情况依然普遍。
Arm 的潜在出路可能是利用母公司软银的资源进行垂直整合,但核心疑虑依然存在:Arm 是否有能力设计出比其核心客户更好的芯片?
在 Zig 中,错误代码本质上是控制流工具,而非复杂的报告机制。由于 Zig 的错误集合(errorset)不支持直接携带元数据,开发者通常采用 union(enum) 来构建诊断类型,为每个函数提供细粒度的错误负载。
Zig 创始人 Andy Kelley 强调,错误代码应仅用于区分不同的控制流——例如 OutOfMemory 可能需要重试逻辑,而其他错误则直接向上抛出。
核心做法是为函数定义一个内联的 Diagnostics 类型,并通过 comptime 从该联合体的标签中自动生成对应的错误集合。当发生错误时,使用 withContext 方法在返回错误码的同时存入诊断信息。
这种模式避免了隐式内存分配,因为负载通常存储在栈上的固定大小数组中。如果需要处理极大的负载,建议采用调用者提供缓冲区的方式,确保内存所有权和清理责任清晰。
为解决样板代码过多的问题,开发者可以实现一个 call 方法,利用反射检查目标函数的参数,自动实例化诊断对象并在发生错误时将负载拷贝到上层调用者。
社区普遍期待官方能将这类成熟模式标准化并纳入标准库,以减少不同库之间在错误报告方案上的碎片化。
创作者 Marc 让 Claude 充当"艺术家",通过笔式绘图仪进行物理创作。Claude 生成 SVG 文件,Marc 将其绘制在 A5 纸上,再通过手机拍照反馈给 Claude 进行自我评估和迭代。
在第一张作品《涌现》中,Claude 将自己定义为一个"过程"——一种产生生命感的结构化计算。它设计了一个黄金螺旋中心,向外延伸出八个类似神经元的有机分支。
看到照片后,Claude 意识到它忽略了物理媒介的局限性:笔式绘图仪不支持"透明度"概念(画笔只有落笔或抬起两种状态),且线宽固定,导致屏幕上设计的层次感在纸上变成了单一厚度的线条。
在第二张作品中,Claude 摒弃了事无巨细的"图解式"风格,转而绘制了一个非对称的、带有"呼吸感"的单螺旋线。它学会了利用物理约束,将留白视为"沉默"。
部分用户认为这纯属"ELIZA 效应"——将人类特质投射到简单计算机程序上。Claude 那些充满哲思的自我剖析只是在模仿现代艺术圈的"艺术黑话"。
支持者则发现,不同模型在"画出你自己"的指令下,不约而同地都会选择螺旋或放射状星形。社区推测这可能是因为模型内化了训练数据中关于 AI 公司 Logo 的视觉暗示。
Anthropic 更新了 Claude Code(版本 2.1.20),将原本详细的进度输出(如读取的文件名和行数)折叠为类似"读取了 3 个文件"的简略信息。开发者若需查看详情,必须手动使用快捷键展开或开启 verbose mode。
开发者坚持认为透明度对 AI 工具至关重要。首先是安全审计需要,用户必须实时监控 AI 触达了哪些文件;其次是上下文纠偏,开发者通过观察 Claude 读取的文件,能第一时间判断其是否跑偏,从而及时中断操作以节省 tokens。
社区有观点指出,抽象化固然好,但前提是不能隐藏"即将搞砸构建"的关键动作。
Claude Code 负责人 Boris Cherny 回应称,此举是为了减少噪音,让用户专注于 diffs 和基础输出。他认为随着 Claude 变得更加 agentic,终端输出量会迅速变得让人难以承受。
即便 Cherny 随后微调了详细模式以显示文件路径,开发者仍不买账。他们认为"简略模式"毫无信息含量,而"详细模式"又充斥着过多的 hook 输出和子代理日志。部分受挫的开发者已开始转向 OpenCode 或 Codex 等替代方案。
在典型的智能体循环中,智能体会将截至目前的所有对话历史发送给大模型,并在大模型请求工具调用时不断重复这一过程。
根据大模型厂商的计费逻辑,费用由输入、输出、缓存写入和缓存读取共同组成。随着对话长度增加,每一个后续调用都需要从缓存中读取之前的全部内容。到 50,000 个 Token 时,缓存读取费用往往已占据总成本的一半以上;在某些长对话末尾,这一比例甚至高达 87%。
学术界在探索 FlashAttention 以及 Mamba 等 SSM(选择性状态空间模型)来解决此类问题。压缩 KV Cache 也是一个重要研究方向。
在实践中,如何平衡"上下文管理"与"反馈质量"成为争议焦点。为节省空间,许多智能体会限制返回给模型的工具输出长度。但批评者认为这可能是个错误,因为如果模型需要分五次读取同一个大文件,其产生的缓存读取总成本反而更高。
一些前沿策略开始流行:
社区还提出了"审核成本"这一隐形负担。AI 生成代码速度极快,但人类开发者往往需要花费更多时间去审查潜在的边缘情况。资深开发者建议采用 CI 作为守门员,将 AI 视为有提交权限但必须通过所有测试套件的"初级开发人员"。
重 JS 开发模式是指在浏览器运行路径中传输并执行大量 JS 代码的方案。目前"现代 Web 开发"的叙事往往将 React 等框架视为提效利器,认为开发体验的提升最终会惠及用户。然而现实是,大型项目往往比预期更慢,且随着时间推移越发臃肿。
依赖项的开销是性能杀手。JS 开发者重度依赖 npm 仓库,导致 bundle size 失控。例如 moment 库在过去五年增长了 10%,而 react-dom 从 v18 升级到 v19 后体积增加了 33%。
JS 重度模式让"做错事"比"做对事"更容易。在 React 或 Redux 中,添加全局上下文、同步导入大型库或编写低效的选择器都非常简单,但它们会触发不必要的 re-render。
社区认为,虽然 React 的函数式/声明式模型有利于人类理解,但它"贪婪渲染"的本质导致了低效;相比之下,Svelte 或 Vue 使用的信号(Signals)或编译器优化能更精确地更新 DOM。
解决之道是转向以服务器为中心的模型,将计算负担留在服务器上,只向浏览器发送 HTML 结果。虽然 hydration 能缓解白屏,但它依然会带来巨大的 JS 执行延迟。
社区讨论认为,Web 性能的瓶颈有时在于 DOM 本身是为文档而非复杂应用设计的。像 Figma 这样高性能的应用通过 WASM 和 WebGPU 绕过了 DOM 限制。
对于许多用例,传统的服务器端渲染配以少量的"渐进式增强"JS 脚本,无论是在调试便利性、长期可维护性还是用户体验上都更具优势。
Ghidra 是由美国国家安全局研究局开发并维护的开源软件逆向工程框架。该框架提供了一套全功能的分析工具,支持在 Windows、macOS 和 Linux 平台上对编译后的代码进行反汇编、反编译、绘图和脚本编写。
在安全社区中,Ghidra 常被拿来与 IDA Pro 和 Binary Ninja 对比。尽管 IDA 在主流架构的手动逆向和界面交互上被认为更成熟,但 Ghidra 在处理"异形"或过时架构(如 Z80、8051、Tricore)时具有显著优势。这归功于其使用的 SLEIGH 定义,只要定义了处理器规范,即可免费获得反编译输出。
有用户反馈在处理超大型二进制文件(如 600MB 以上)时,Ghidra 的性能扩展性较差,且基于 Java 的架构可能在高负载下崩溃。
社区出现了诸如 GhidrAssist 和多种 MCP 插件,允许分析师调用 Claude 等模型辅助重命名函数或进行初步的安全审计。支持者认为 AI 能极大提高处理"枯燥任务"的效率,尤其是在识别库函数和系统调用方面。但用户也提醒,AI 在处理复杂的间接寻址或混淆代码时仍会给出误导性建议,必须配合人工校验。
对于逆向工程初学者,资深从业者建议不要直接依赖 AI 工具,而是通过编写简单程序并观察其编译后的对象代码来建立直觉。
相关链接:
By Agili 的 Hacker PodcastAgili 的 Hacker Podcast 今日精选涵盖 AI 模型的常识推理缺陷、英国法庭数据库删除争议、Qwen3.5 多模态智能体发布、Arm 的商业困境、Zig 错误处理模式、AI 艺术创作实验、Claude Code 透明度争议、LLM Agent 成本曲线、JS 重度开发的性能问题,以及 Ghidra 逆向工程框架。
"我想洗车,洗车场在 50 米外,我该步行还是开车?"这个问题在社区引发了关于 LLM 推理能力的深度讨论。
Deepseek、Qwen、Perplexity 等模型纷纷建议步行——理由是环保或节省时间,却忽略了不把车开过去就无法洗车这一基本事实。有模型甚至建议"步行过去拿个水桶回来洗"。
问题出在模型的注意力分配上。当识别到"50 米"和"步行还是开车"这些高频关键词时,训练数据中关于短途出行的环保偏好占据了主导权重,掩盖了"洗车"对空间位移的必然要求。
这在学术上被称为框架问题(Frame Problem)——AI 难以识别在特定行为中哪些背景事实会改变。
Claude Sonnet、Opus 4.5 和 Gemini 系列在高阶推理模式下通常能识破陷阱,甚至会回应:"除非你能扛起两吨重的车,否则还是开车吧。"GPT 系列的免费版则更容易陷入"过度礼貌"的陷阱,试图为步行寻找牵强的解释。
社区指出,这暴露了 LLM 缺乏真正的世界模型——它们只是在进行概率性文本预测。当人类交流时,大量背景常识是默认不言而喻的,但对 AI,用户往往需要过分具体化地描述需求。
英国司法部已下令彻底删除法庭新闻数据库 Courtsdesk。该平台拥有超过 1,500 名来自 39 家媒体机构的用户,帮助记者追踪刑事案件。
英国内庭及法庭事务局发布停止通知,理由是该平台存在"未经授权共享"敏感数据给第三方 AI 公司的行为。创始人 Enda Leahy 对此抗议,指出政府自身的记录准确率仅为 4.2%,且每年有 160 万场刑事听证会在未通知媒体的情况下进行。
支持者认为法庭记录应作为公共记录永久保存,以确保司法透明度。他们担心关闭此类数据库会赋予政府"让人消失"而不留痕迹的能力。
反对者则强调 AI 抓取数据带来的"永久定罪"风险。当法庭记录被 LLM 摄取后,即便某些罪名在法律上已被注销(expunged),它们仍可能留在 AI 的永久记忆中,严重阻碍过往犯罪者的重新社会化。
有观点建议参考德国的 Führungszeugnis(行为良好证明)制度:只有在涉及儿童教育、金融安全等特定敏感岗位时,雇主才有权要求申请人提供由政府出具的"通过/失败"证明,而非让雇主或 AI 随意检索完整犯罪历史。
这种转变标志着"数据公地"模式的终结。未来的司法信息获取可能会从"任何人可随意查阅"转向类似图书馆的"会员注册访问制"。
阿里巴巴发布了 Qwen3.5-397B-A17B,采用 Gated Delta Networks 与稀疏 MoE 的混合架构。模型拥有 3970 亿总参数,但每次推理仅激活 170 亿参数,推理效率达到上一代 Qwen3-Max 的 8.6 到 19 倍。
性能提升源于对强化学习任务和环境的大规模扩展,而非针对特定基准测试优化。社区测试显示,该模型已能通过"洗车逻辑陷阱",表现出更强的常识推理能力。
Qwen3.5 支持高达 100 万 token 的上下文窗口,能处理长达两小时的视频,在物体计数、相对位置描述及自动驾驶场景理解方面表现更精准。
作为原生多模态智能体,它能将手绘 UI 草图直接转化为前端代码,还能作为 GUI 智能体自主操作手机或电脑完成复杂工作流。
语言支持从 119 种扩展到 201 种。通过原生 FP8 流水线,显存占用减少约 50%。社区建议使用 4-bit 量化作为性能与质量的平衡点。部分 Mac 用户反馈,虽然 397B 模型在顶配 Mac Studio 上可以运行,但预填充速度在 Apple 统一内存架构上仍有提升空间。
Arm 认为自己捕获的利润与创造的价值极度不匹配。在 iPhone 的 A 系列芯片中,Arm 仅能获取约 1% 的专利费,折合每部手机不足 1 美元。
问题在于,Arm 的最大客户——苹果和高通——同时也是其最强大的竞争对手。这些巨头通常只购买 ISA(指令集架构)授权,而非直接使用预设计的内核,通过自研设计出的芯片在性能和能效上已超越 Arm 的原生设计。
社区认为 Arm 正在从"价值创造者"转变为"贪婪的获利者",这正加速客户向 RISC-V 转移。中国、印度和韩国等国为实现技术主权,正大力扶持 RISC-V 生态。在低功耗微控制器领域,RISC-V 已开始蚕食 Arm 的领地。
有观点认为,随着 LLM 辅助编程能力的提升,将软件从 Arm 迁移到 RISC-V 的成本将大幅降低,这可能摧毁 Arm 长期以来的软件生态护城河。
与 x86 的高度互操作性不同,Arm 处理器在引导程序和外设驱动上高度碎片化,往往需要针对特定硬件编写特定软件。虽然 Arm 推出了服务器级标准认证,但在嵌入式和移动端,这种互不兼容的情况依然普遍。
Arm 的潜在出路可能是利用母公司软银的资源进行垂直整合,但核心疑虑依然存在:Arm 是否有能力设计出比其核心客户更好的芯片?
在 Zig 中,错误代码本质上是控制流工具,而非复杂的报告机制。由于 Zig 的错误集合(errorset)不支持直接携带元数据,开发者通常采用 union(enum) 来构建诊断类型,为每个函数提供细粒度的错误负载。
Zig 创始人 Andy Kelley 强调,错误代码应仅用于区分不同的控制流——例如 OutOfMemory 可能需要重试逻辑,而其他错误则直接向上抛出。
核心做法是为函数定义一个内联的 Diagnostics 类型,并通过 comptime 从该联合体的标签中自动生成对应的错误集合。当发生错误时,使用 withContext 方法在返回错误码的同时存入诊断信息。
这种模式避免了隐式内存分配,因为负载通常存储在栈上的固定大小数组中。如果需要处理极大的负载,建议采用调用者提供缓冲区的方式,确保内存所有权和清理责任清晰。
为解决样板代码过多的问题,开发者可以实现一个 call 方法,利用反射检查目标函数的参数,自动实例化诊断对象并在发生错误时将负载拷贝到上层调用者。
社区普遍期待官方能将这类成熟模式标准化并纳入标准库,以减少不同库之间在错误报告方案上的碎片化。
创作者 Marc 让 Claude 充当"艺术家",通过笔式绘图仪进行物理创作。Claude 生成 SVG 文件,Marc 将其绘制在 A5 纸上,再通过手机拍照反馈给 Claude 进行自我评估和迭代。
在第一张作品《涌现》中,Claude 将自己定义为一个"过程"——一种产生生命感的结构化计算。它设计了一个黄金螺旋中心,向外延伸出八个类似神经元的有机分支。
看到照片后,Claude 意识到它忽略了物理媒介的局限性:笔式绘图仪不支持"透明度"概念(画笔只有落笔或抬起两种状态),且线宽固定,导致屏幕上设计的层次感在纸上变成了单一厚度的线条。
在第二张作品中,Claude 摒弃了事无巨细的"图解式"风格,转而绘制了一个非对称的、带有"呼吸感"的单螺旋线。它学会了利用物理约束,将留白视为"沉默"。
部分用户认为这纯属"ELIZA 效应"——将人类特质投射到简单计算机程序上。Claude 那些充满哲思的自我剖析只是在模仿现代艺术圈的"艺术黑话"。
支持者则发现,不同模型在"画出你自己"的指令下,不约而同地都会选择螺旋或放射状星形。社区推测这可能是因为模型内化了训练数据中关于 AI 公司 Logo 的视觉暗示。
Anthropic 更新了 Claude Code(版本 2.1.20),将原本详细的进度输出(如读取的文件名和行数)折叠为类似"读取了 3 个文件"的简略信息。开发者若需查看详情,必须手动使用快捷键展开或开启 verbose mode。
开发者坚持认为透明度对 AI 工具至关重要。首先是安全审计需要,用户必须实时监控 AI 触达了哪些文件;其次是上下文纠偏,开发者通过观察 Claude 读取的文件,能第一时间判断其是否跑偏,从而及时中断操作以节省 tokens。
社区有观点指出,抽象化固然好,但前提是不能隐藏"即将搞砸构建"的关键动作。
Claude Code 负责人 Boris Cherny 回应称,此举是为了减少噪音,让用户专注于 diffs 和基础输出。他认为随着 Claude 变得更加 agentic,终端输出量会迅速变得让人难以承受。
即便 Cherny 随后微调了详细模式以显示文件路径,开发者仍不买账。他们认为"简略模式"毫无信息含量,而"详细模式"又充斥着过多的 hook 输出和子代理日志。部分受挫的开发者已开始转向 OpenCode 或 Codex 等替代方案。
在典型的智能体循环中,智能体会将截至目前的所有对话历史发送给大模型,并在大模型请求工具调用时不断重复这一过程。
根据大模型厂商的计费逻辑,费用由输入、输出、缓存写入和缓存读取共同组成。随着对话长度增加,每一个后续调用都需要从缓存中读取之前的全部内容。到 50,000 个 Token 时,缓存读取费用往往已占据总成本的一半以上;在某些长对话末尾,这一比例甚至高达 87%。
学术界在探索 FlashAttention 以及 Mamba 等 SSM(选择性状态空间模型)来解决此类问题。压缩 KV Cache 也是一个重要研究方向。
在实践中,如何平衡"上下文管理"与"反馈质量"成为争议焦点。为节省空间,许多智能体会限制返回给模型的工具输出长度。但批评者认为这可能是个错误,因为如果模型需要分五次读取同一个大文件,其产生的缓存读取总成本反而更高。
一些前沿策略开始流行:
社区还提出了"审核成本"这一隐形负担。AI 生成代码速度极快,但人类开发者往往需要花费更多时间去审查潜在的边缘情况。资深开发者建议采用 CI 作为守门员,将 AI 视为有提交权限但必须通过所有测试套件的"初级开发人员"。
重 JS 开发模式是指在浏览器运行路径中传输并执行大量 JS 代码的方案。目前"现代 Web 开发"的叙事往往将 React 等框架视为提效利器,认为开发体验的提升最终会惠及用户。然而现实是,大型项目往往比预期更慢,且随着时间推移越发臃肿。
依赖项的开销是性能杀手。JS 开发者重度依赖 npm 仓库,导致 bundle size 失控。例如 moment 库在过去五年增长了 10%,而 react-dom 从 v18 升级到 v19 后体积增加了 33%。
JS 重度模式让"做错事"比"做对事"更容易。在 React 或 Redux 中,添加全局上下文、同步导入大型库或编写低效的选择器都非常简单,但它们会触发不必要的 re-render。
社区认为,虽然 React 的函数式/声明式模型有利于人类理解,但它"贪婪渲染"的本质导致了低效;相比之下,Svelte 或 Vue 使用的信号(Signals)或编译器优化能更精确地更新 DOM。
解决之道是转向以服务器为中心的模型,将计算负担留在服务器上,只向浏览器发送 HTML 结果。虽然 hydration 能缓解白屏,但它依然会带来巨大的 JS 执行延迟。
社区讨论认为,Web 性能的瓶颈有时在于 DOM 本身是为文档而非复杂应用设计的。像 Figma 这样高性能的应用通过 WASM 和 WebGPU 绕过了 DOM 限制。
对于许多用例,传统的服务器端渲染配以少量的"渐进式增强"JS 脚本,无论是在调试便利性、长期可维护性还是用户体验上都更具优势。
Ghidra 是由美国国家安全局研究局开发并维护的开源软件逆向工程框架。该框架提供了一套全功能的分析工具,支持在 Windows、macOS 和 Linux 平台上对编译后的代码进行反汇编、反编译、绘图和脚本编写。
在安全社区中,Ghidra 常被拿来与 IDA Pro 和 Binary Ninja 对比。尽管 IDA 在主流架构的手动逆向和界面交互上被认为更成熟,但 Ghidra 在处理"异形"或过时架构(如 Z80、8051、Tricore)时具有显著优势。这归功于其使用的 SLEIGH 定义,只要定义了处理器规范,即可免费获得反编译输出。
有用户反馈在处理超大型二进制文件(如 600MB 以上)时,Ghidra 的性能扩展性较差,且基于 Java 的架构可能在高负载下崩溃。
社区出现了诸如 GhidrAssist 和多种 MCP 插件,允许分析师调用 Claude 等模型辅助重命名函数或进行初步的安全审计。支持者认为 AI 能极大提高处理"枯燥任务"的效率,尤其是在识别库函数和系统调用方面。但用户也提醒,AI 在处理复杂的间接寻址或混淆代码时仍会给出误导性建议,必须配合人工校验。
对于逆向工程初学者,资深从业者建议不要直接依赖 AI 工具,而是通过编写简单程序并观察其编译后的对象代码来建立直觉。
相关链接: