अपने ब्राउज़र में रिवर्स इंजीनियरिंग। एक executable डालें, कुछ ही सेकंड में पहली नज़र पाएं। binkeep PE, ELF और Mach-O के लिए एक मुफ़्त, ओपन सोर्स बाइनरी विश्लेषण टूल है: disassembler, functions, cross-references, strings, imports, YARA और packer detection। फ़ाइल कभी अपलोड नहीं होती, और पहली विज़िट के बाद यह ऑफ़लाइन काम करता है।
इसे आज़माएं: https://kano92-dir.github.io/binkeep/

यह Ghidra का विकल्प नहीं है। यह किसी अज्ञात बाइनरी को देखने के पहले हिस्से को कवर करता है, बिना कुछ इंस्टॉल किए: malware triage, CTF चुनौतियाँ, यह जाँचना कि किसी डाउनलोड किए गए टूल में क्या imports हैं, या दो builds की तुलना करना।


विशेषताएँ
फ़ॉर्मेट
- PE32 / PE32+ (Windows), ELF32 / ELF64 (Linux, किसी भी endianness में), Mach-O 32/64 और universal binaries (macOS, iOS)
- बाकी सब कुछ फिर भी hex, strings, entropy और YARA पाता है
अवलोकन
- Headers, entry point, compile time, linked libraries, platform और SDK संस्करण
- सुरक्षा mitigations: ASLR, DEP, CFG (PE); PIE, NX, RELRO, canary, FORTIFY (ELF); PIE, canary, ARC, hardened runtime (Mach-O)
- Packer detection: UPX, Themida, VMProtect, ASPack, MPRESS, PECompact, Enigma, .NET obfuscators और अन्य, section names और byte signatures के आधार पर, साथ ही heuristics (code entropy, import count, entry point placement)
- Authenticode: signer, issuer, validity, timestamp, और फ़ाइल digest की पुनर्गणना यह दिखाने के लिए कि signing के बाद फ़ाइल बदली या नहीं
- Mach-O code signature: identifier, team ID, ad-hoc या developer, hardened runtime
- Toolchain संकेत: Go, Rust, Nim, PyInstaller, NSIS, Inno Setup, AutoIt, Electron, .NET, GCC
कोड
- कोड के पूर्ण linear sweep से function सूची, साथ ही
.pdata (x64 PE) और LC_FUNCTION_STARTS (Mach-O)
- Cross-references: कौन किसी function को कॉल करता है, कौन सा कोड किसी import का उपयोग करता है, कौन सा कोड किसी string को पढ़ता है
- Disassembly (x86, x64, ARM, ARM64, WebAssembly में Capstone के माध्यम से) IAT, GOT और Mach-O stubs के ज़रिए API नामों के साथ, inline strings, क्लिक करने योग्य branches
- किसी भी function के लिए control flow graph: taken / not taken / loop edges वाले basic blocks, pan और zoom, listing और graph के बीच स्विच करने के लिए
Space
- आपके अपने function नाम और टिप्पणियाँ (disassembly में
N, ;, X), प्रति फ़ाइल hash ब्राउज़र में सहेजी जाती हैं
डेटा
- section bands के साथ entropy graph, R/W/X flags वाले sections
- heuristic tags (injection, anti-debug, network, crypto, persistence, ...) और call counts के साथ imports
- Strings (ASCII और UTF-16) regex filter, categories, और "referenced by code" filter के साथ
- PE resources: version info, manifest (requested execution level), application icon, और embedded executables या archives
- Hex view जो बड़ी फ़ाइलों पर भी तेज़ रहता है
वर्कफ़्लो
- YARA: WebAssembly में कंपाइल किया गया असली libyara,
pe, elf और math modules के साथ। आपके rules ब्राउज़र में रखे जाते हैं और आपके द्वारा खोली जाने वाली हर फ़ाइल पर चलते हैं
- दो फ़ाइलों की तुलना करें: बदले हुए headers, sections, imports, exports और strings
- Share link: रिपोर्ट को URL fragment (
#r=...) में संपीड़ित किया जाता है, जिसे ब्राउज़र कभी किसी सर्वर को नहीं भेजते। फ़ाइल स्वयं कभी शामिल नहीं होती
- रिपोर्ट को Markdown या JSON के रूप में export करें
- Command palette (
Ctrl+K / Cmd+K): किसी भी function, import, symbol, string, address या action पर जाएं
- ऐप के रूप में इंस्टॉल करने योग्य, ऑफ़लाइन काम करता है
इसे स्वयं होस्ट करें
यह एक static साइट है जिसमें कोई build step नहीं है। GitHub Pages जैसा है वैसा ही काम करता है: repository को push करें, फिर Settings > Pages में main branch और root folder चुनें।
स्थानीय रूप से चलाएं
python serve.py
फिर http://localhost:8765 खोलें। कोई भी स्टैटिक फ़ाइल सर्वर काम करता है, बशर्ते वह .js को text/javascript के रूप में और .wasm को application/wasm के रूप में सर्व करे।
कोई बिल्ड स्टेप नहीं। Capstone (capstone-wasm 1.0.3) और libyara (libyara-wasm 1.2.1) vendor/ में बंडल किए गए हैं।
गोपनीयता
सारा विश्लेषण पेज में ही होता है। केवल नेटवर्क अनुरोध ऐप फ़ाइलों और Google Fonts के होते हैं। शेयर लिंक में रिपोर्ट होती है, फ़ाइल नहीं, और # के बाद का भाग कभी किसी सर्वर को नहीं भेजा जाता।
सीमाएँ
- फ़ंक्शन खोज एक रैखिक स्वीप है: कोड के अंदर का डेटा गलत पढ़ा जा सकता है, और जो फ़ंक्शन केवल पॉइंटर के माध्यम से पहुँचे जाते हैं वे छूट सकते हैं
- Authenticode प्रमाणपत्र श्रृंखला सत्यापित नहीं की जाती, केवल फ़ाइल डाइजेस्ट
- अभी तक कोई डीकंपाइलर नहीं (योजना में है)
- API टैग संकेत हैं। वैध सॉफ़्टवेयर उन सभी API का उपयोग करता है
लाइसेंस
binkeep MIT लाइसेंस के अंतर्गत है, देखें LICENSE।
बंडल किया गया तृतीय-पक्ष कोड, जिसके साथ vendor/ में लाइसेंस पाठ हैं: