
केबिन आंशिक विश्लेषण
पढ़ना शुरू करने से पहले, मुझे यह घोषणा करनी है: कृपया जो कुछ भी आप पढ़ते हैं उसे संदेह की दृष्टि से लें, क्योंकि मैं किसी भी तरह से SymbianOS डेवलपर नहीं हूँ और न ही SymbianOS वातावरण से कोई परिचित हूँ।
लेकिन इतनी पुरानी चीज़ का विश्लेषण क्यों? खैर, क्योंकि यह रिमोट हैकिंग में घुसने का सबसे आसान तरीका है, क्योंकि आजकल इस तरह की बकवास 1 मिलियन की ndays/0days से की जाती है 🤑🤑🤑। और क्योंकि मुझमें अभी तक उस तरह की विशेषज्ञता नहीं है।
ठीक है, अब जब हमने यह बकवास निकाल दी है, चलो इसे शुरू करते हैं। WTF है Cabir? यह एक Bluetooth-worm है जो Symbian मोबाइल फोन पर चलता है। उन लोगों के लिए जो सोच रहे हैं कि WTF है Symbian फोन और यह सब। खैर, मूल रूप से यह एक फोन है जो ARM चलाता है, तो यह बिल्कुल नई चीज़ है :) और अधिक संक्षिप्त जानकारी (https://en.wikipedia.org/wiki/S60_(software_platform))
अब हम भाग्यशाली थे कि इसका सोर्स कोड ऑनलाइन उपलब्ध था (vxug की सौजन्य से) (SymbianOS.Cabir.7z)। अब हम इसे संदर्भ के रूप में उपयोग करेंगे, लेकिन सच में उससे क्या। मैं ऐसा करने का एक और कारण यह है कि मैं ARM के साथ खिलवाड़ करना चाहता हूँ। तो हम इसे source/assembly/emulator/debugging/sniffing दृष्टिकोण से देखेंगे।
ठीक है, तो #1 हम सोर्स कोड को कैसे कंपाइल करें?
खैर, यह उतना जटिल नहीं है...
सबसे पहले carbide ++ इंस्टॉल करें (http://www.mediafire.com/file/6z54qrceef73x9s/Carbide_cpp_v2_7_en.exe/file)(from https://gist.github.com/artem78/cb2b9650af186844f7b5654964676284)
अगला, कोई भी perl engine इंस्टॉल करें
अगला, nokia pc suite इंस्टॉल करें (https://www.usitility.com/nokia-pc-suite/)
SDK इंस्टॉल करें (http://www.mediafire.com/file/9uc7fjb2ynmxlud/s60v3.1_SDK.zip/file )
c/c++ plugin इंस्टॉल करें (https://ia800905.us.archive.org/7/items/nokia_sdks_n_dev_tools/s60_open_c_cpp_plug_in_v1_7_en.zip)
और वोइला, हमारा वातावरण तैयार है :)
P.S. बेहतर होगा Windows 7 का उपयोग करें, क्योंकि जाहिर तौर पर Windows 10 पर चीज़ें टूट जाती हैं और सही ढंग से काम नहीं करतीं।
लाइव वातावरण संक्रमण
TBD
इस भाग के लिए जान लें कि आपको अपने फोन को jailbreak करने की आवश्यकता है (हाँ, आपने सही सुना, jailbreak)। यह कैसे होता है?
रिवर्स इंजीनियरिंग विश्लेषण
ठीक है, तो कोई इस चीज़ को कैसे कंपाइल करता है? बहुत अच्छा सवाल। तो मैंने जो किया, वह यह था कि caribe\group फ़ोल्डर से ABLT.BAT को इस तरह चलाया
ठीक है, अब हम जो करते हैं वह यह है कि जहां हमारा SDK इंस्टॉल है वहां जाएं, प्लेटफ़ॉर्म फ़ोल्डर की पहचान करें (मेरे मामले में S60_3rd_fp1), फिर epoc32 फ़ोल्डर ढूंढें, build फ़ोल्डर में जाएं, user फ़ोल्डर, username फ़ोल्डर चुनें और फिर दो या तीन और निर्देशिकाएं, और आप एक ऐसे फ़ोल्डर में पहुंचेंगे जो ऐसा दिखता है
यह वर्तमान पथ है जो लगभग उसी के समान होना चाहिए जो आपके पास होना चाहिए (C:\Symbian\9.2\S60_3rd_FP1\Epoc32\BUILD\Users\pwn\Desktop\CabirSourceCodes\caribe\group)
ठीक है, अब हमें caribe फ़ोल्डर (या जैसा आपने सोर्स कोड का नाम रखा है) में जाना है, और आपको अलग-अलग नामों वाला एक फ़ोल्डर मिलेगा जैसा यहां देखा गया है
यह किस बारे में है? खैर, मूल रूप से जब हम पहली बार ablt.bat चलाते हैं (आज भी मुझे इसका उद्देश्य नहीं पता, लेकिन जो भी हो) हमें अपनी pkg फ़ाइल बनाने के लिए अलग-अलग प्लेटफ़ॉर्म विकल्प मिलते हैं, जिससे हम अपनी sis फ़ाइल उत्पन्न करेंगे। यहां दिए गए मामले में हम GCCE और WINSCW देखते हैं। यदि आप डिफ़ॉल्ट रूप से कमांड ablt.bat build चलाते हैं, तो यह WINSCW के लिए बिल्ड करेगा (जो इम्यूलेटर प्लेटफ़ॉर्म के लिए दिया गया कोड नाम है)। सोर्स कोड कंपाइल करना सीखने के उद्देश्य से अभी हम GCCE का उपयोग करेंगे, लेकिन प्रक्रिया वही है यदि आप, जाने-अनजाने, ARM प्लेटफ़ॉर्म के लिए करते हैं ताकि आप इसे अपने फोन पर अपलोड कर सकें। तो मूल रूप से ablt build arm_whatever चलाएं और फिर यहां तक के बिल्कुल वही चरण करें। ठीक है, अब हम GCCE फ़ोल्डर में जाते हैं
urel फ़ोल्डर में जाएं और वहां caribe.app नामक एक फ़ाइल होनी चाहिए। वहां से आप कमांड लाइन खोलकर चलाना चाहेंगे
तो यह क्या करता है??? खैर, मूल रूप से हमने makesis चलाया जो एक sis फ़ाइल उत्पन्न करता है ताकि हम इसे अपने फोन पर इंस्टॉल कर सकें, और हम caribe सोर्स कोड से sis फ़ाइल में क्यों हैं? खैर, मूल रूप से हमें makesis को caribe.pkg निर्दिष्ट करने की आवश्यकता थी। ठीक है, तो build blah blah फ़ोल्डर तक पहुंचने के लिए यह सब परेशानी क्यों? क्योंकि आपको इसे -d पैरामीटर में निर्दिष्ट करने की आवश्यकता है ताकि यह .sis फ़ाइल उत्पन्न कर सके।
ठीक है, यह विधि केवल sdk v3 पर काम करती है, जिसे इस लेख में संदर्भित किया गया है। जाहिर तौर पर जब मैं प्रयोग कर रहा था, एक समर्पित symbian discord सर्वर के एक dev ने बताया कि cabir sdk v2 के लिए कोड किया गया है, और ऐसे में मैंने जो यहां प्रस्तुत किया है वह बेकार होगा..... यह TBD है जब भी मैं उस तक पहुंच सकता हूँ... क्योंकि वह इन दिनों discord पर काफी ऑफलाइन रहता है...
ठीक है, तो कोई .sis फ़ाइल को कैसे रिवर्स इंजीनियर करता है?
सीधे शब्दों में, .sis फ़ाइल एक संग्रह है। तो... हम unzip करने के लिए siscontents एप्लिकेशन का उपयोग करते हैं और फिर .app फ़ाइल को ida में डालते हैं।
असेंबली परिप्रेक्ष्य
तो पूरी प्रक्रिया ऐसी दिखती है
तो अब हम उस फ़ोल्डर में जाते हैं और अगले 2 में हमें app.app फ़ाइल मिलती है
ठीक है, यदि आप इसे ida में डालते हैं।
ठीक है, तो मूल रूप से एक ARM exe। कमाल है, यार! आगे चलें! हाँ, ज़रूर ~~~
फ़ाइल में symbols हैं, हाँ!!! वैसे हाँ, क्योंकि किसी अजीब कारण से हमने बाइनरी को debug symbols के साथ कंपाइल किया, हम भाग्यशाली रहे!
और चूंकि हमारे पास मूल रूप से कोड है, रिवर्स इंजीनियरिंग की प्रक्रिया लगभग वही है जैसा कि source code analysis अध्याय में वर्णित है :)
स्निफिंग दृष्टिकोण
दुर्भाग्यवश मैं यह नहीं कर सकता, क्योंकि मैंने Fts4bt का उपयोग करने की योजना बनाई थी, क्योंकि मैंने देखा कि यह काफी अच्छा था (https://www.diva-portal.org/smash/get/diva2:24278/FULLTEXT01.pdf)