
Golang बाइनरीज़ पर Imphash-जैसी गणना
gimphash एक प्रस्तावित विधि है जो Go बाइनरीज़ के लिए imphash के समतुल्य की गणना करती है। इसका अर्थ है Go-import-hash।
Golang बाइनरीज़ में उनकी निर्भरताएँ एक्ज़ीक्यूटेबल के हिस्से के रूप में शामिल होती हैं। इन निर्भरताओं में मानक लाइब्रेरी पैकेज और तृतीय-पक्ष निर्भरताएँ दोनों शामिल हैं, और इनका उपयोग, क्लासिकल imphash के अनुरूप, किसी Golang प्रोजेक्ट की पहचान करने के लिए किया जा सकता है।
प्रत्येक Golang बाइनरी का हिस्सा pclntab का उपयोग करके निर्भरताओं को सूचीबद्ध किया जा सकता है (Mandiant द्वारा लिखित यह ब्लॉग पोस्ट भी देखें)। pclntab में रिवर्स इंजीनियरिंग के लिए कई दिलचस्प तत्व होते हैं; gimphash के लिए हम उसमें मौजूद फ़ंक्शन नामों का उपयोग करेंगे।
go. या type. से शुरू होने वाले फ़ंक्शन नामों को अनदेखा करें (कंपाइल आर्टिफ़ैक्ट, रनटाइम आंतरिक)vendor/ शामिल है, तो उस सबस्ट्रिंग और उससे पहले की सभी चीज़ों को हटा दें
(उदा. vendor/golang.org/x/text को golang.org/x/text में बदलें)internal/ वाले फ़ंक्शन नामों को अनदेखा करेंruntimesyncsyscalltypetimeunicodereflectstrconv/ खोजें। यदि कोई / नहीं मिलता है, तो इसके बजाय आरंभ का उपयोग करें। उस स्थिति से शुरू करके, अगला . खोजें।. के बाद की सभी चीज़ों को मूल फ़ंक्शन नाम के रूप में निकालें। यदि कोई . नहीं मिला, तो पिछले चरण में गणना किए गए / इंडेक्स के बाद की सभी चीज़ों का उपयोग करें।. मौजूद है, तो फ़ंक्शन को अनदेखा करें यदि उस . के बाद पहला अल्फ़ान्यूमेरिक वर्ण लोअर केस है।इस रिपॉज़िटरी में निम्नलिखित भाषाओं में प्रूफ ऑफ कॉन्सेप्ट कोड शामिल है:
रिलीज़ अनुभाग में Windows और Linux के लिए प्रीबिल्ट बाइनरीज़ शामिल हैं।
एकल फ़ाइल पर Gimphash कैलकुलेटर चलाएँ
./c_gimphash_linux /mnt/malware-repo/Godoh/godoh-windows64.exe
8200e76e42c4e9cf2bb308d76c017cbdcde5cbbf95e99e02b14d05e7b21505f3 /mnt/mal/Godoh/godoh-windows64.exe
मैलवेयर रिपॉज़िटरी पर Gimphash कैलकुलेटर चलाएँ
find /mnt/malware-repo/ -type f -exec ./go_gimphash_linux {} \; 2>/dev/null
...
