Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
unidbg — आपको Android native library का अनुकरण करने की अनुमति देता है, और एक प्रायोगिक iOS अनुकरण | Kitploit
उपकरण/GitHubGitHub/zhkl0228/unidbg
एंड्रॉइड सुरक्षागतिशील विश्लेषण (सैंडबॉक्सिंग)आईओएस सुरक्षारिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषणलर्निंग और शिक्षाAI-सहायित रिवर्सिंग
GitHubzhkl0228/unidbg

unidbg

आपको Android native library का अनुकरण करने की अनुमति देता है, और एक प्रायोगिक iOS अनुकरण

रिपॉजिटरी देखें
5.1k1.2k3723 दिन पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

unidbg

यह आपको एक Android नेटिव लाइब्रेरी को एमुलेट करने की सुविधा देता है, साथ ही एक प्रायोगिक iOS एमुलेशन भी।

यह ELF/MachO फ़ाइल प्रारूप और ARM असेंबली के बारे में अधिक सीखने के लिए एक शैक्षिक परियोजना है।

इसे अपने जोखिम पर उपयोग करें!

Features

  • Cursor और अन्य AI टूल्स के साथ AI-सहायता प्राप्त डिबगिंग के लिए MCP (Model Context Protocol) का समर्थन।
  • JNI Invocation API का एमुलेशन ताकि JNI_OnLoad को कॉल किया जा सके।
  • JavaVM, JNIEnv का समर्थन।
  • syscalls निर्देश का एमुलेशन।
  • ARM32 और ARM64 का समर्थन।
  • Dobby की बदौलत इनलाइन हुक।
  • xHook की बदौलत Android इम्पोर्ट हुक।
  • iOS fishhook, substrate और whale हुक।
  • unicorn बैकएंड सरल कंसोल डिबगर, gdb स्टब, इंस्ट्रक्शन ट्रेस, मेमोरी रीड/राइट ट्रेस का समर्थन करता है।
  • iOS objc और swift रनटाइम का समर्थन।
  • dynarmic फास्ट बैकएंड का समर्थन।
  • Apple M1 हाइपरवाइज़र का समर्थन, जो सबसे तेज़ ARM64 बैकएंड है।
  • Raspberry Pi B4 के साथ Linux KVM बैकएंड का समर्थन।
  • गेस्ट बैकट्रेस और होस्ट स्टैक ट्रेस के साथ एमुलेटेड नेटिव कोड के लिए मेमोरी लीक का पता लगाना।

MCP डिबगर (AI एकीकरण)

unidbg AI-सहायता प्राप्त डिबगिंग के लिए Model Context Protocol (MCP) का समर्थन करता है। जब डिबगर सक्रिय हो, तो कंसोल में mcp टाइप करें ताकि एक MCP सर्वर शुरू हो सके, जिससे AI टूल्स (जैसे Cursor) कनेक्ट हो सकें।

त्वरित आरंभ

unidbg MCP के दो ऑपरेटिंग मोड हैं:

मोड 1: ब्रेकपॉइंट डिबग — डिबगर को अटैच करें और अपना कोड चलाएँ। जब कोई ब्रेकपॉइंट हिट होता है, Breaker.debug() एमुलेटर को रोक देता है — MCP सर्वर शुरू करने के लिए कंसोल में mcp टाइप करें और AI को विश्लेषण में सहायता करने दें। सभी डिबगिंग टूल्स उपलब्ध हैं (रजिस्टर, मेमोरी, डिसअसेंबली, स्टेपिंग, ट्रेसिंग, आदि)। फिर से शुरू करने के बाद, यदि कोई अन्य ब्रेकपॉइंट हिट होता है तो डिबगर फिर से रुक जाता है। एक बार ब्रेकपॉइंट हिट किए बिना निष्पादन पूरा हो जाने पर, प्रक्रिया समाप्त हो जाती है और MCP बंद हो जाता है।

Debugger debugger = emulator.attach();
debugger.addBreakPoint(address);
// run your emulation logic — debugger pauses when breakpoint is hit

मोड 2: कस्टम टूल्स (दोहराने योग्य) — McpToolkit का उपयोग करके कस्टम टूल्स पंजीकृत करें और AI को विभिन्न पैरामीटरों के साथ लक्षित फ़ंक्शनों को फिर से चलाने दें। नेटिव लाइब्रेरी एक बार लोड होती है; प्रत्येक निष्पादन के बाद प्रक्रिया सक्रिय रहती है और अगले रन के लिए MCP सक्रिय रहता है।

McpToolkit toolkit = new McpToolkit();
toolkit.addTool(new McpTool() {
    @Override public String name() { return "encrypt"; }
    @Override public String description() { return "Run encryption"; }
    @Override public String[] paramNames() { return new String[]{"input"}; }
    @Override public void execute(String[] params) {
        String input = params.length > 0 ? params[0] : "default";
        // call encryption with input
    }
});
toolkit.run(emulator.attach());

जब डिबगर रुकता है, तो कंसोल में mcp (या पोर्ट निर्दिष्ट करने के लिए mcp 9239) टाइप करें। फिर Cursor MCP सेटिंग्स में जोड़ें:

{
  "mcpServers": {
    "unidbg-mcp-server": {
      "url": "http://localhost:9239/sse"
    }
  }
}

उपलब्ध MCP टूल्स

स्थिति और जानकारी

ToolDescription
check_connectionएमुलेटर स्थिति: Family, architecture, backend क्षमताएँ, isRunning, लोड किए गए मॉड्यूल
list_modules / get_module_infoलोड किए गए मॉड्यूलों की सूची बनाएँ, निर्यातित सिंबल गणना और निर्भरताओं सहित विवरण प्राप्त करें
list_exportsवैकल्पिक फ़िल्टर और C++ डिमैंगलिंग के साथ एक मॉड्यूल के निर्यातित/डायनामिक सिंबलों की सूची बनाएँ
find_symbolनाम से सिंबल खोजें या पते पर निकटतम सिंबल खोजें
get_threadsएमुलेटर में सभी थ्रेड/कार्यों की सूची बनाएँ

रजिस्टर और डिसअसेंबली

ToolDescription
get_registers / get_register / set_registerCPU रजिस्टर पढ़ें/लिखें
disassembleपते पर मौजूद इंस्ट्रक्शनों को डिसअसेंबल करें (ब्रांच टारगेट सिंबल नामों के साथ स्वतः एनोटेट होते हैं)
assembleइंस्ट्रक्शन टेक्स्ट को मशीन कोड में असेंबल करें
get_callstackवर्तमान कॉल स्टैक (बैकट्रेस) प्राप्त करें

मेमोरी

ToolDescription
read_memory / write_memoryकच्चे मेमोरी बाइट्स पढ़ें/लिखें
read_string / read_std_stringC स्ट्रिंग या C++ std::string पढ़ें (SSO पहचान के साथ)
read_pointerसिंबल रिज़ॉल्यूशन के साथ पॉइंटर श्रृंखला पढ़ें
read_typedमेमोरी को टाइप किए गए मानों के रूप में पढ़ें (int8–int64, float, double, pointer)
search_memoryस्कोप/अनुमति फ़िल्टर के साथ मेमोरी में बाइट पैटर्न खोजें
list_memory_mapअनुमतियों के साथ सभी मेमोरी मैपिंग की सूची बनाएँ
allocate_memory / free_memory / list_allocationsवैकल्पिक प्रारंभिक डेटा के साथ आवंटित करें (malloc/mmap), मुक्त करें, और मेमोरी ब्लॉकों को ट्रैक करें
patchअसेंबल किए गए इंस्ट्रक्शनों को मेमोरी में लिखें

ब्रेकपॉइंट और निष्पादन

