इस प्रोजेक्ट के बारे में

unidbg एक ओपन-सोर्स Java-आधारित परियोजना है जो Android नेटिव लाइब्रेरी (ELF) और iOS बाइनरी (Mach-O) का अनुकरण करने के लिए डिज़ाइन की गई है। इसका उपयोग मुख्य रूप से सुरक्षा अनुसंधान, रिवर्स इंजीनियरिंग, और मोबाइल अनुप्रयोगों के गतिशील विश्लेषण के लिए किया जाता है। मुख्य क्षमताओं में शामिल हैं: - **आर्किटेक्चर समर्थन**: ARM32 और ARM64 बाइनरी कोड का अनुकरण करता है। - **कई बैकएंड**: Unicorn, dynarmic, Apple M1 हाइपरवाइज़र (macOS पर तेज़ ARM64 अनुकरण के लिए), और Raspberry Pi पर Linux KVM का समर्थन करता है। - **AI-सहायित डिबगिंग (MCP)**: Model Context Protocol (MCP) को एकीकृत करता है जो AI टूल्स (जैसे Cursor) को अनुकरण के दौरान रजिस्टर, मेमोरी, डिसअसेंबली का निरीक्षण करने, ब्रेकपॉइंट सेट करने, निर्देश ट्रेस करने, और नेटिव फ़ंक्शन कॉल करने की अनुमति देता है। - **हुकिंग समर्थन**: Dobby के माध्यम से इनलाइन हुकिंग, xHook के माध्यम से Android इम्पोर्ट हुकिंग, और fishhook, substrate, और whale के माध्यम से iOS हुकिंग को एकीकृत करता है। - **JNI अनुकरण**: JNI Invocation API, JavaVM, और JNIEnv का समर्थन करता है, जिससे JNI_OnLoad का निष्पादन संभव होता है। - **मेमोरी लीक पहचान**: गेस्ट मेमोरी आवंटन को ट्रैक करता है और गेस्ट ARM बैकट्रेस और होस्ट Java स्टैक ट्रेस दोनों के साथ रिपोर्ट उत्पन्न करता है। - **वर्कर पूल**: समवर्ती कार्य प्रसंस्करण के दौरान संसाधन आरंभीकरण ओवरहेड को कम करने के लिए एक थ्रेड-सुरक्षित अनुकरणकर्ता पूल प्रदान करता है। - **डिबगिंग और ट्रेसिंग**: कंसोल डिबगर, GDB स्टब, निर्देश ट्रेसिंग, और मेमोरी रीड/राइट ट्रेसिंग की सुविधा देता है।