डीबग न किए जा सकने वाले ऐप की डीबगिंग
- हाल ही में एक ऐसा ऐप मिला जिसे डीबग करना संभव नहीं था। यह ऐप debugger कनेक्शन को ब्लॉक करता है, code injection होने पर जल्दी बंद हो जाता है, और jailbreak किए गए डिवाइस पर चलाने पर पूरे फोन को crash कर देता है।
- iOS ऐप्स में अक्सर jailbreak detection या code obfuscation जैसी अतिरिक्त सुरक्षा शामिल होती है। यह ऐप खास तौर पर कई सुरक्षा परतों को साथ में जोड़ता है।
वीडियो संस्करण
- इस पोस्ट का एक वीडियो संस्करण भी है, जो प्रक्रिया को और अधिक विस्तार से दिखाता है।
विषय सूची
PT_DENY_ATTACH
PT_DENY_ATTACH बायपास (आसान मोड)
PT_DENY_ATTACH बायपास (कठिन मोड)
- फोन crash
- code injection
- समापन
PT_DENY_ATTACH
- debugger को कनेक्ट करना पहला कदम है। jailbreak किए गए फोन पर आमतौर पर debugger कनेक्ट करना आसान होता है।
ptrace नाम का एक फ़ंक्शन debugger कनेक्शन को ब्लॉक करता है। यह फ़ंक्शन PT_DENY_ATTACH request के ज़रिए debugger के भविष्य के कनेक्शन को रोक देता है।
PT_DENY_ATTACH बायपास (आसान मोड)
PT_DENY_ATTACH कॉल होने के बाद ही debugger को ब्लॉक करता है। अगर कॉल से पहले breakpoint सेट कर दिया जाए, तो debugger सामान्य रूप से कनेक्ट हो जाता है।
ptrace फ़ंक्शन पर ही breakpoint सेट करके इस कॉल को बायपास किया जा सकता है।
PT_DENY_ATTACH बायपास (कठिन मोड)
- कुछ डेवलपर
ptrace की जगह सीधे system call का उपयोग करके debugger ब्लॉकिंग लागू करते हैं।
- इस स्थिति में, binary में उस system call को ढूंढकर उसे बायपास करना पड़ता है।
फोन crash
- ऐप कुछ खास परिस्थितियों में फोन को soft reboot करा देता है। यह memory-intensive methods को infinite loop में कॉल करने की वजह से होता है।
lldb का उपयोग करके इस method को बायपास किया जा सकता है।
code injection
- code injection के समय ऐप crash हो जाता है। संभव है कि यह app group identifier गलत होने की वजह से होने वाली समस्या हो।
- jailbreak किए गए फोन पर ऐप को दोबारा sign किए बिना भी code inject किया जा सकता है। अन्य स्थितियों में method swizzling करके इस समस्या को हल किया जा सकता है।
1 टिप्पणियां
Hacker News राय
Bryce Bostwick debugging और reverse engineering apps में बहुत शानदार और प्रेरक काम करते हैं
DOS/Windows में anti-debugging tricks बहुत पहले से आम रही हैं
यह हैरानी की बात है कि Apple का App Store review direct system calls करने वाले apps को reject नहीं करता
यह जानने की जिज्ञासा है कि लेखक ने
mov w16, #26की जगहsvc 0x80क्यों search कियालेखक सवालों के जवाब देने के लिए तैयार हैं
ऊपर का वीडियो बहुत शानदार programming वीडियो है
यह जानने की जिज्ञासा है कि यह app एक वैध app है या malware समझकर debug किया गया था
PT_DENY_ATTACH bypass (Hard Mode)
com.apple.tw.twrrnotification के बारे में जिज्ञासा हैयह जानने की जिज्ञासा है कि क्या लोग websites के JavaScript code का reverse engineering करते हैं
यह जानने की जिज्ञासा है कि क्या jailbroken iPhone पर custom kexts चलाए जा सकते हैं