
IDA Pro utilities from FLARE team
कोड ग्राफ्टर एक IDA Python स्क्रिप्ट है जो IDA Pro के Bochs IDB Mode का उपयोग करके Windows API फंक्शन्स को इम्पोर्ट करने वाले कोड को एमुलेट करना संभव बनाती है। एमुलेशन वातावरण जैसे Bochs IDB mode इम्पोर्ट किए गए फंक्शन्स को हल या एमुलेट नहीं करते, जिसके परिणामस्वरूप अपवाद और कुछ कोड के साथ एमुलेशन का उपयोग करने में असमर्थता होती है। कोड ग्राफ्टर Windows API फंक्शन्स के एक उपसमूह के लिए opcodes और डेटा डालकर इम्पोर्ट किए गए Windows API फंक्शन्स के एक छोटे उपसमूह को लागू करके इस समस्या का समाधान करता है। कोड ग्राफ्टर उन फंक्शन्स को लक्षित करता है जिनमें तुच्छ कार्यान्वयन होते हैं जो आमतौर पर स्ट्रिंग डिकोडिंग और मैलवेयर अनपैकिंग से जुड़े होते हैं। विशेष रूप से इस प्रकार के कोड के साथ Bochs IDB Mode का उपयोग करने में सक्षम होना स्ट्रिंग्स के आकस्मिक डिकोडिंग और पेलोड के अनपैकिंग/डंपिंग को सक्षम बनाता है, बिना एंटी-रिवर्स इंजीनियरिंग, सबप्रोसेस डिबगिंग आदि जैसी चिंताओं को संबोधित किए।
फ़ाइल function_replacements.c में सरल स्ट्रिंग डिकोडिंग और मैलवेयर अनपैकिंग रूटीन से जुड़े कई फंक्शन्स के कॉम्पैक्ट C कार्यान्वयन शामिल हैं। यह संदर्भ के लिए प्रदान किया गया है।
function_replacements.c को कंपाइल करने के बाद, प्रासंगिक फंक्शन opcodes को mykutils.py (flare-ida रिपॉजिटरी में /python/flare के अंतर्गत स्थित) से emit_fnbytes_python() का उपयोग करके निकाला गया। फिर opcodes को code_grafter.py (भी /python/flare में) में फंक्शन कार्यान्वयन की लाइब्रेरी में Python स्ट्रिंग्स के रूप में जोड़ा गया।