# Cordova 应用
☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥 * 你在一家 **网络安全公司** 工作吗?想要在 HackTricks 中 **宣传你的公司** 吗?或者你想要获得 **PEASS 的最新版本或下载 HackTricks 的 PDF 版本** 吗?请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)! * 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family) * 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com) * **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass),或者在 **Twitter** 上 **关注** 我 [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享你的黑客技巧。**
从文章 [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)。 Cordova 的一个主要问题是它**没有默认的方法来保护**应用的**源代码**,不像 React Native。Cordova 应用的源代码没有默认的编译方法,这使得代码篡改变得容易。Cordova 应用使用 WebView 来渲染应用,使用 HTML 和 JS,即使将其编译为 APK 或 IPA,源代码仍然可以被公开访问,而 React Native 使用 JavaScript VM 来运行 JavaScript 代码。 ### 克隆 Cordova 应用 要创建一个 Cordova 应用,我们需要安装 NodeJS。除了 NodeJS,我们还需要安装其他一些东西来完成构建过程,如 Android SDK、Java JDK 和 Gradle。你可以参考[官方文档](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` 文件夹。我们可以查看 Cordova 应用的**完整源代码**。所有的 HTML 和 JS 代码都可以用来创建应用的克隆。我们还可以在 `bank/res/xml/config.xml` 中找到应用的配置文件。 现在我们可以创建一个新的 Cordova 应用项目: ```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版本的支持。 Android API和Cordova Android平台版本是不同的。您可以[查看](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)平台版本的列表以及它们对Android API的支持。 要添加Cordova Android平台,我们需要找出应用程序最初使用的版本。如果您使用不同的版本,可能会遇到问题,因为我们正在使用相同的源代码来克隆应用程序。您可以打开`cordova.js`文件并搜索`PLATFORM_VERSION_BUILD_LABEL`以找到应用程序使用的版本。 \ 现在我们已经添加了Android平台支持,我们可以添加应用程序使用的所有必需插件。在原始应用程序的`bank/assets/www/cordova_plugins.js`中,我们可以找到应用程序使用的所有插件的列表。我们需要逐个安装这些插件。在`cordova_plugins.js`文件中搜索`module.exports.metadata`。我们可以看到所有插件及其版本。
Cordova Plugins

Cordova插件

我们需要使用以下命令逐个安装所有插件 ```bash cd bank-new cordova plugin add cordova-plugin-dialogs@2.0.1 ``` {% hint style="warning" %} 如果在npm上找不到插件,请在Github上搜索: ```bash cd bank-new cordova plugin add https://github.com/moderna/cordova-plugin-cache.git ``` {% endhint %} 编译应用程序之前,我们需要确保已经安装了所有的要求。 ```bash cd bank-new cordova requirements ``` 一旦我们准备好所有的设置,我们就可以构建apk文件。 ```bash cd bank-new cordova build android — packageType=apk ``` 上述的构建命令将创建一个启用调试方法的apk,这样我们就可以使用Google Chrome调试应用程序。在安装apk之前,请确保对apk进行签名。如果应用程序具有代码篡改检测,除非没有设置特定配置,否则将被绕过。 ### 自动化工具 [**MobSecco**](https://github.com/Anof-cyber/MobSecco):一个自动化克隆Android应用程序的完整过程的工具。
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 你在一家**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! * 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family) * 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com) * **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass)或**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**