
IDA, Ghidra, Binary Ninja, और Relyze फ़ाइलों से लेबल निकालें और x64dbg डेटाबेस निर्यात करें। radare2 के मुख्य पते सहित।
यह कमांड LST फ़ाइल में पाए जाने वाले सभी लेबलों को निकालता है जो एकमात्र आर्गुमेंट के रूप में दी जाती है। निकाले गए लेबलों के आधार पर वर्तमान निर्देशिका में एक x64dbg डेटाबेस बनाया जाता है।
LST फ़ाइल IDA में File मेनू से उत्पन्न की जा सकती है: Produce file -> Create LST file...
$ lst2x64dbg sample.lst
यह कमांड CSV फ़ाइल में पाए जाने वाले सभी लेबलों को निकालता है जो एकमात्र आर्गुमेंट के रूप में दी जाती है। निकाले गए लेबलों के आधार पर वर्तमान निर्देशिका में एक x64dbg डेटाबेस बनाया जाता है। imagebase मान प्रदान किया जाना चाहिए।
CSV फ़ाइल Ghidra में Window मेनू से Symbol Table चुनकर उत्पन्न की जा सकती है।
खुलने वाली प्रतीक तालिका विंडो में, डेटा को Location कॉलम के अनुसार क्रमबद्ध करें। फिर उन सभी प्रतीकों को चुनें जो बाहरी स्थान नहीं हैं। वांछित प्रतीकों के चुने जाने पर, राइट क्लिक करें और चुनें: Export -> Export to CSV...
नोट: यदि आप गलती से बाहरी स्थान चुन लेते हैं, तो उन्हें अनदेखा कर दिया जाएगा।

इस फ़ाइल का नाम <module_name>.csv रखें
$ ghidra2x64dbg -i 400000 sample.csv
imagebase मान CodeBrowser विंडो में विघटन पैनल के बिल्कुल ऊपर पाया जा सकता है। यह DOS हैडर का हिस्सा है।

Ghidra में एक विश्लेषण विकल्प है जो डिफ़ॉल्ट रूप से बंद रहता है, जो कुछ स्थितियों में एक नमूने में कोड के लिए अधिक लेबल प्रदान कर सकता है। यह विकल्प, WindowsPE x86 Propagate External Parameters, विश्लेषण विकल्प विंडो में पाया जाता है जब किसी नमूने को पहली बार CodeBrowser टूल में खोला जाता है।

यह कमांड एक एकल आर्गुमेंट के रूप में दिए गए Binary Ninja bnida JSON फ़ाइल में पाए जाने वाले सभी लेबलों को निकालता है। निकाले गए लेबलों के आधार पर वर्तमान निर्देशिका में एक x64dbg डेटाबेस बनाया जाता है। imagebase मान प्रदान किया जाना चाहिए।
Binary Ninja से bnida फ़ाइल उत्पन्न करने के लिए, निर्देशों के अनुसार पहले प्लगइन स्थापित करना होगा:
https://zznop.github.io/bnida/
एक बार जब Binary Ninja में निष्पादन योग्य लोड हो जाता है, तो Tools मेनू पर जाएं और bnida: Export analysis data चुनें।

इस फ़ाइल का नाम <module_name>.json रखें
$ binja2x64dbg -i 400000 sample.json
यह कमांड एक एकल आर्गुमेंट के रूप में दिए गए Relyze द्वारा उत्पन्न x64dbg डेटाबेस में पाए जाने वाले सभी लेबलों को निकालता है। निकाले गए लेबलों के आधार पर वर्तमान निर्देशिका में एक x64dbg डेटाबेस बनाया जाता है।
Relyze में x64dbg डेटाबेस उत्पन्न करने के लिए, बस निष्पादन योग्य खोलें और Code दृश्य में, राइट क्लिक करें और निर्यात करें।

इस फ़ाइल का नाम <module_name>_relyze.dd32 या <module_name>_relyze.dd64 रखें
$ relyze2x64dbg sample_relyze.dd32
दोनों कमांड अब radare2 द्वारा पता लगाए गए main() के स्थान को शामिल करने का समर्थन करते हैं। बस किसी भी कमांड में -r या -main जोड़ें जैसे:
$ lst2x64dbg -r 0x0040a53a sample.lst
Cutter के UI या radare2 कमांड लाइन से main के लिए वर्चुअल एड्रेस काटकर चिपकाएं।

ये प्रत्येक उपकरण वर्तमान निर्देशिका में किसी पिछले रन द्वारा बनाए गए x64dbg डेटाबेस की जाँच करेगा। उस डेटाबेस से कोई भी ऑफ़सेट जिसमें पहले से एक लेबल है, किसी भी उपकरण के बाद के रन से नहीं बदला जाएगा। दूसरे शब्दों में, प्रत्येक उपकरण लेबलों की सूची का विस्तार करता है, लेकिन पहले से मौजूद किसी भी लेबल को ओवरराइट नहीं करता है।
यदि आपने मैन्युअल रूप से लेबल बनाए हैं, तो अनुशंसा की जाती है कि उन्हें केवल एक विघटनकर्ता में बनाएं। साथ ही, उस विघटनकर्ता के आउटपुट को उपरोक्त उपकरणों में से किसी एक द्वारा संसाधित किए जाने वाले पहले आउटपुट के रूप में बनाएं। इस तरह आपके सभी कस्टम लेबल नए x64dbg डेटाबेस में मौजूद रहने की गारंटी है।
इस सॉफ़्टवेयर के भविष्य के संस्करण में प्रसंस्करण के मर्ज चरण पर संघर्ष समाधान का एक तरीका होगा।