
diaphora v3.4.2
Diaphora, सबसे उन्नत मुफ्त और ओपन सोर्स प्रोग्राम डिफिंग टूल।
δiaphora
स्थापना (Installation)
Hex-Rays प्लगइन प्रबंधक के साथ स्थापित करें:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.4.2.zip
मैन्युअल स्थापना निर्देश नीचे दिए गए हैं।
Diaphora (διαφορά, ग्रीक में 'अंतर' का अर्थ) संस्करण 3.4 आज (2026) उपलब्ध सबसे उन्नत प्रोग्राम डिफिंग (diffing) टूल है (जो IDA प्लगइन के रूप में कार्य करता है)। इसे पहली बार SyScan 2015 के दौरान जारी किया गया था और तब से इसे सक्रिय रूप से अनुरक्षित किया जा रहा है; Diaphora को पिछले 11 वर्षों से IDA 6.8 से 9.4 तक के हर छोटे संस्करण के लिए पोर्ट किया गया है।
Diaphora IDA >= 7.4 के संस्करणों का समर्थन करता है क्योंकि कोड केवल Python 3.X में चलता है (Python 3.11 अंतिम परीक्षित संस्करण था)।
अनोखी विशेषताएँ
Diaphora में प्रोग्राम डिफिंग (bindiffing) की कई सामान्य विशेषताएँ हैं जिनकी आप अपेक्षा कर सकते हैं, जैसे:
- असेंबलर डिफिंग।
- कंट्रोल फ्लो ग्राफ़ डिफिंग।
- प्रतीक नामों और टिप्पणियों को पोर्ट करना।
- मैन्युअल मैच जोड़ना।
- समानता अनुपात गणना।
- बैच स्वचालन।
- कॉल ग्राफ़ मैचिंग गणना।
- ग्राफ़ सिद्धांत, असेंबलर, बाइट्स, फ़ंक्शन सुविधाओं आदि पर आधारित दर्जनों ह्युरिस्टिक्स...
हालाँकि, Diaphora में कई ऐसी विशेषताएँ भी हैं जो अनोखी हैं और किसी अन्य सार्वजनिक टूल में उपलब्ध नहीं हैं। निम्नलिखित अनोखी विशेषताओं की एक गैर-विस्तृत सूची है:
- स्ट्रक्चर, एनम, यूनियन और टाइपडेफ़ पोर्ट करने की क्षमता।
- पैच डिफिंग सत्रों के लिए संभावित रूप से स्थिर किए गए भेद्यता का पता लगाना।
- कंपाइलेशन यूनिटों के लिए समर्थन (कंपाइलेशन यूनिटों को ढूँढना और डिफ करना)।
- माइक्रोकोड समर्थन।
- समानांतर डिफिंग।
- स्यूडो-कोड आधारित ह्युरिस्टिक्स।
- स्यूडो-कोड पैच निर्माण।
- स्यूडो-कोड डिफिंग (सिंटैक्स हाइलाइटिंग के साथ!)।
- स्क्रिप्टिंग समर्थन (निर्यात और डिफिंग दोनों प्रक्रियाओं के लिए)।
- ...
स्थापना (Installation)
Diaphora को किसी स्थापना की आवश्यकता नहीं है: बस कोड डाउनलोड करें और IDA के भीतर या कमांड लाइन पर स्क्रिप्ट diaphora.py चलाएँ (केवल पहले से निर्यात किए गए डेटाबेस को डिफ करने के लिए)। हालाँकि, इसे निम्नलिखित कार्य करके प्लगइन के रूप में IDA में एकीकृत किया जा सकता है:
plugins/diaphora_plugin.pyऔरplugins/diaphora_plugin.cfgको IDA के प्लगइन निर्देशिका में कॉपी करें।diaphora_plugin.cfgको संपादित करें और पथ मान को Diaphora की निर्देशिका पर सेट करें।
दान (Donations)
आप Diaphora के लेखक की मदद (या धन्यवाद) दान करके कर सकते हैं। यदि आप ऐसा करना चाहते हैं तो आप निम्नलिखित लिंक में से किसी एक का उपयोग कर सकते हैं:
समर्थन (Support)
यदि आपको कोई समस्या है या सहायता चाहिए तो बेझिझक Github पर issues खोलें। यदि आप संवादात्मक रूप से चैट करना पसंद करते हैं, तो आप निम्नलिखित Discord चैनल का उपयोग कर सकते हैं: https://discord.gg/atg34w2xjV
लाइसेंसिंग (Licensing)
Diaphora के 1.2.4 से पहले के संस्करण, जिनमें संस्करण 1.2.4 भी शामिल है, GNU GPL संस्करण 3 के अंतर्गत लाइसेंस प्राप्त थे। संस्करण 2.0 के बाद से, Diaphora अब GNU Affero GPL संस्करण 3 लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। लाइसेंस इसलिए बदला गया है ताकि Diaphora को संशोधित और अनुकूलित करने वाली कंपनियाँ इन संशोधित संस्करणों के आधार पर वेब सेवाएँ प्रदान न कर सकें, जब तक कि वे परिवर्तनों को वापस योगदान न करें।
99.99% उपयोगकर्ताओं के लिए, लाइसेंस परिवर्तन उन्हें बिल्कुल प्रभावित नहीं करता। यदि आपकी कंपनी को एक अलग लाइसेंसिंग मॉडल की आवश्यकता है, तो अगला अनुभाग देखें...
व्यावसायिक समर्थन और परामर्श (Commercial Support and Consultancy)
कानूनी कंपनियों के लिए व्यावसायिक समर्थन और परामर्श की पेशकश की जाती है। यदि आपको अपने लक्ष्य से संबंधित समस्याओं के लिए समर्थन या परामर्श की आवश्यकता है, Diaphora पर आधारित उत्पाद विकसित करने के लिए, अपने स्वयं के टूल के साथ आंतरिक रूप से Diaphora का उपयोग करने के लिए, साहित्यिक चोरी (plagiarism) का पता लगाने वाली परियोजनाओं के लिए, आदि... तो आप अधिक जानकारी के लिए मुझसे [email protected] पर संपर्क कर सकते हैं।
लाइसेंसिंग समस्याएँ (Licensing problems)
यदि आपकी कंपनी AGPL लाइसेंस का उपयोग करने की अनुमति नहीं देती है, तो आप अपनी कंपनी में उपयोग करने के लिए या जिस भी कंपनी में आप कार्य करते हैं वहाँ एक विशेष उपयोगकर्ता के रूप में उपयोग करने के लिए Diaphora के व्यावसायिक लाइसेंस प्राप्त कर सकते हैं (IDA के नामित लाइसेंस के समान अवधारणा)। अधिक जानकारी के लिए, कृपया मुझसे [email protected] पर संपर्क करें।
कृपया याद रखें कि यह मैं नहीं हूँ जो आपको Diaphora का उपयोग करने से रोक रहा है: यह आपकी कंपनी है। आपकी समझ के लिए धन्यवाद।
विकी (Wiki)
यदि आप निर्यात या डिफिंग प्रक्रिया को स्वचालित करने का तरीका ढूँढ रहे हैं, या आप संचालन को तेज़ करना चाहते हैं, आदि... तो आप विकी पर एक नज़र डालना चाह सकते हैं जहाँ ऐसे प्रश्नों के उत्तर दिए गए हैं।
स्क्रीनशॉट (Screenshots)
Diaphora उस सटीक फ़ंक्शन को ढूँढ रहा है जहाँ CVE-2020-1350 में एक भेद्यता को पैच किया गया था:

