LLM4Decompile icon indicating copy to clipboard operation
LLM4Decompile copied to clipboard

Binary Matching Decompile

Open Cofflag opened this issue 6 months ago • 1 comments

我看到评论区中有涉及到评估反编译的代码版本与原始版本相比的质量问题,我个人觉得可以考虑,在采用相同的编译选项再次编译反编译的代码后,比较生成的二进制文件与原始文件的相似性。实际上,这种方法也是在没有源码的情况下,逆向工程的最高追求。如果可以编译出二进制一致的可执行文件,则反编译代码的语义肯定和原始代码一致。至于给符号以合理的命名,则可以单独评估,因为编译器并不理解符号,它只记录符号的类型和地址这些信息。我本人有在做类似的工程 https://github.com/Cofflag/csm3 这个工程就需要人工将汇编翻译成c语言后再编译回去,直到二进制文件一致。

Cofflag avatar Jun 22 '25 15:06 Cofflag

汇编相似性我们也有考虑,但在反编译中,无法事先知道各类编译选项,直接对比匹配度很低。最终又回到用大模型抽象asm的embdding,比较embd相似了。后续我们考虑codealignd-helix这类评估方式,有兴趣可以看看一起讨论~

albertan017 avatar Jun 23 '25 03:06 albertan017