LLM4Decompile: Decompiling Binary Code with Large Language Models

本文是LLM系列文章,针对《LLM4Decompile: Decompiling Binary Code with Large Language Models》的翻译。

LLM4Decompile:用大型语言模型分解二进制代码

摘要

反编译旨在将二进制代码转换为高级源代码,但像Ghidra这样的传统工具往往会产生难以读取和执行的结果。受大型语言模型(LLM)进步的启发,我们提出了LLM4Decompile,这是第一个也是最大的开源LLM系列(1.3B到33B),用于反编译二进制代码。我们优化了LLM训练过程,并引入LLM4Decompile-End模型来直接反编译二进制文件。由此产生的模型在HumanEval和ExeBeach基准测试中显著优于GPT-4o和Ghidra超过100%。此外,我们改进了标准细化方法来微调LLM4Decompile Ref模型,使它们能够有效地细化Ghidra的反编译代码,并比LLM4Deccompile End进一步提高16.2%。LLM4Decompile1展示了LLM彻底改变二进制代码反编译的潜力,显著提高了可读性和可执行性,同时补充了传统工具以获得最佳结果。

1 引言

2 相关工作

3 LLM4Decompile

4 实验

5 混淆讨论

6 结论

我们提出了LLM4Decompile,这是第一个也是最大的开源LLM系列,其大小从1.3B到33B不等,用于反编译二进制代码。基于End2end反编译方法,我们优化了LLM训练过程,并引入LLM4Decompile-End模型来直接反编译二进制文件。由此产生的6.7B模型在Hum

LLM4Decompile:基于大语言模型的智能反编译技术实践 反编译是将编译后的二进制机器码或字节码,逆向还原为高级语言源代码的关键技术,在软件安全分析、逆向工程和遗留系统维护中具有重要价值。传统反编译器基于预设的规则和模式匹配工作,面对混淆代码或高优化级别代码时,还原结果的可读性和准确性常面临瓶颈。大语言模型(LLM)通过学习海量代码语料的概率分布和语言模式,为序列到序列的“翻译”任务提供了新的解决思路,能够基于上下文和编程逻辑进行合理推测与补全,从而提升反编译代码的语义准确性和可读性。在工程实践中,通过构建“源代码-低级表示”配对数据对模型进行微调,并设计有效的提 阅读详情

相关推荐

首发:LLM4Decompile反编译大模型的试用实践过程梳理

手把手,一步一步实践LLM4Decompile

qq_34241037的博客 1418

OpenWrt虚拟机磁盘扩容实战:从SquashFS到ext4的完整避坑指南

本文详细介绍了OpenWrt虚拟机磁盘扩容的完整流程,重点对比了SquashFS和ext4文件系统在扩容操作上的关键差异。通过五步安全迁移法和直接分区调整方案,帮助用户有效解决磁盘空间不足问题,同时提供高级技巧和故障排除指南,确保扩容过程顺利无坑。

weixin_29251131的博客 232

FOC电机控制中电流采样延迟补偿的原理和方法

摘要: FOC电机控制中,电流采样、计算与PWM更新存在固有延迟(约1.5个PWM周期),导致相位滞后,限制电流环带宽。主流补偿方法包括: 一阶前向预测法:基于历史电流值预测未来电流,抵消延迟,工程应用广泛; 相位超前补偿:通过s/z域校正器设计实现等效预测; 状态观测器法(如龙伯格观测器):通过电机模型闭环估计状态,兼具噪声抑制和参数辨识能力,但复杂度高。实际需注意参数敏感性、离散化精度及延迟时间校准,避免过补偿风险。一阶预测法因平衡效果与复杂度成为工业首选。

jifengzhiling的博客 2233

别再纠结Dify了!实测对比RAGFlow和Dify,聊聊企业知识库到底该怎么选

本文深度对比了RAGFlow和Dify在企业知识库选型中的实际表现,从技术架构、性能指标、部署成本等多维度进行分析。RAGFlow在复杂文档处理和准确率方面表现突出,适合有专职技术团队的企业;而Dify则以低门槛和快速部署见长。文章提供了六维度评估法,帮助企业根据文档复杂度、准确率要求等技术指标做出明智选择。

weixin_30897233的博客 674

基于CNN的表情识别(FER)pytorch实现

Report for FER Jian Tang Abstract 我们使用卷积神经网络(CNN)实现了baby的面部表情识别(FER)。 数据上,我们获取了开源FER数据集FER2013[1],besides我们使用爬虫获取了baby相关的人脸图片,进行了手工分类标注以形成一个全新的baby FER数据集。 模型上,我们首先复现了Luan[2]的工作,即参考Kuo[3]在CVPR 2018上的工作并实现一个轻量的CNN网络,在FER2013上进行训练并得到了XXXX%的平均分类准确率(avg a

qq_20241587的博客 3684

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

COT思维链的出现,为AI的发展开辟了一条新的道路。它让AI学会了像人类一样思考,将复杂问题分解成简单的步骤,并逐步推理出最终答案。希望我的引导会对你产生启发。

智兔唯新的博客 9003

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2640

SPAD IMX479规格_VOP

对于VOP的定义,很多人可能是不理解这一路的供电,实际上这一路供电是非常重要的,这是给器件SPAD供电,决定SPAD是否work,在大部分的paper以及大部分公司,基本都是叫VOP,名称是SPAD breakdown voltage power supply,严格意义上叫Operating Voltage,工作电压。当然有些公司也有一些其他叫法就不提了。其实大家可以明显的看出,典型值-20.5没有发生变化,市面上绝大多数VOP的典型值也都是在-20V这边。

致力于lidar应用开发 702

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: Tell me the truth: A system to measure the trustworthiness of Large Language Models
下一篇: HealMe: Harnessing Cognitive Reframing in Large Language Models for Psychotherapy
UnknownBody
博客等级 码龄16年 5601粉丝 4741原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值