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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/pfalcon/scratchabit
स्थैतिक विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषण
GitHubpfalcon/scratchabit

ScratchABit

आसानी से पुनर्लक्ष्यीकरण योग्य और हैक करने योग्य इंटरैक्टिव डिस्सेम्बलर जिसमें IDAPython-संगत प्लगइन API है

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

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

सभी देखें →

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

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

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

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

ScratchABit

ScratchABit एक इंटरैक्टिव वृद्धिशील डिस्सेम्बलर है जिसमें डेटा/नियंत्रण प्रवाह विश्लेषण क्षमताएं हैं। ScratchABit ओपनसोर्स रिवर्स इंजीनियरिंग समुदाय के प्रयासों के लिए समर्पित है (हार्डवेयर/सॉफ्टवेयर अंतर-संचालन, सुरक्षा अनुसंधान के लिए विक्रेताओं द्वारा ठीक से समर्थित नहीं हार्डवेयर के लिए ओपनसोर्स ड्राइवर/फर्मवेयर तैयार करने के लिए रिवर्स इंजीनियरिंग)।

ScratchABit समुदाय में प्रसिद्ध IDAPython API का समर्थन करता है ताकि डिस्सेम्बली/एक्सटेंशन मॉड्यूल लिखे जा सकें।

ScratchABit एक कार्य प्रगति पर है, आवश्यकतानुसार सुविधाओं को जोड़ा जाता है, योगदान का स्वागत है।

ScratchABit GNU जनरल पब्लिक लाइसेंस v3 (GPLv3) की शर्तों के तहत जारी किया गया है।

आवश्यकताएँ/घोषणापत्र

  1. इसे एक गूढ़ भाषा में नहीं लिखा जाना चाहिए। इनमें वे भाषाएँ शामिल हैं जो बहुत निम्न-स्तर की हैं, जो अप्रारंभित चरों तक पहुँचने की अनुमति देती हैं, जो चरों और फ़ंक्शन/प्रक्रियाओं के बीच अंतर नहीं करती हैं, जो सरणी सूचकांकों को मनमानी संख्याओं से शुरू करती हैं, आदि, आदि। ScratchABit आपकी खुशी और मानसिक स्वास्थ्य के लिए Python (आधुनिक संस्करण, Python3) में लिखा गया है।

  2. उपयोगकर्ता इंटरफ़ेस ढांचे को उपयोगकर्ता के लिए आवश्यक स्तर की परस्पर क्रिया की अनुमति देनी चाहिए, न कि निर्भरता, ब्लोट, मुद्दे और ढांचे के संस्करणों के बीच असंगतताएँ जोड़नी चाहिए। ScratchABit वर्तमान में ANSI/VT100 टर्मिनल एस्केप अनुक्रमों का उपयोग करके एक सरल पूर्ण-स्क्रीन टेक्स्ट उपयोगकर्ता इंटरफ़ेस का उपयोग करता है (हाँ, यहाँ तक कि curses लाइब्रेरी को भी उपयोगकर्ताओं पर थोपने के लिए बहुत भारी निर्भरता माना गया था)।

  3. "डेटाबेस" को संग्रहीत करने के लिए आसानी से उपयोग होने वाले टेक्स्ट प्रारूपों का लाभ उठाना चाहिए, ताकि पुन: उपयोग और टूल लेखन को सुगम बनाया जा सके, और संस्करण नियंत्रण प्रणालियों में भंडारण को सुगम बनाया जा सके।

स्थापना

ScratchABit का उपयोग करने के लिए, आपको Python3 स्थापित (Python 3.3 से 3.7 तक परीक्षित) और VT100 (न्यूनतम) या XTerm (अनुशंसित) टर्मिनल या टर्मिनल एमुलेटर (कोई भी Unix सिस्टम अनुरूप होना चाहिए, जैसे Linux/BSD/आदि, अधिक के लिए नीचे FAQ देखें) की आवश्यकता है।

कोड को क्लोन करें:

root@kitploit:~
git clone --recursive https://github.com/pfalcon/ScratchABit

यदि आपने --recursive के बिना कोड क्लोन किया है, तो ScratchABit निर्देशिका में git submodule update --init चलाएँ।