Diaphora, फिर से, उस सटीक फ़ंक्शन को ढूँढ रहा है जहाँ CVE-2023-28231 को ठीक किया गया था:

CVE-2023-28231। जैसा कि ZDI के एक ब्लॉग में समझाया गया है, भेद्यता को यह जाँच कर ठीक किया गया था कि "ProcessRelayForwardMessage()" में रिले फ़ॉरवर्ड संदेशों की संख्या 32 (0x20) से बड़ी या उसके बराबर नहीं है, जैसा कि निम्नलिखित स्यूडो-कोड डिफिंग में दिखाया गया है:

Diaphora Hex-Ray की माइक्रोकोड डिफिंग कर रहा है:

असेंबली, स्यूडो-कोड और माइक्रोकोड डिफिंग:

Diaphora 3.0 के साथ CVE-2023-21768 की डिफिंग:

यह Diaphora द्वारा PEGASUS iOS कर्नेल भेद्यता की डिफिंग का एक स्क्रीनशॉट है जिसे iOS 9.3.5 में ठीक किया गया था:
और यह Diaphora द्वारा Microsoft बुलेटिन MS15-034 की डिफिंग का एक पुराना स्क्रीनशॉट है:
Diaphora diffing MS15-034
ये Diaphora द्वारा Microsoft बुलेटिन MS15-050 की डिफिंग के कुछ स्क्रीनशॉट हैं, जो Alex Ionescu के ब्लॉग पोस्ट Analyzing MS15-050 With Diaphora से लिए गए हैं।

यहाँ Diaphora द्वारा iOS 10.3.3 के iBoot की iOS 11.0 के विरुद्ध डिफिंग का एक स्क्रीनशॉट है: