LLM4Decompile 是一款开源大型语言模型,专注于反编译工作,根据公开资料显示:根据公开资料显示:LLM4Decompile具备将二进制文件反编译为C语言代码的能力,并在著名的HumanEval 数据集上取得了21%的反编译通过率,相较于GPT4反编译能力提升了50%。LLM4Decompile项目采用了AnghaBench 的一百万个函数作为训练数据,针对Linux x86_64平台,使用GCC编译器并在不同优化级别(O0-O3)下将源码编译为二进制文件。随后通过objdump指令,将二进制文件反汇编为汇编指令,与原始代码组成匹配的数据对。该项目基于DeepSeek-Coder进行了模型sequence-to-sequence微调,以汇编指令作为输入,计算反编译结果与源码之间的的Cross Entropy Loss。通过不断优化损失函数,项目训练了一系列规模从13亿到330亿的大型模型。
基于此,我们将其内容进行了实践,现在将其试用过程的一些关键点进行介绍:
论文地址:https://arxiv.org/abs/2403.05286
代码地址:https://github.com/albertan017/LLM4Decompile
首先,在github找到代码位置:
然后,我们开始进行实操:
1.搭建基础环境1.python3,我用的是3.12.4
2.安装Anaconda,命令行图形化界面都行。
按照指引,执行以下命令:
cd LLM4Decompile
conda create -n 'llm4decompile' python=3.9 -y
conda activate llm4decompile
pip install -r requirements.txt
注意,如果执行最后一句(pip install)如果有些依赖没有成功,可以暂时忽略,可以打开
requirements.txt找到里面的依赖,一个一