mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
7.1 KiB
Markdown
54 lines
7.1 KiB
Markdown
# Cordova Apps
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
**अधिक जानकारी के लिए देखें [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. यह एक संक्षेप है:
|
|
|
|
Apache Cordova को **JavaScript, HTML, और CSS** का उपयोग करके **हाइब्रिड एप्लिकेशन** विकसित करने के लिए जाना जाता है। यह Android और iOS एप्लिकेशन बनाने की अनुमति देता है; हालाँकि, इसमें एप्लिकेशन के स्रोत कोड को सुरक्षित करने के लिए कोई डिफ़ॉल्ट तंत्र नहीं है। React Native के विपरीत, Cordova डिफ़ॉल्ट रूप से स्रोत कोड को संकलित नहीं करता है, जो कोड छेड़छाड़ की कमजोरियों का कारण बन सकता है। Cordova एप्लिकेशन को रेंडर करने के लिए WebView का उपयोग करता है, जो HTML और JavaScript कोड को APK या IPA फ़ाइलों में संकलित करने के बाद भी उजागर करता है। दूसरी ओर, React Native JavaScript कोड को निष्पादित करने के लिए एक JavaScript VM का उपयोग करता है, जो बेहतर स्रोत कोड सुरक्षा प्रदान करता है।
|
|
|
|
### Cordova एप्लिकेशन को क्लोन करना
|
|
|
|
Cordova एप्लिकेशन को क्लोन करने से पहले, सुनिश्चित करें कि NodeJS अन्य पूर्वापेक्षाओं जैसे Android SDK, Java JDK, और Gradle के साथ स्थापित है। आधिकारिक Cordova [दस्तावेज़](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) इन इंस्टॉलेशन के लिए एक व्यापक गाइड प्रदान करता है।
|
|
|
|
एक उदाहरण एप्लिकेशन का नाम `Bank.apk` है जिसका पैकेज नाम `com.android.bank` है। स्रोत कोड तक पहुँचने के लिए, `bank.apk` को अनज़िप करें और `bank/assets/www` फ़ोल्डर में जाएँ। इस फ़ोल्डर में एप्लिकेशन का पूरा स्रोत कोड है, जिसमें HTML और JS फ़ाइलें शामिल हैं। एप्लिकेशन की कॉन्फ़िगरेशन `bank/res/xml/config.xml` में मिल सकती है।
|
|
|
|
एप्लिकेशन को क्लोन करने के लिए, इन चरणों का पालन करें:
|
|
```bash
|
|
npm install -g cordova@latest
|
|
cordova create bank-new com.android.bank Bank
|
|
cd bank-new
|
|
```
|
|
`bank/assets/www` की सामग्री को `bank-new/www` में कॉपी करें, `cordova_plugins.js`, `cordova.js`, `cordova-js-src/`, और `plugins/` निर्देशिका को छोड़कर।
|
|
|
|
नया Cordova प्रोजेक्ट बनाते समय प्लेटफ़ॉर्म (Android या iOS) निर्दिष्ट करें। Android ऐप को क्लोन करते समय, Android प्लेटफ़ॉर्म जोड़ें। ध्यान दें कि Cordova के प्लेटफ़ॉर्म संस्करण और Android API स्तर अलग हैं। प्लेटफ़ॉर्म संस्करणों और समर्थित Android APIs के विवरण के लिए Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) देखें।
|
|
|
|
उचित Cordova Android प्लेटफ़ॉर्म संस्करण निर्धारित करने के लिए, मूल एप्लिकेशन के `cordova.js` फ़ाइल में `PLATFORM_VERSION_BUILD_LABEL` की जांच करें।
|
|
|
|
प्लेटफ़ॉर्म सेट करने के बाद, आवश्यक प्लगइन्स स्थापित करें। मूल एप्लिकेशन के `bank/assets/www/cordova_plugins.js` फ़ाइल में सभी प्लगइन्स और उनके संस्करणों की सूची है। नीचे दिखाए अनुसार प्रत्येक प्लगइन को व्यक्तिगत रूप से स्थापित करें:
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add cordova-plugin-dialogs@2.0.1
|
|
```
|
|
यदि कोई प्लगइन npm पर उपलब्ध नहीं है, तो इसे GitHub से प्राप्त किया जा सकता है:
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
|
```
|
|
सुनिश्चित करें कि संकलन से पहले सभी पूर्वापेक्षाएँ पूरी हों:
|
|
```bash
|
|
cd bank-new
|
|
cordova requirements
|
|
```
|
|
APK बनाने के लिए, निम्नलिखित कमांड का उपयोग करें:
|
|
```bash
|
|
cd bank-new
|
|
cordova build android — packageType=apk
|
|
```
|
|
यह कमांड एक APK उत्पन्न करता है जिसमें डिबग विकल्प सक्षम होता है, जो Google Chrome के माध्यम से डिबगिंग को सुविधाजनक बनाता है। यदि एप्लिकेशन में कोड छेड़छाड़ का पता लगाने के तंत्र शामिल हैं, तो स्थापना से पहले APK पर हस्ताक्षर करना महत्वपूर्ण है।
|
|
|
|
### स्वचालन उपकरण
|
|
|
|
जो लोग क्लोनिंग प्रक्रिया को स्वचालित करना चाहते हैं, उनके लिए **[MobSecco](https://github.com/Anof-cyber/MobSecco)** एक अनुशंसित उपकरण है। यह Android एप्लिकेशनों के क्लोनिंग को सरल बनाता है, ऊपर बताए गए चरणों को सरल बनाता है।
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|