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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ida_kcpp — ida_kernelcache के ऊपर c++ समर्थन बढ़ाने के लिए एक IDAPython मॉड्यूल | Kitploit
उपकरण/GitHubGitHub/cellebrite-labs/ida_kcpp
स्थैतिक विश्लेषणआईओएस सुरक्षारिवर्स इंजीनियरिंगमोबाइल सुरक्षाबाइनरी विश्लेषण
GitHubcellebrite-labs/ida_kcpp

ida_kcpp

ida_kernelcache के ऊपर c++ समर्थन बढ़ाने के लिए एक IDAPython मॉड्यूल

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

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

सभी देखें →

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

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

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

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

ida_kcpp

iOS kernelcaches को रिवर्स इंजीनियर करने के लिए एक बहुत अधिक सुविधाजनक तरीका प्रदान करने वाला एक IDAPython मॉड्यूल।

iOS kernelcache का बड़ा हिस्सा C++ में लिखा गया है, जो जटिल बाइनरी कोड में संकलित होकर स्पष्ट सीधे कॉल के बजाय कई वर्चुअल टेबल डीरेफ़रेंस का उपयोग करता है। ida_kcpp ida_kernelcache की क्लास पदानुक्रम पुनर्निर्माण का लाभ उठाता है। यह IDB को मैप करता है और बाइनरी फ़ंक्शंस तथा मूल वर्चुअल मेथड्स को सिंक्रोनाइज़ करता है। यह C++ वर्चुअल मेथड कॉल पर डबल-क्लिक करके iOS kernelcache में नेविगेट करने, उनके xrefs खोजने, और लाइव रिसर्च के दौरान इन सबको सिंक्रोनाइज़ रखने में सक्षम बनाता है।

ida_kcpp ida_medigate से प्रेरित है, लेकिन iOS kernelcache की अनूठी संरचना का लाभ उठाते हुए अधिक शक्तिशाली और सुविधाजनक रिसर्च वातावरण प्रदान करता है।

general_view