ScratchABit अब Capstone Engine आधारित CPU प्लगइन(s) के साथ आता है, जो कई CPU आर्किटेक्चर तक पहुँच प्रदान करते हैं। इसका उपयोग करने के लिए, Capstone के लिए हालिया Python बाइंडिंग मॉड्यूल स्थापित होना चाहिए (OS वितरण द्वारा भेजे गए पैकेजों को प्राथमिकता देने के बजाय, जो अक्सर पुराने होते हैं)। इसे स्थापित करने का सबसे आसान तरीका Python उपयोगकर्ता पैकेज निर्देशिका में है:

root@kitploit:~
pip3 install --no-cache-dir --user capstone

एक विकल्प ScratchABit निर्देशिका के भीतर Python वर्चुअल एनवायरनमेंट में इसे स्थापित करना है:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip3 install --no-cache-dir capstone

जब भी आप ScratchABit के साथ काम करने के लिए एक नया टर्मिनल सत्र खोलें, तो वर्चुअल एनवायरनमेंट को सक्रिय करने के लिए source .venv/bin/activate कमांड फिर से चलाएँ।

यदि उपरोक्त में से कुछ भी काम नहीं करता है, तो आप सिस्टम-वाइड capstone पैकेज स्थापित करने का प्रयास कर सकते हैं (अनुशंसित नहीं):

root@kitploit:~
sudo pip3 install --system capstone

त्वरित प्रारंभ

यदि आप एक स्व-वर्णनात्मक निष्पादन योग्य प्रारूप (जैसे ELF) में एक फ़ाइल को डिस्सेम्बल करना चाहते हैं, तो बस इसे ScratchABit.py को तर्क के रूप में पास करें। रिपॉजिटरी में त्वरित प्रारंभ के लिए विभिन्न आर्किटेक्चर के लिए कई example-*.elf फ़ाइलें शामिल हैं। उदाहरण के लिए, x86 32bit संस्करण आज़माने के लिए:

root@kitploit:~
python3 ScratchABit.py example-x86_32.elf

वैकल्पिक रूप से, यदि आप एक रॉ बाइनरी फ़ाइल को डिस्सेम्बल करना चाहते हैं, तो आपको एक .def (परिभाषा) फ़ाइल बनाने की आवश्यकता है, ताकि यह निर्दिष्ट किया जा सके कि कोड के लिए किन मेमोरी क्षेत्रों को परिभाषित किया गया है, बाइनरी फ़ाइल को किस पते पर लोड करना है, आदि। (नोट: .def फ़ाइल .elf और समान फ़ाइलों के लिए भी उपयोगी हो सकती है।) रिपॉजिटरी में एक सरल x86_64 रॉ बाइनरी कोड और संबंधित example-x86_64.def फ़ाइल शामिल है (उपलब्ध विकल्पों के विवरण के लिए अंदर देखें):

root@kitploit:~
python3 ScratchABit.py example-x86_64.def

मेनू तक पहुँचने के लिए F9 दबाएँ (XTerm-संगत टर्मिनलों में माउस भी काम करता है)। कुंजी बाइंडिंग के बारे में सहायता प्राप्त करने के लिए F1 दबाएँ (अधिकांश क्रियाएँ मेनू के माध्यम से भी सुलभ हैं)। ScratchABit का कार्यप्रवाह अन्य इंटरैक्टिव डिस्सेम्बलरों के समान है (कुछ पिछला अनुभव या पृष्ठभूमि पढ़ना सहायक हो सकता है)।

प्लगइन का उपयोग करना

IDAPython प्रोसेसर प्लगइन को Python मॉड्यूल पथ पर कहीं से भी लोड किया जा सकता है। वैकल्पिक रूप से, आप प्लगइन .py फ़ाइल(फ़ाइलों) को plugins/cpu/ उपनिर्देशिका में सिमलिंक/कॉपी कर सकते हैं।

प्लगइन उपलब्ध होने के बाद, example-x86_64.def पर आधारित एक नई परिभाषा फ़ाइल बनाएँ जो cpu xxx पंक्ति में प्लगइन मॉड्यूल नाम (.py एक्सटेंशन के बिना) सेट करती है।

बाहरी प्लगइन का उपयोग करने वाले एक बहुत ही सरल उदाहरण के लिए, यह esp8266.def फ़ाइल देखें जो ida-xtensa2 रिपॉजिटरी से xtensa.py प्लगइन के साथ काम करती है।

