- बड़े भाषा मॉडल का उपयोग करने वाली reverse engineering
1. LLM4Decompile और Decompile-Eval का परिचय
- हमारा लक्ष्य पहला decompilation-विशेष open source LLM बनाना और जारी करना है, और recompilability तथा re-executability पर फोकस करने वाला पहला decompilation benchmark बनाकर उसकी क्षमताओं का मूल्यांकन करना है.
- AnghaBench से एकत्र किए गए 10 लाख C code samples को GCC का उपयोग करके assembly code में compile किया गया, और इसके आधार पर 4 अरब tokens का assembly-source paired dataset तैयार किया गया.
- इस dataset का उपयोग करके अग्रणी code LLM DeepSeek-Coder model को fine-tune किया गया, और HumanEval प्रश्नों तथा test samples के आधार पर evaluation benchmark Decompile-Eval बनाया गया.
- मूल्यांकन दो दृष्टिकोणों से किया जाता है: क्या decompiled code को सफलतापूर्वक फिर से compile किया जा सकता है, और क्या वह test cases के सभी assertions पास कर सकता है.
2. मूल्यांकन परिणाम
मेट्रिक्स
- recompilability और re-executability decompilation प्रक्रिया की प्रभावशीलता को सत्यापित करने वाले महत्वपूर्ण संकेतक हैं.
- यदि decompiled code को फिर से compile किया जा सकता है, तो यह syntactic integrity का मजबूत प्रमाण देता है.
- केवल syntax से यह सुनिश्चित नहीं होता कि कोड semantic रूप से मूल program के समान है, इसलिए re-executability semantic accuracy का मूल्यांकन करने का महत्वपूर्ण मापदंड है.
- recompilability और re-executability क्रमशः syntax recovery और semantic preservation को दर्शाते हैं, और उपयोगी तथा robust decompilation के लिए ये आवश्यक हैं.
3. मॉडल का उपयोग कैसे करें
- LLM4Decompile में 1.3 अरब से 33 अरब parameters वाले models शामिल हैं, और ये models Hugging Face पर उपलब्ध हैं.
- मॉडल उदाहरण: llm4decompile-1.3b, llm4decompile-6.7b, llm4decompile-33b, llm4decompile-6.7b-nsp, llm4decompile-6.7b-uo
- NSP model को assembly code पर train किया गया है, और इसकी औसत re-executability लगभग 0.17 है.
- UO model को optimization levels (O0~O3) की पूर्व जानकारी के बिना train किया गया है, और इसकी औसत re-executability लगभग 0.21 है.
- मॉडल उपयोग का उदाहरण: C code को binary में compile करें, binary को assembly instructions में disassemble करें, और फिर LLM4Decompile का उपयोग करके assembly instructions को C में translate करें.
4. Decompile-Eval का उपयोग कैसे करें
- डेटा
llm4decompile/decompile-eval/decompile-eval.json में JSON list format में संग्रहीत है.
- single GPU और single process पर evaluation चलाने का तरीका, तथा TGI (10x तेज़ गति, multi-GPU और multi-process support) का उपयोग करने का तरीका उपलब्ध है.
5. प्रगति में
- LLM4Binary: assembly code और C code पर model को pre-train करने के लिए बड़े dataset को शामिल करने की योजना है.
- Decompiler-ALL: अधिक languages/platforms और settings को support करने की योजना है (उदाहरण: multiple function decompilation).
6. लाइसेंस
GN⁺ की राय
- LLM4Decompile पारंपरिक binary decompilation तरीकों की तुलना में एक अभिनव approach प्रस्तुत करता है, खासकर बड़े भाषा मॉडलों का उपयोग करके अधिक सटीक और अधिक efficient decompilation संभव बनाता है.
- यह तकनीक software security क्षेत्र में बहुत उपयोगी हो सकती है, और malware analysis या legacy systems के maintenance में मदद कर सकती है.
- decompiled code की re-executability का पूरी तरह परिपूर्ण न होना यह संकेत देता है कि इस तकनीक में अभी सुधार की गुंजाइश है. वास्तविक वातावरण में accuracy और efficiency बढ़ाने के लिए अतिरिक्त research की आवश्यकता है.
- समान कार्यक्षमता देने वाले मौजूदा tools में Ghidra या IDA Pro जैसे commercial और open source decompilers शामिल हैं, लेकिन LLM4Decompile machine learning आधारित एक नया approach प्रदान करता है.
- इस तकनीक को अपनाते समय training data की quality और range, model accuracy, execution speed आदि पर विचार करना चाहिए. इसके लाभों में उच्च accuracy और flexibility शामिल हैं, जबकि बड़े models की complexity और computing resources की मांग इसकी कमियां हो सकती हैं.
1 टिप्पणियां
Hacker News टिप्पणियाँ
"Re-executability" परिणामों पर राय:
डीकम्पाइल किए गए परिणाम की विश्वसनीयता पर सवाल:
LLM fine-tuning के लिए बेहतरीन use case:
डेवलपर-आधारित decompilation module training में रुचि:
decompiler के आदर्श use case और dataset निर्माण में रुचि:
व्यक्तिगत LLM-आधारित decompiler project का परिचय:
AI-आधारित approaches की non-AI benchmarks से तुलना न होने पर चिंता:
recompilability और re-executability scores के बड़े अंतर पर रुचि:
गैर-LLM decompilers के साथ तुलना को लेकर जिज्ञासा:
6b model का 33b model से बेहतर प्रदर्शन करने पर जिज्ञासा: