返回

文章详情

Kuna:编译代理时代的反编译器开发

Hacker News2026年7月30日 02:41

博客背景、发布Kuna的动机和思考,这是一款为自主优化设计的新型以代理为中心的反编译器。今天,我发布了Kuna,一个我在暑期期间开发的实验性反编译器,此时我在空军研究实验室(AFRL)担任访问教授研究员,并且在Metalware担任研究员。然而,当我说我一直在开发时,我需要澄清的是,这个项目中的几乎每一行代码都是由一个大型语言模型(LLM)编写的。不过,按现在的情况来看,这款反编译器在C程序的控制流结构化方面,可以与行业标准IDA Pro(9.2)相抗衡:在最近的基准测试结果中,Kuna在44.4%的函数上实现了完美的结构化,而IDA的结果为45.7%。这在很大程度上是通过自主优化实现的:LLM研究了那些在基本指标上表现不如IDA Pro的示例,这些指标仅在过去几年内才出现。通过这种策略,它可以有效地学习另一个反编译器如何通过反复试验解决困难问题。IDA Pro并不是在这个改进过程中唯一研究的反编译器。这个大规模的优化实验还涉及了Ghidra和angr反编译器;我整个博士期间都是后者的核心开发者。这个学习方法使LLM能够在Kuna中重新实现angr的20多个基本功能,而这些功能是我们通过反编译的科学进步设计出来的。我强调这一切是为了澄清这个项目不仅仅是粗制滥造:它是一种真正的实验性方法,旨在开发一种科学上有趣的工具,使其自动变得更好。Kuna和Hex-Rays的代码片段显示了流行的angr开关特性。尽管如此,我也想承认这种方法的局限性,以及这项工作可能对研究社区产生的影响。首先,Kuna的实现要归功于数十年来科学家和工程师在反编译研究方面的努力。事实上,Kuna是对NSA的Ghidra的Rust移植,经过重新设计以更接近angr的流程。这也是我不打算很快离开angr反编译器的原因。angr反编译器仍然是我开发前沿算法时首选的工具,因为它就是为此而设计的。另一方面,Kuna则是一个实验,旨在仅通过高水平的科学反馈来看能做些什么。此时,在Kuna中手动编写任何内容都会难得多。Kuna需要angr(以及其他开源研究),我希望在未来,angr也能需要Kuna(如果实验成功的话)。其次,Kuna需要科学洞察才能开始“自动”优化,这也解释了为什么迄今为止没有其他反编译器实现这一点(据我所知)。达到这一点需要发现新的基本指标,研究与人类逆向工程价值相一致的东西,并经过多年的积累洞察来理解一个有意义的基准所需的数据。要点是:这也不是自动化研究;它需要由人类主导的研究。最后,还有很多进展需要在这个反编译器中取得。我们在结构化方面做得不错,但反编译不仅仅是结构化!我们需要改进类型、优化、可重编译性、变量识别……你懂的。毕竟,这还是一个实验,看看在我们使用的框架下实现所有这些是否可能。我(我们)非常希望得到你的帮助。如果你对Kuna的内部工作、项目的目标或自动改进的工作原理感兴趣,请查看代码或等待更技术性的后续帖子。与往常一样,我想感谢那些帮助我完善想法并推动研究的人。我的博士导师Fish和Yan是我研究最大的灵感来源。我也感激Metalware、AFRL和国防部的见解,这些都帮助我的研究产生影响。下次实验的检查点见!

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