Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
binbloom — कच्चे बाइनरी फर्मवेयर विश्लेषण सॉफ्टवेयर | Kitploit
उपकरण/GitHubGitHub/quarkslab/binbloom
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubquarkslab/binbloom

binbloom

कच्चे बाइनरी फर्मवेयर विश्लेषण सॉफ्टवेयर

रिपॉजिटरी देखेंवेबसाइट
583613 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

के बारे में

इस परियोजना का उद्देश्य एक कच्चे बाइनरी फर्मवेयर का विश्लेषण करना और स्वचालित रूप से इसकी कुछ विशेषताओं का निर्धारण करना है। यह टूल सभी आर्किटेक्चर के साथ संगत है क्योंकि यह मूल रूप से उस पर सरल आँकड़े करता है।

मुख्य विशेषताएं:

  • लोडिंग एड्रेस: binbloom एक कच्चे बाइनरी फर्मवेयर को पार्स कर सकता है और इसके लोडिंग एड्रेस का निर्धारण कर सकता है।
  • एंडियननेस: binbloom फर्मवेयर के एंडियननेस को निर्धारित करने के लिए ह्यूरिस्टिक्स का उपयोग कर सकता है।
  • UDS डेटाबेस: binbloom एक कच्चे बाइनरी फर्मवेयर को पार्स कर सकता है और जाँच सकता है कि इसमें UDS कमांड आईडी वाला एक ऐरे है या नहीं।

डाउनलोड / इंस्टॉल

पहले, git रिपॉजिटरी को क्लोन करें:

root@kitploit:~
git clone https://github.com/quarkslab/binbloom.git
cd binbloom

नवीनतम संस्करण बनाने के लिए (केवल लिनक्स):

root@kitploit:~
autoreconf -i
./configure
make
sudo make install

शुरुआत करना

फर्मवेयर के एंडियननेस और बेस एड्रेस का निर्धारण करें

root@kitploit:~
binbloom firmware.bin

इस कमांड से ऐसा आउटपुट मिलना चाहिए:

root@kitploit:~
[i] 32-bit architecture selected.
[i] File read (20480 bytes)
[i] Endianness is LE                                
[i] 6 strings indexed                                    
[i] Found 3 base addresses to test                    
[i] Base address seems to be 0x60000000 (not sure)
 More base addresses to consider (just in case):
  0x005b5000 (0)
  0x0bcd0000 (0)

इस आउटपुट में, तीसरी पंक्ति अनुमानित एंडियननेस (LE, लिटिल-एंडियन) दिखाती है और छठी पंक्ति अनुमानित एड्रेस (0x60000000) देती है। 6 टेक्स्ट स्ट्रिंग और 3 संभावित बेस एड्रेस की पहचान की गई है। यदि आर्किटेक्चर निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से 32-बिट आर्किटेक्चर माना जाता है।

प्रत्येक उम्मीदवार एड्रेस के बाद कोष्ठक में मान संबंधित स्कोर है। स्कोर जितना अधिक होगा, एड्रेस उतना ही अधिक संभावित होगा।

64-बिट फर्मवेयर के एंडियननेस और बेस एड्रेस का निर्धारण करें

root@kitploit:~
binbloom -a 64 firmware.bin
root@kitploit:~
[i] 64-bit architecture selected.
[i] File read (327680 bytes)
[i] Endianness is LE                                
[i] 717 strings indexed                                  
[i] Found 7535 base addresses to test                 
[i] Base address found: 0x0000000000010000.                          
 More base addresses to consider (just in case):
  0x000000000000e000 (276)
  0x000000000000f000 (242)
  0x0000000000011000 (175)
  0x000000000000d000 (167)
  0x000000000000b000 (121)
  0x0000000000013000 (107)
  0x0000000000012000 (100)
  [...]

-a विकल्प binbloom को 64-बिट फर्मवेयर पर विचार करने का निर्देश देता है, उपरोक्त आउटपुट 0x10000 का अनुमानित बेस एड्रेस दिखाता है।

यदि binbloom सही नहीं मिलता है तो एंडियननेस को बाध्य करें

छोटे फर्मवेयर (आकार < 10 Kbytes) के साथ काम करते समय binbloom की एंडियननेस पहचान विश्वसनीय नहीं हो सकती है और गलत परिणाम दे सकती है जो अप्रत्याशित बेस एड्रेस की ओर ले जाते हैं। इस मामले में, आप एंडियननेस निर्दिष्ट करने के लिए -e विकल्प का उपयोग कर सकते हैं:

root@kitploit:~
binbloom -e be firmware.bin

यह तब निम्नलिखित आउटपुट उत्पन्न करता है:

root@kitploit:~
[i] Selected big-endian architecture.
[i] File read (1048576 bytes)
[i] Endianness is BE
[i] 764 strings indexed                                  
[i] Found 18615 base addresses to test                
[i] Base address seems to be 0x00000000 (not sure).
 More base addresses to consider (just in case):
  0x3f740000 (121043)
  0x7ff48000 (61345)
  0x41140000 (59552)
  [...]

एंडियननेस तब बाध्य किया जाता है (इस मामले में बिग-एंडियन) और binbloom बेस एड्रेस का अनुमान लगाने के लिए इस कॉन्फ़िगरेशन पर निर्भर करता है।

UDS डेटाबेस खोजें (ECU के फर्मवेयर के लिए)

root@kitploit:~
binbloom -a 32 -e be -b 0x0 firmware.bin
root@kitploit:~
[i] 32-bit architecture selected.
[i] Selected big-endian architecture.
[i] Base address 0x0000000000000000 provided.
[i] 764 strings indexed                                  
Most probable UDS DB is located at @000ee8c8, found 7 different UDS RID
Identified structure:
struct {
	code *p_field_0;
	code *p_field_1;
	uint32_t dw_2;
}

यह विश्लेषण ह्यूरिस्टिक्स पर आधारित है, इसलिए यह गलत सकारात्मक परिणाम दे सकता है। आपको binbloom द्वारा पाए गए संभावित UDS डेटाबेस की सूची पढ़नी होगी और जाँच करनी होगी कि कौन सा सही है, यदि कोई है। Binbloom अपने आउटपुट में पहचानी गई संरचना प्रदान करता है, जो कुछ डिसअसेंबलरों को संरचना घोषणा के बाद मेमोरी को पार्स करने की अनुमति देता है।

उन्नत विकल्प

आप -t विकल्प के साथ मल्टी-थ्रेडिंग सक्षम करके बेस एड्रेस लुकअप प्रक्रिया को गति दे सकते हैं। डिफ़ॉल्ट रूप से, एक ही थ्रेड का उपयोग किया जाता है।

root@kitploit:~
binbloom -t 8 firmware.bin

एक डीप सर्च मोड, जो -d विकल्प से सक्षम होता है, भी लागू किया गया है लेकिन अभी भी प्रयोगात्मक है। यह मोड बहुत ही दुर्लभ अवसरों पर उपयोगी हो सकता है क्योंकि यह एक वैध बेस एड्रेस ढूंढ सकता है जब कुछ और काम नहीं करता, लेकिन यह एक धीमा मोड है जिसे पूरा होने में कुछ समय लग सकता है।

यदि आप टूल से अधिक जानकारी प्रदर्शित करना चाहते हैं, तो एक या अधिक -v विकल्पों का उपयोग करें।

बारे में

लेखक

  • Guillaume Heilles (@PapaZours)
  • Damien Cauquil (@virtualabs)

लाइसेंस

binbloom Apache 2.0 लाइसेंस के तहत प्रदान किया गया है।

टूल डाउनलोड करें