
PDF फ़ाइलों में गहराई से जाने के लिए GUI विश्लेषक। दुर्भावनापूर्ण पेलोड का पता लगाएं, ऑब्जेक्ट संबंधों को समझें, और खतरे के विश्लेषण के लिए मुख्य जानकारी निकालें।
इंटरैक्टिव PDF विश्लेषण (जिसे IPA भी कहा जाता है) किसी भी शोधकर्ता को किसी भी PDF फ़ाइल के आंतरिक विवरणों का पता लगाने की अनुमति देता है। PDF फ़ाइलों का उपयोग कमज़ोरियों का शोषण करने वाले दुर्भावनापूर्ण पेलोड ले जाने के लिए किया जा सकता है, और PDF व्यूअर के मुद्दों के लिए, या सोशल इंजीनियरिंग आर्टिफ़ैक्ट के रूप में फ़िशिंग अभियानों में उपयोग किया जा सकता है। इस सॉफ़्टवेयर का लक्ष्य किसी भी विश्लेषक को स्वयं PDF फ़ाइल की गहराई में जाने देने में सक्षम बनाना है। IPA के माध्यम से, आप PDF फ़ाइलों से महत्वपूर्ण पेलोड निकाल सकते हैं, ऑब्जेक्ट्स के बीच संबंधों को समझ सकते हैं, और उन तत्वों का अनुमान लगा सकते हैं जो दुर्भावनापूर्ण या अविश्वसनीय पेलोड के ट्राइएज के लिए सहायक हो सकते हैं।
मुख्य प्रेरणा Zynamics के पीछे के शानदार लोगों और उनके उत्कृष्ट उत्पाद, जिसे PDF dissector कहा जाता है, से मिली है।
जब मैंने मैलवेयर को रिवर्स इंजीनियर करना शुरू किया, तो दुर्भावनापूर्ण पेलोड के विश्लेषण के लिए उपलब्ध मुख्य उपकरण Didier Stevens के उत्कृष्ट टूल्स थे। एक de facto मानक बन जाने के बाद, इन टूल्स की मुख्य समस्याओं में से एक यह तथ्य था कि इन्हें कमांड लाइन से उपयोग किया जा सकता था, जिसमें फ़्लैग्स के एक बहुत बड़े संयोजन को याद रखना पड़ता था, और विभिन्न ऑब्जेक्ट्स की संख्याओं की रिपोर्टिंग करनी पड़ती थी। हालाँकि विश्लेषकों और डेवलपर्स को दैनिक आधार पर सभी प्रकार के कमांड-लाइन टूल्स से जूझना पड़ता है, इसका मतलब यह नहीं है कि हम एक नया ग्राफ़िकल फ़ाइल निरीक्षण टूल नहीं बना सकते।
वास्तव में, स्टैटिक विश्लेषण और रिवर्स इंजीनियरिंग के क्षेत्रों का एक हिस्सा उपयोगकर्ता अनुभव के दृष्टिकोण से विश्लेषक को सबसे प्रमुख जानकारी कैसे प्रदर्शित की जाए, इस पर भी केंद्रित है। Didier Stevens के टूल्स, साथ ही peepdf, पहले से ही उपयोग किए जाते हैं और अच्छी तरह से परखे हुए हैं। हालाँकि, विश्लेषक कुछ ग्राफ़िकल का उपयोग कर सकता है ताकि वह विभिन्न ऑब्जेक्ट्स के बीच संबंध को समझ सके, यह समझ सके कि वे किन पृष्ठों को संदर्भित करते हैं और कौन से ऑब्जेक्ट प्रकार (छवियाँ, फ़ॉन्ट, रंग, मेटाडेटा), स्ट्रीम सामग्री को सरल तरीके से निर्यात कर सके और डिक्शनरी की सामग्री को तालिका रूप में देख सके।
मुख्य प्रेरणा का स्रोत Zynamics द्वारा विकसित PDF-dissector नामक टूल से आता है: कुछ पूर्व उपयोगकर्ताओं से मिली उत्कृष्ट प्रतिक्रिया और इसे ओपन सोर्स जारी करने की लगातार मांगों ने मुझे इस टूल को बनाने में कुछ दिन बिताने के लिए प्रेरित किया।
इस टूल को Rust और cargo के साथ संकलित किया जा सकता है। Rust के अलावा, और खींचे गए crates के अलावा, किसी निर्भरता की आवश्यकता नहीं है।
git clone https://github.com/seekbytes/IPA
cd IPA
## compile with debug symbols, the binary is inside ./target/debug/IPA
cargo b
## compile in release mode, the binary is inside ./target/release IPA
cargo b --release
फ़िलहाल IPA की निम्नलिखित सीमाएँ हैं:
अंत में, इस टूल को वास्तव में बेहतर बनाया जा सकता है और मुझे पूरा यकीन है कि कुछ लोग नोटिस करेंगे कि मेरा कोड कितना खराब है। यदि आप उनमें से एक हैं, तो कृपया मुझे संभावित सुधारों, बेहतर पैटर्न, और किसी भी सुझाव के बारे में बताएं।
यदि आपके पास कोई समस्या, सुधार हैं, या आप बस मुझे संदेश भेजना चाहते हैं, तो [email protected] पर ईमेल करें।