ToolDescription
add_breakpoint / add_breakpoint_by_symbol / add_breakpoint_by_offsetपते, सिंबल, या मॉड्यूल+ऑफ़सेट द्वारा ब्रेकपॉइंट जोड़ें
remove_breakpoint / list_breakpointsब्रेकपॉइंट हटाएँ या सूचीबद्ध करें (डिसअसेंबली के साथ)
continue_executionनिष्पादन फिर से शुरू करें। breakpoint_hit या execution_completed के लिए प्रतीक्षा हेतु poll_events का उपयोग करें
step_over / step_into / step_outफ़ंक्शन के ऊपर से, अंदर (N इंस्ट्रक्शन), या बाहर स्टेप करें
next_blockअगले बेसिक ब्लॉक पर रुकें (केवल Unicorn)
step_until_mnemonicमेमोनिक से मेल खाने वाले अगले इंस्ट्रक्शन पर रुकें, जैसे bl, ret (केवल Unicorn)
poll_eventsbreakpoint_hit, execution_completed, trace इवेंट्स के लिए पोल करें

ट्रेसिंग

ToolDescription
trace_codeरजिस्टर रीड/राइट मानों (regs_read, prev_write) के साथ इंस्ट्रक्शनों को ट्रेस करें
trace_read / trace_writeपता सीमा में मेमोरी रीड/राइट को ट्रेस करें

फ़ंक्शन कॉल

ToolDescription
call_functionटाइप किए गए आर्ग्युमेंट्स (hex, string, bytes, null) के साथ पते द्वारा नेटिव फ़ंक्शन कॉल करें। सिंबल रिज़ॉल्यूशन और मेमोरी प्रीव्यू के साथ मान लौटाता है
call_symbolमॉड्यूल + सिंबल नाम द्वारा निर्यातित फ़ंक्शन कॉल करें, जैसे libc.so + malloc

केवल iOS (Family=iOS होने पर उपलब्ध)

ToolDescription
inspect_objc_msgobjc_msgSend कॉल का निरीक्षण करें: रिसीवर क्लास का नाम और सेलेक्टर दिखाएँ, जैसे -[NSString length]
get_objc_class_nameदिए गए पते पर ऑब्जेक्ट का ObjC क्लास नाम प्राप्त करें (शुद्ध मेमोरी पार्सिंग, कोई स्टेट परिवर्तन नहीं)
dump_objc_classObjC क्लास परिभाषा डंप करें (properties, methods, protocols, ivars)
dump_gpb_protobufGPB protobuf मैसेज स्कीमा को .proto प्रारूप में डंप करें (केवल 64-बिट)

कस्टम MCP टूल्स

McpToolkit का उपयोग करके कस्टम टूल्स पंजीकृत करें, जिनमें से प्रत्येक McpTool इंटरफ़ेस को लागू करता है। यह मैन्युअल if-else डिस्पैच को साफ, स्व-निहित टूल क्लासों से बदल देता है। इस बिंदु तक नेटिव लाइब्रेरी पूरी तरह से लोड हो चुकी होती है (JNI_OnLoad / एंट्री पॉइंट पहले ही निष्पादित हो चुका होता है), इसलिए प्रत्येक टूल के execute() के अंदर का कोड विश्लेषण हेतु लक्षित फ़ंक्शन तर्क होता है। AI किसी कस्टम टूल को ट्रिगर करने से पहले ब्रेकपॉइंट और ट्रेस सेट कर सकता है, फिर प्रक्रिया को पुनः आरंभ किए बिना विभिन्न इनपुटों पर निष्पादन परिणामों का निरीक्षण कर सकता है।

Android उदाहरण — कस्टम MCP टूल्स के साथ Android JNI उदाहरण के लिए Utilities64.java देखें:

DalvikModule dm = vm.loadLibrary(new File("libtmessages.29.so"), true);
dm.callJNI_OnLoad(emulator);
cUtilities = vm.resolveClass("org/telegram/messenger/Utilities");
टूल डाउनलोड करें