
把二進制變回 C 代碼LLM4Decompile 大模型反編譯快速上手指南【免費下載鏈接】LLM4DecompileReverse Engineering: Decompiling Binary Code with Large Language Models項目地址: https://gitcode.com/GitHub_Trending/ll/LLM4Decompile老系統(tǒng)丟了源碼或者手里只有第三方庫的編譯產物需要搞清里面的代碼到底在干什么LLM4Decompile 用大語言模型做二進制反編譯把 Linux x86_64 二進制還原成可讀的 C 代碼適合逆向工程師、安全研究人員和遺留系統(tǒng)維護者。模型權重、訓練數據與評測腳本全部開源。 為什么值得試 LLM4Decompile它是專用反編譯模型不是通用聊天機器人。通用大模型很少見過二進制讓它反編譯基本只能靠猜。LLM4Decompile 有專門的二進制-源碼配對訓練集decompile-bench 數據集從 1 億條采集到的函數對中濃縮出 200 萬條高質量配對另留 7 萬條做評測指標是再執(zhí)行率——反編譯出的代碼必須真的能通過測試用例而不是看起來像。兩條路線可選效果差一檔。V1.5 系列End直接把匯編翻譯成 CV2 系列Ref讓模型潤色 Ghidra 先寫好的偽代碼草稿效果更好。模型參數量再執(zhí)行率模型輸入llm4decompile-6.7b-v1.56.7B45.4%匯編指令llm4decompile-6.7b-v26.7B52.7%Ghidra 偽代碼llm4decompile-9b-v29B64.9%Ghidra 偽代碼 三步跑起來 LLM4Decompile裝環(huán)境克隆倉庫并安裝依賴。README 建議 Python 3.9官方做法是先用 conda 建好隔離環(huán)境再安裝git clone https://gitcode.com/GitHub_Trending/ll/LLM4Decompile cd LLM4Decompile pip install -r requirements.txt做預處理用 GCC 把你的 C 代碼編譯成二進制再用 objdump 反匯編成匯編截取目標函數。最終輸入形如函數名:加若干指令行外面套上兩行固定提示# This is the assembly code:和# What is the source code?。主 README 給出了完整的預處理與推理代碼只需替換函數名和文件路徑。跑推理或跑 demo模型需要 CUDA GPU以 bfloat16 精度加載。嫌環(huán)境麻煩可以用倉庫自帶的 Docker 鏡像里面預裝好 Ghidra 和 OpenJDK 17構建后用docker run --gpus all進入容器直接執(zhí)行ghidra/demo.py就能看到Ghidra 偽代碼 → 模型潤色的完整效果。 二進制反編譯是怎么實現的先明確一點LLM 只懂文本沒法直接處理 0/1 流。所以項目先用 objdump 把二進制反匯編成匯編——二進制與匯編可互轉、信息等價——再把匯編進、C 代碼出當成純粹的文本翻譯任務。訓練過程正好是編譯的逆過程源碼經過預處理、編譯、匯編、鏈接變成二進制再反匯編回匯編模型從這些匯編 → 源碼配對上學習把譯文翻回原文損失直接對原始源碼計算??梢赃@樣類比編譯器是位把中文譯成英文的譯者反編譯模型則是從海量譯文對照里學會把英文翻回中文。V2 的 Ref 路線走了條近路Ghidra 先把二進制拆成偽代碼邏輯大體對但變量全是 local_28語法也別扭模型的任務就是給這份半成品潤色成能編譯的 C。兩條路線的推理代碼寫法相同只是輸入不同——主 README 的預處理腳本走 objdumpghidra/目錄的demo.py調 Ghidra Headless。 項目里哪些目錄值得看ghidra/Ref 路線的入口demo.py一個腳本走完編譯 → Ghidra 反編譯 → 模型潤色全流程是看效果最快的地方。decompile-bench/訓練與評測數據外加再執(zhí)行率、編輯相似度兩個指標腳本拿來對自己的輸出打分很方便。sk2decompile/2025 年新增的兩階段框架實現把恢復函數結構和給變量起名拆成兩個模型含數據預處理、訓練配置與強化學習獎勵函數。?? 二進制反編譯的避坑指南只支持 Linux x86_64。優(yōu)化級別覆蓋 GCC 的 O0 到 O3其他架構和平臺的產物沒有驗證過README 也說明更多架構還在逐步支持中。V1.5 與 V2 輸入不通用。前者要 objdump 匯編后者要 Ghidra 偽代碼評測數據文件也分decompile-eval-executable-gcc-obj.json和-gcc-ghidra.json兩份配錯文件結果沒法解釋。留意 token 長度。模型最大序列 4096調generate時max_new_tokens要留在這個范圍以內過長的函數建議先拆分。 看完項目還能做什么如果只有一張 A100 40G可以從 decompile-ghidra-100k 子集開始復現官方腳本約 3.5 小時訓完GPU 花費不到 20 美元就能得到一個可用的 Ref 模型是理解整套訓練管線成本最低的入口?!久赓M下載鏈接】LLM4DecompileReverse Engineering: Decompiling Binary Code with Large Language Models項目地址: https://gitcode.com/GitHub_Trending/ll/LLM4Decompile創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考