
B2R2 एक पूरी तरह से प्रबंधित बाइनरी विश्लेषण ढांचा है जो F# में लिखा गया है। यह रिवर्स इंजीनियरिंग, प्रोग्राम विश्लेषण और बाइनरी-स्तरीय निरीक्षण के लिए एल्गोरिदम, फ़ंक्शन और उपकरणों का एक समृद्ध सेट प्रदान करता है।

B2R2 एक पूरी तरह से प्रबंधित बाइनरी विश्लेषण ढांचा है जो F# में लिखा गया है। यह रिवर्स इंजीनियरिंग, प्रोग्राम विश्लेषण और बाइनरी-स्तरीय निरीक्षण के लिए एल्गोरिदम, फ़ंक्शन और टूल का एक समृद्ध सेट प्रदान करता है।
B2R2 नाम R2-D2 से प्रेरित है, जो स्टार वार्स का प्रतिष्ठित रोबोट है। मूल रूप से B2-R2 नामित, इस परियोजना ने बाद में डैश-मुक्त रूप B2R2 को अपनाया क्योंकि .NET पहचानकर्ता और नामस्थान हाइफ़न की अनुमति नहीं देते हैं। यह नाम परियोजना के उद्देश्य को दर्शाता है: "B" और "2" बाइनरी और दो-अवस्था गणना का सुझाव देते हैं, जबकि "R" रिवर्सिंग के लिए खड़ा है। संक्षेप में, B2R2 बाइनरी रिवर्सिंग के लिए बनाया गया है।
B2R2 विश्लेषण-अनुकूल है: यह F# में लिखा गया है, एक ऐसी भाषा जो पैटर्न मैचिंग, बीजगणितीय डेटा प्रकार और अभिव्यंजक कार्यात्मक अमूर्तता जैसी सुविधाओं के कारण प्रोग्राम विश्लेषक बनाने के लिए उपयुक्त है।
B2R2 तेज़ है: इसका मुख्य बाइनरी विश्लेषण इंजन दक्षता के लिए डिज़ाइन किया गया है और कार्यात्मक-प्रथम शैली में लिखा गया है। यह इसे सामान्य विश्लेषण कार्यों जैसे निर्देश लिफ्टिंग और CFG पुनर्प्राप्ति में शुद्ध समानता के लिए एक स्वाभाविक विकल्प बनाता है।
B2R2 उपयोग करने में आसान है: पूरी तरह से प्रबंधित लाइब्रेरी के रूप में, यह जटिल मूल निर्भरता सेटअप से बचाता है। .NET SDK स्थापित करें, और आप जाने के लिए तैयार हैं। मूल IntelliSense समर्थन भी API को एक्सप्लोर करना आसान बनाता है।
B2R2 OS-स्वतंत्र है: यह Linux, macOS और Windows के साथ-साथ .NET द्वारा समर्थित किसी भी अन्य प्लेटफ़ॉर्म पर काम करता है।
B2R2 अंतर्संचालनीय है: यह एक ही प्रोग्रामिंग भाषा से बंधा नहीं है। सिद्धांत रूप में, B2R2 API का उपयोग किसी भी CLI-समर्थित भाषा से किया जा सकता है।
B2R2 निर्देश पार्सिंग, बाइनरी डिसअसेंबली, असेंबली, नियंत्रण-प्रवाह पुनर्प्राप्ति और बाइनरी विश्लेषण के लिए अन्य मुख्य निर्माण खंडों का समर्थन करता है। इसमें readelf और objdump के समान कई उपयोगकर्ता-मुख्य कमांड-लाइन टूल भी शामिल हैं, जबकि यह प्लेटफ़ॉर्म-अज्ञेय बना हुआ है। B2R2 वर्तमान में चार बाइनरी फ़ाइल स्वरूपों का समर्थन करता है: ELF, PE, Mach-O और WebAssembly।
नीचे दी गई तालिका B2R2 द्वारा वर्तमान में समर्थित सुविधाओं का सारांश प्रस्तुत करती है। कुछ क्षेत्र अभी भी प्रगति पर हैं, और योगदान का स्वागत है। पुल अनुरोध खोलने से पहले, कृपया हमारी योगदान दिशानिर्देश पढ़ना सुनिश्चित करें।
| CPU | दस्तावेज़ | निर्देश पार्सिंग | डिसअसेंबली | लिफ्टिंग | CFG रिकवरी | असेंबली |
|---|---|---|---|---|---|---|
| x86 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :full_moon: |
| x86-64 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :full_moon: |
| ARMv7 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| ARMv8 (AArch64) | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| MIPS32 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| MIPS64 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| EVM | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :new_moon: |
| TMS320C6000 | :full_moon: | :full_moon: | :full_moon: | :new_moon: | :first_quarter_moon: | :new_moon: |
| AVR | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| PA-RISC | :full_moon: | :full_moon: | :full_moon: | :new_moon: | :first_quarter_moon: | :new_moon: |
| PPC32 | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| SPARC | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| SH4 | :full_moon: | :full_moon: | :full_moon: | :new_moon: | :first_quarter_moon: | :new_moon: |
| RISC-V | :full_moon: | :full_moon: | :full_moon: | :full_moon: | :first_quarter_moon: | :new_moon: |
| S390 | :full_moon: | :full_moon: | :full_moon: | :new_moon: | :first_quarter_moon: | :new_moon: |