इंस्टॉलेशन

  • ida_kernelcache (Cellebrite's fork) इंस्टॉल करें
  • वैकल्पिक, लेकिन अत्यधिक अनुशंसित: डीकंपाइलर एक्सेस से structs फ़ील्ड्स xrefs ट्रैकिंग के लिए ida-referee (Cellebrite's fork) इंस्टॉल करें

इनमें से कोई भी PyPI पर नहीं है, इसलिए उनके रेपो में दिए गए इंस्टॉलेशन निर्देशों का पालन करें।

ida-setup के साथ:

ida-setup plugin install -e /path/to/ida-kcpp

या मैन्युअल रूप से:

  1. ida-netnode इंस्टॉल करें
  2. सुनिश्चित करें कि ida_kernelcache और ida_kcpp IDA python पथ में हैं।

इसे ~/.idapro/idapythonrc.py में जोड़कर भी जोड़ा जा सकता है:

import sys
sys.path.append(IDA_KCPP_PATH)
sys.path.append(IDA_KERNELCACHE_PATH)
  1. ~/.idapro/plugins/ida_kcpp_plugin.py को ida_kcpp_plugin.py से symlink करें

उपयोग

प्रारंभिक विश्लेषण

  1. विश्लेषित kernelcache खोलें। यदि ida_kernelcache अभी तक नहीं चला है, तो कृपया इसे चलाएँ edit >> Plugins >> Kernel Cache CPP >> ida_kernelcache process kernel
  2. Edit >> Plugins >> Kernel Cache CPP >> Perform Initial sync... चलाएँ (कुछ चेतावनी messagebox दिखाई दे सकते हैं, आप अभी के लिए उन्हें अनदेखा कर सकते हैं)। यह चरण Virtual functions के नामों को उनके prefix को उस class पर सेट करके बदलता है जिससे वे संबंधित हैं। यह चरण सभी virtual functions को decompile भी करता है, उनका this argument सेट करता है, और संबंधित ::vmethods member को decompiled type के function pointer में बदलता है। इस चरण में काफी समय लग सकता है...
  3. अब एक "Synced IDB" है, लेकिन ध्यान दें - plugin अभी तक सक्रिय नहीं है।

synced IDB के लिए Plugin सक्रिय करना

ida_kcpp स्वचालित रूप से नाम और prototypes propagate करता है, और IDA में navigation के कुछ पहलुओं को भी बदलता है, इसलिए यह स्वचालित रूप से सक्रिय नहीं होता बल्कि किसी भी समय सक्रिय या निष्क्रिय किया जा सकता है।

edit >> Plugins >> Kernel Cache CPP >> Activate Plugin पर क्लिक करके ida_kcpp सक्रिय करें (यह Hexrays hooks install करेगा और ida_kernelcache.collect_class_info() भी चलाएगा)

plugin निष्क्रिय करें

Edit >> Plugins >> Kernel Cache CPP >> Deactivate Plugin पर क्लिक करके

विशेषताओं का अवलोकन

Virtual functions synchronizer

Virtual function का नाम बदलना

किसी virtual function का नाम बदलते समय कोई mangled name (उदाहरण के लिए __ZNK10AppleA7IOP9method_86Ev_99) संपादित कर सकता है, या इसे मानव-पठनीय नामों (AppleA7IOP::method_86) में बदल सकता है जो स्वचालित रूप से mangled हो जाएगा। संबंधित ANCESTOR::vmethods member का भी नाम बदला जाएगा, और उन सभी virtual functions का नाम भी बदला जाएगा जो उसी virtual method को implement करते हैं।

Virtual function prototype का अद्यतन

यही बात virtual function prototype बदलने पर भी लागू होती है। इस स्थिति में, संबंधित ANCESTOR::vmethods member का prototype उस type के function pointer में बदल दिया जाएगा जो अभी सेट किया गया था, साथ ही this को ANCESTOR * के रूप में सेट किया जाएगा। साथ ही, ANCESTOR के DESCENDANTS के सभी संबंधित virtual method implementations के prototypes भी बदले जाएंगे, उनके this को DESCENTANT * पर सेट करके।

बेहतर XREFS

  • हम हर virtual function से उसके abstract ::vmethods member तक एक xref जोड़ते हैं।
  • ida_referee का उपयोग करके हम decompiler में हर field के उपयोग को track कर सकते हैं, और विशेष रूप से ::vmethods member (virtual calls) को।
    • हमने virtual function से CTRL+SHIFT+Y hotkey भी जोड़ा है, जो सीधे उसके संबंधित ::vmethod member के xrefs window को खोलता है। IDA में एक bug है और यह केवल disassembly window से काम करता है, decompiler से नहीं।

बेहतर Navigation

  • Decompiler: किसी virtual function call पर double click करने से एक window pop up होती है जो उपयोगकर्ता को virtual method का implementation चुनने की अनुमति देती है।

    image-20220707161129479

  • Local Types view (Shift+F1):

    • virtual method पर double click करने से implementation पर navigate होता है (नोट: IDA 9 एक rename dialog भी दिखाता है जिसे dismiss किया जा सकता है)
    • virtual method पर Cmd+Enter भी implementation पर navigate करता है (double-click का साफ़ विकल्प)
    • एक IDA bug ठीक किया गया जिसमें :: वाले struct name पर double-click करने से jump नहीं होता था।

भविष्य के सुधार

  1. IDA7.2 c++ classes compatibility में समर्थन जोड़ना। इसके लिए ida_kernelcache structs layout बदलने की आवश्यकता है जो हमने legacy कारणों से अभी तक नहीं किया है
  2. conflicts के लिए name/prototype resolving interface जोड़ना।

मेटा

Cellebrite Labs के Uriel Malin, Ievgen Solodovnykov और Omer Porzecanski द्वारा लिखित। macOS पर Python 3.13 के साथ IDA 9.2 के लिए विकसित और परीक्षित

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