
साक्ष्य-केंद्रित मैलवेयर रिवर्स इंजीनियरिंग जिसमें गहन PE/.NET निरीक्षण, Ghidra पुनर्निर्माण, AI क्रॉस-चेक, YARA, और ELF डिबगिंग शामिल है
AIDebug एक साक्ष्य-केंद्रित मैलवेयर रिवर्स-इंजीनियरिंग CLI और टर्मिनल UI है। यह नियतात्मक ऑफ़लाइन ट्राइएज, संपूर्ण-फ़ाइल हेक्स निरीक्षण, गहन PE संरचना विश्लेषण, Capstone डिसअसेंबली, Ghidra पुनर्निर्माण, वैकल्पिक LLM क्रॉस-चेक, स्थानीय ELF डिबगिंग, संकलित शिक्षण अभ्यास, और विश्लेषक-समीक्षा रिपोर्टिंग को जोड़ता है।
वर्तमान स्रोत संस्करण: AIDebug 3.1.0। देखें 3.1.0 रिलीज़ नोट्स।
नवीनतम अपरिवर्तनीय प्रकाशित रिलीज़
AIDebug v3.0.0
बनी हुई है, जो 1200km-aidebug
के रूप में उपलब्ध है, जब तक कि संस्करण-मिलान वाला 3.1.0 टैग और GitHub रिलीज़ सत्यापित
प्रकाशन वर्कफ़्लो पूरा नहीं कर लेते।
PyPI से स्थिर पैकेज स्थापित करें:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install 1200km-aidebug==3.0.0
aidebug --version
आवश्यकतानुसार वैकल्पिक क्षमताएँ स्थापित करें:
# रिमोट/लोकल LLM प्रदाता और सत्यापित YARA जनरेशन
python -m pip install "1200km-aidebug[ai]==3.0.0"
# Frida डायनामिक इंस्ट्रूमेंटेशन
python -m pip install "1200km-aidebug[dynamic]==3.0.0"
# सभी वैकल्पिक Python एकीकरण
python -m pip install "1200km-aidebug[all]==3.0.0"
विकास के लिए:
git clone https://github.com/anpa1200/AIDebug.git
cd AIDebug
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev,dynamic]"
Ghidra, GDB, Bubblewrap, एक C कंपाइलर, और Frida लक्ष्य घटक बाहरी उपकरण हैं जिनका उपयोग केवल उन वर्कफ़्लो द्वारा किया जाता है जिन्हें उनकी आवश्यकता होती है।
मुख्य टर्मिनल इंटरफ़ेस में PE या ELF नमूना खोलें:
aidebug --binary /path/to/sample.exe --offline
फुल-स्क्रीन UI के बिना नियतात्मक विश्लेषण चलाएँ और साक्ष्य निर्यात करें:
aidebug --binary /path/to/sample.exe \
--offline --no-tui --report --json-export --yara \
--out-dir reports/
Ghidra पुनर्निर्माण का उपयोग करें:
aidebug --binary /path/to/sample.exe --offline --no-tui --decompile
aidebug --binary /path/to/sample.exe --offline --no-tui \
--decompile-all reports/sample-reconstruction.c
एक अस्थायी, गैर-निष्पादित ELF आर्टिफैक्ट के माध्यम से एक C ट्रांसलेशन यूनिट का विश्लेषण करें:
aidebug --source /path/to/example.c --offline --no-tui
किसी भी फ़ाइल की पहचान उसके फ़ाइल एक्सटेंशन से स्वतंत्र रूप से करें:
aidebug --identify /path/to/renamed-or-unknown-file --offline
--identify घोषित प्रकार, MIME प्रकार, सामान्य एक्सटेंशन, विश्वास, विधि, साक्ष्य, SHA-256, और आकार के साथ संरचित JSON रिपोर्ट करता है। नियतात्मक कवरेज में सामान्य निष्पादन योग्य और बाइटकोड प्रारूप, अभिलेखागार और डिस्क इमेज, Office/OpenDocument/EPUB कंटेनर, दस्तावेज़, चित्र, ऑडियो/वीडियो, पैकेट कैप्चर, डेटाबेस, रजिस्ट्री/इवेंट-लॉग आर्टिफैक्ट, स्क्रिप्ट, और टेक्स्ट शामिल हैं। ZIP-आधारित प्रारूपों का निरीक्षण सीमित सदस्य नामों और छोटे मेटाडेटा रीड द्वारा किया जाता है; फ़ाइलें कभी निष्पादित या निकाली नहीं जाती हैं।
अतिरिक्त सिग्नेचर के लिए python-magic और ऑपरेटिंग सिस्टम का libmagic डेटाबेस स्थापित करें जो स्थानीय प्लेटफ़ॉर्म को ज्ञात हैं:
python -m pip install python-magic
जब कोई नियतात्मक सिग्नेचर, संरचना, या टेक्स्ट नियम मेल नहीं खाता, तो एक कॉन्फ़िगर किया गया AI प्रदाता सीमित मेटाडेटा से उम्मीदवार का अनुमान लगा सकता है: एक्सटेंशन, आकार, SHA-256, 96 हेडर बाइट्स तक, 32 टेल बाइट्स, नमूना एन्ट्रॉपी, और NUL अनुपात। फ़ाइल बॉडी, निकाले गए स्ट्रिंग, और फ़ाइलसिस्टम पथ नहीं भेजे जाते हैं। केवल-AI परिणाम ai-inference लेबल किए जाते हैं, 60% विश्वास पर सीमित होते हैं, और विश्लेषक सत्यापन की आवश्यकता होती है। फ़ॉलबैक को पूरी तरह से अक्षम करने के लिए --offline का उपयोग करें; अनसुलझा प्रकार Unknown के रूप में निकास स्थिति 2 के साथ रिपोर्ट किया जाता है।
मुख्य टर्मिनल इंटरफ़ेस में S दबाएँ, या सीधे वर्कस्पेस में प्रारंभ करें:
aidebug --binary /path/to/sample.exe --offline --strings
वर्कस्पेस फ़ाइल ऑफ़सेट, उपलब्ध होने पर मैप किए गए पते, एन्कोडिंग, बाइट और वर्ण लंबाई, डुप्लिकेट-घटना जानकारी, अनुभाग संदर्भ, विश्वास, ट्राइएज स्कोर, और प्रत्येक वर्गीकरण के नियतात्मक कारणों को संरक्षित करता है। फ़िल्टर न्यूनतम लंबाई, एन्कोडिंग, श्रेणी, और फ्री-टेक्स्ट खोज को कवर करते हैं; कॉलम सॉर्टिंग और पेजिनेशन बड़ी इन्वेंट्री को उपयोग योग्य रखते हैं। प्रत्येक चयनित एन्कोडिंग संपूर्ण आकार-सीमित आर्टिफैक्ट को स्कैन करता है। बनाए रखी गई इन्वेंट्री 25,000 रिकॉर्ड और प्रति मान 4,096 प्रदर्शित वर्णों पर सीमित है; सटीक उम्मीदवार/छोड़े गए गणना और पूर्ण-बाइट कवरेज किसी भी सीमा को दृश्यमान बनाते हैं। प्रत्येक रिकॉर्ड अधिकतम 32 DLL/API एनोटेशन और 4,096 विवरण वर्ण बनाए रखता है; प्रतिकूल ओवरफ़्लो रिकॉर्ड कारणों में रिपोर्ट किए जाते हैं।
पहचान मल्टी-लेबल है। एक एकल मान एक साथ DLL, Windows पथ, URL, IP पता, रजिस्ट्री कुंजी, कमांड, PowerShell खंड, नामित पाइप, हैश, क्रेडेंशियल उम्मीदवार, उपयोगकर्ता एजेंट, या अन्य समर्थित साक्ष्य प्रकार हो सकता है। डोमेन उम्मीदवार IDNA-सामान्यीकृत होते हैं और पैकेज्ड ऑफ़लाइन IANA रूट-ज़ोन स्नैपशॉट के विरुद्ध जाँचे जाते हैं; IP पते को एक पूर्ण मान्य टोकन पर कब्जा करना चाहिए, और कॉन्फ़िगरेशन असाइनमेंट को रूढ़िवादी पूर्ण-लाइन व्याकरण से मेल खाना चाहिए। यह छोटे बाइनरी खंडों को केवल इसलिए बढ़ावा देने से रोकता है क्योंकि उनमें एक डॉट, कोलन, या बराबर चिह्न होता है। संबंधित लेबल एक विश्वास परिवार साझा करते हैं, इसलिए ip_address प्लस ipv6 को दो स्वतंत्र अवलोकन नहीं माना जाता है। ज्ञात DLL और API को छोटे तटस्थ क्षमता विवरण प्राप्त होते हैं; अज्ञात नामों को अनुमानित उद्देश्य के बजाय एक स्पष्ट असत्यापित फ़ॉलबैक प्राप्त होता है। एक निकाला गया नाम उपस्थिति का साक्ष्य है, यह प्रमाण नहीं कि कोड ने इसे लागू किया या नमूना दुर्भावनापूर्ण है।
नियतात्मक इन्वेंट्री को स्थानीय रूप से प्रिंट करें, प्रदर्शित CLI दृश्य को फ़िल्टर करें, या विहित पूर्ण इन्वेंट्री को केवल-स्वामी JSON के रूप में लिखें:
aidebug --binary /path/to/sample.exe --strings --no-tui
aidebug --binary /path/to/sample.exe --strings --no-tui \
--string-encoding ascii --min-string-length 6 --string-category url
aidebug --binary /path/to/sample.exe --strings --no-tui \
--strings-output reports/sample-strings.json
AI स्ट्रिंग समीक्षा एक अलग ऑप्ट-इन क्रिया है। वर्कस्पेस के अंदर A दबाएँ और गोपनीयता/लागत चेतावनी की पुष्टि करें, या CLI मोड में इसे स्पष्ट रूप से अनुरोध करें:
aidebug --binary /path/to/sample.exe --strings --no-tui \
--analyze-strings --accept-ai-cost \
--strings-output reports/sample-strings-ai.json
प्रत्येक बनाए रखा गया स्ट्रिंग एक स्थिर साक्ष्य ID सौंपा जाता है। स्पष्ट पुष्टि के बाद, AI पथ नियतात्मक, सीमित चंकों में प्रत्येक बनाए रखा रिकॉर्ड की योजना बनाता है; प्रदाता या सत्यापन विफलताएँ सुरक्षित रूप से रुकती हैं और दृश्यमान रहती हैं। प्रतिक्रियाओं को प्रत्येक आपूर्ति किए गए ID का हिसाब देना चाहिए और स्वीकार किए जाने से पहले सख्त स्थानीय स्कीमा, एनम, संदर्भ, और IOC-ग्राउंडिंग सत्यापन पास करना चाहिए। एक अंतिम रिड्यूसर कच्ची इन्वेंट्री के बजाय सत्यापित निष्कर्ष देखता है। निष्कर्षण सीमाएँ, विफल बैच, और समीक्षित/भेजे गए गणना हमेशा रिपोर्ट की जाती हैं; अपूर्ण कवरेज एक unknown समग्र मूल्यांकन को मजबूर करता है। स्ट्रिंग में पासवर्ड, API टोकन, ग्राहक डेटा, और हमलावर-लेखित प्रॉम्प्ट इंजेक्शन हो सकते हैं, इसलिए इस सुविधा को सक्षम करने से पहले रिमोट-AI सीमा की समीक्षा करें।
फ़ाइल या SHA-256 द्वारा पिछले विश्लेषण का निरीक्षण करें:
aidebug --history /path/to/sample.exe
aidebug --history 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
एक PE फ़ाइल लोड करें और मुख्य GUI में X (या P) दबाएँ। AIDebug उन सटीक बाइट्स को प्रस्तुत करता है जिन्हें उसने हैश किया और संरचनात्मक साक्ष्य को सीमित, नेविगेट करने योग्य दृश्यों में व्यवस्थित करता है।
| क्षेत्र | साक्ष्य |
|---|---|
| हेडर | DOS, NT, COFF, वैकल्पिक हेडर, विशेषताएँ, डेटा निर्देशिकाएँ, और शमन फ़्लैग |
| अनुभाग | संपूर्ण IMAGE_SECTION_HEADER फ़ील्ड, मैप किए गए रेंज, एन्ट्रॉपी, और अनुमतियाँ |
| इम्पोर्ट और एक्सपोर्ट | इम्पोर्ट डिस्क्रिप्टर, INT/IAT प्रविष्टियाँ, विलंब इम्पोर्ट, ऑर्डिनल, नाम, RVA, और फ़ॉरवर्डर |
| संसाधन | प्रकार/नाम/भाषा पदानुक्रम, मेटाडेटा, हैश, पूर्वावलोकन, और सुरक्षित नो-ओवरराइट निर्यात |
| रिलोकेशन और ASLR | रिलोकेशन ब्लॉक/प्रविष्टियाँ और संरचनात्मक ASLR संगतता मूल्यांकन |
| TLS | TLS निर्देशिका, टेम्पलेट डेटा, इंडेक्स, कॉलबैक तालिका, मैपिंग, और समाप्ति साक्ष्य |
| अपवाद और अनवाइंड | x64 रनटाइम फ़ंक्शन, UNWIND_INFO, ऑपरेशन, हैंडलर, और चेन्ड रिकॉर्ड |
| लोड कॉन्फ़िगरेशन | संस्करणित फ़ील्ड, Guard फ़्लैग, स्टैक-कुकी और शोषण-शमन साक्ष्य |
| CFG | चेक/डिस्पैच पॉइंटर, Guard Function ID लक्ष्य, ऑर्डरिंग, दमन, और स्थिरता जाँच |
| Authenticode | प्रमाणपत्र रिकॉर्ड, PKCS#7/X.509 साक्ष्य, PE इमेज डाइजेस्ट तुलना, और हस्ताक्षरकर्ता सत्यापन |
| डिबग और प्रोवेनेंस | Rich हेडर, डिबग निर्देशिका, CodeView RSDS/NB10, PDB GUID, आयु, और पथ |
| ओवरले | सटीक ऑफ़सेट, आकार, हैश, एन्ट्रॉपी, पूर्वावलोकन, और सुरक्षित निर्यात |
| .NET / CLR | COR20 हेडर, मेटाडेटा रूट और स्ट्रीम, ECMA-335 तालिकाएँ, असेंबली, संदर्भ, और संसाधन |
AIDebug इन दृश्यों को बनाते समय PE निष्पादित नहीं करता है। स्थैतिक प्रमाणपत्र सत्यापन Windows रूट ट्रस्ट या रिवोकेशन सत्यापन नहीं है, Rich मेटाडेटा एट्रिब्यूशन नहीं है, स्ट्रॉन्ग-नेम मेटाडेटा प्रकाशक ट्रस्ट नहीं है, और स्थैतिक शमन फ़्लैग प्रभावी रनटाइम नीति का प्रमाण नहीं हैं।
ये लेख लंबे-प्रारूप वाले वर्कफ़्लो और स्क्रीनशॉट प्रदान करते हैं जो रिपॉजिटरी दस्तावेज़ीकरण के पूरक हैं:
संपूर्ण कैटलॉग खोलें या किसी विशिष्ट मामले से प्रारंभ करें:
aidebug --learn
aidebug --learn mov-load
aidebug --learn lea-arithmetic
aidebug --learn switch-dispatch
प्रत्येक बंडल किया गया मामला learning/cases/ के अंतर्गत एक स्टैंडअलोन फ़ाइल है। AIDebug चयनित मामले को एक अस्थायी x86-64 ELF में संकलित करता है, सटीक C स्रोत और कंपाइलर-जनित निर्देश दिखाता है, स्वतंत्र पुनर्निर्माण के लिए Ghidra से पूछता है, बिल्ड प्रोवेनेंस रिकॉर्ड करता है, और अस्थायी आर्टिफैक्ट को हटा देता है। उत्पन्न पाठ बाइनरी कभी निष्पादित नहीं होती है।
टेक्स्ट आउटपुट के लिए --no-tui का उपयोग करें, या समीक्षित बाहरी संग्रह लोड करें:
aidebug --learn movsxd --no-tui
aidebug --learn --learning-collection /path/to/reviewed-cases
AI विश्लेषण वैकल्पिक है। नियतात्मक ऑफ़लाइन मोड बिना क्रेडेंशियल के उपलब्ध रहता है।
python -m pip install "1200km-aidebug[ai]==3.0.0"
cp .env.example .env
chmod 600 .env
ठीक एक प्रदाता कॉन्फ़िगर करें, या जब कई क्रेडेंशियल मौजूद हों तो AIDEBUG_LLM_PROVIDER स्पष्ट रूप से सेट करें:
AIDEBUG_LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=replace_with_your_key
# विकल्प:
# OPENAI_API_KEY=replace_with_your_key
# GEMINI_API_KEY=replace_with_your_key
# OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
कॉन्फ़िगरेशन को अविश्वसनीय विश्लेषण निर्देशिकाओं से दूर रखने के लिए AIDEBUG_ENV_FILE=/absolute/path/to/private.env का उपयोग करें। रिमोट बल्क विश्लेषण के लिए स्पष्ट --accept-ai-cost स्वीकृति की आवश्यकता होती है। किसी भी प्रदाता को नमूना साक्ष्य भेजने से पहले रिमोट-AI डेटा सीमा की समीक्षा करें।
GDB-समर्थित सक्रिय मोड चयनित स्थानीय ELF को निष्पादित करता है। इसका उपयोग केवल एक पृथक, अधिकृत लैब के अंदर करें:
aidebug --binary ./sample.elf --mode debug --breakpoint main
उपलब्ध कमांड में break, continue, step, next, finish, registers, changes, io, disassemble, और quit शामिल हैं। Frida डायनामिक मोड समर्थित स्थानीय या रिमोट इंस्ट्रूमेंटेशन वर्कफ़्लो के लिए अलग से उपलब्ध है।
| आउटपुट | इच्छित उपयोग |
|---|---|
| HTML रिपोर्ट | मानव समीक्षा और केस नोट्स |
| संस्करणित JSON | कस्टम एकीकरण इनपुट; विक्रेता-मूल या STIX स्कीमा नहीं |
| स्ट्रिंग इंटेलिजेंस JSON | विहित बनाए रखा स्ट्रिंग इन्वेंट्री प्लस वैकल्पिक सत्यापित AI एनोटेशन और कवरेज |
| YARA उम्मीदवार | स्थानीय रूप से संकलित डिटेक्शन-इंजीनियरिंग बीज जिन्हें समीक्षा और परीक्षण की आवश्यकता होती है |
| ATT&CK उम्मीदवार | तकनीक-स्तरीय परिकल्पनाएँ जिन्हें विश्लेषक सत्यापन की आवश्यकता होती है |
| CFG विज़ुअलाइज़ेशन | फ़ंक्शन-स्तरीय नियंत्रण-प्रवाह समीक्षा |
| SQLite इतिहास | स्थानीय सत्र साक्ष्य और SHA-256-आधारित निष्कर्ष पुनर्स्थापना |
flowchart LR
Input[PE, ELF, or C source] --> Parse[Bounded parsing and hashing]
Parse --> Structure[Hex and PE structure evidence]
Parse --> Strings[Deterministic string intelligence]
Parse --> Disasm[Capstone disassembly]
Disasm --> Patterns[Deterministic patterns]
Disasm --> Ghidra[Ghidra reconstruction]
Patterns --> Offline[Offline findings]
Patterns --> AI[Optional LLM cross-check]
Strings --> StringAI[Opt-in chunked string AI review]
Ghidra --> AI
Offline --> Reports[HTML, JSON, YARA, CFG]
AI --> Reports
StringAI --> StringJSON[Structured string JSON]
Reports --> History[SHA-256-indexed history]AIDebug का उपयोग केवल उन सॉफ़्टवेयर और सिस्टम पर करें जिनकी जाँच करने के लिए आप अधिकृत हैं, एक पृथक मैलवेयर-विश्लेषण VM या लैब के अंदर।