TODO/निर्णय लेने की बातें

  • वर्तमान में "डेटाबेस" के लिए कई फ़ाइलों का उपयोग करता है, प्रत्येक एक विशेष प्रकार की जानकारी संग्रहीत करता है। इसके बजाय एक एकल YAML फ़ाइल पर स्विच करें?
  • रंग जोड़ें (निम्न प्राथमिकता, (बिना ब्लोट के!) पैच का स्वागत है)।
  • आरामदायक काम के लिए अभी भी कुछ महत्वपूर्ण UI कमांड लागू करने हैं। (सभी सबसे महत्वपूर्ण कमांड मौजूद होने चाहिए, अन्य कार्यक्षमता को प्लगइन का उपयोग करके लागू करने की उम्मीद है)।
  • बाहर निकलने पर DB को सहेजने का प्रस्ताव यदि संशोधित किया गया हो।
  • DB बचत के लिए Git एकीकरण।
  • मजबूती में सुधार करें (मुख्य लूप स्तर पर एक्सेप्शन हैंडलर जोड़ें, एप्लिकेशन को समाप्त न करें, उपयोगकर्ता/लॉग को दिखाएँ और जारी रखें)।
  • कोड प्रवाह असंगतियों (जैसे कि एक निर्देश के भीतर - इच्छित उपयोग के लिए निम्न प्राथमिकता) और डेटा एक्सेस असंगतियों (जैसे पहले से पहचाने गए शब्द के व्यक्तिगत बाइट्स तक पहुँचना - उच्च प्राथमिकता) से निपटने का प्रयास करें। (1.4 में सुधार हुआ।)
  • देखें कि प्रोसेसर मॉड्यूल के अलावा अन्य प्रकार के IDAPython प्लगइन का समर्थन कैसे करें।
  • ELF (आदि) फ़ाइलों में मौजूद डिबगिंग जानकारी (जैसे DWARF) को पार्स और उपयोग करें।

FAQ

प्रश्न: कौन से प्रोसेसर/आर्किटेक्चर समर्थित हैं?

उत्तर: ScratchABit अपने आप में किसी भी प्रोसेसर आर्किटेक्चर का समर्थन नहीं करता है, यह IDAPython API प्लगइन का उपयोग करके पूरी तरह से पुन: लक्ष्यीकरण योग्य है। कई प्लगइन उपलब्ध हैं, एक नया प्लगइन लिखना आसान है। उपयोगकर्ताओं को ScratchABit का परीक्षण-चालन करने देने के लिए, Pymsasid डिस्सेम्बलर के अंतर्गत एक सरल x86 प्रोसेसर प्लगइन वितरण में शामिल है।

संस्करण 2.0 से, Capstone प्लगइन भी शामिल है, जो x86, ARM, MIPS, PowerPC, SPARC, आदि सहित कई आर्किटेक्चर तक पहुँच प्रदान करता है (आर्किटेक्चर का समर्थन उपयोगकर्ता परीक्षण के आधार पर धीरे-धीरे सक्षम किया जाता है)।

आप ScratchABit के साथ शामिल प्लगइन के बारे में प्रलेख plugins/cpu/ निर्देशिका के README में पढ़ सकते हैं।

प्रश्न: डीबगर?

उत्तर: ScratchABit स्थैतिक विश्लेषण और नए CPU आर्किटेक्चर के लिए आसान समर्थन के लिए समर्पित है (बस एक नया CPU प्लगइन Python में कोड करें - आप कुछ घंटों में प्रारंभिक परिणाम प्राप्त कर सकते हैं)। गतिशील विश्लेषण को एक मुख्य सुविधा के रूप में नहीं बनाया गया था और इसे लागू करने की तत्काल कोई योजना नहीं है। फिर भी पैच का स्वागत है।

प्रश्न: डीकंपाइलर?

उत्तर: गहन प्रोग्राम विश्लेषण, रूपांतरण और डीकंपाइलेशन के लिए ScratchABlock नामक एक संबंधित परियोजना है। यह उम्मीद की जाती है कि जैसे-जैसे ScratchABlock परिपक्व होता है, इसकी कुछ कार्यक्षमता ScratchABit (शायद प्लगइन के माध्यम से) में उपलब्ध होगी।

प्रश्न: मैं Linux पर नहीं हूँ, मैं ScratchABit कैसे चला सकता हूँ?

उत्तर: अपने सिस्टम पर एक एमुलेटर/VM में Linux स्थापित करें और आनंद लें।

प्रश्न: अनिवार्य स्क्रीनशॉट?

उत्तर: बिल्कुल:

screenshot

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