mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.3 KiB
Markdown
54 lines
3.3 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 渲染应用程序,即使在编译成 APK 或 IPA 文件后,HTML 和 JavaScript 代码仍然暴露。相反,React Native 使用 JavaScript VM 执行 JavaScript 代码,提供更好的源代码保护。
|
||
|
||
### 克隆 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 API 的详细信息,请参阅 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}}
|