# Cordova Apps

{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

<details>

<summary>Support HackTricks</summary>

* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

</details>
{% endhint %}

**Para mais detalhes, consulte [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Este é um resumo:

Apache Cordova é reconhecido por permitir o desenvolvimento de **aplicações híbridas** usando **JavaScript, HTML e CSS**. Ele permite a criação de aplicações Android e iOS; no entanto, não possui um mecanismo padrão para proteger o código-fonte da aplicação. Em contraste com o React Native, o Cordova não compila o código-fonte por padrão, o que pode levar a vulnerabilidades de manipulação de código. O Cordova utiliza WebView para renderizar aplicações, expondo o código HTML e JavaScript mesmo após ser compilado em arquivos APK ou IPA. O React Native, por outro lado, emprega uma VM JavaScript para executar o código JavaScript, oferecendo melhor proteção do código-fonte.

### Clonando uma Aplicação Cordova

Antes de clonar uma aplicação Cordova, certifique-se de que o NodeJS está instalado junto com outros pré-requisitos, como o Android SDK, Java JDK e Gradle. A [documentação oficial do Cordova](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) fornece um guia abrangente para essas instalações.

Considere um exemplo de aplicação chamada `Bank.apk` com o nome do pacote `com.android.bank`. Para acessar o código-fonte, descompacte `bank.apk` e navegue até a pasta `bank/assets/www`. Esta pasta contém o código-fonte completo da aplicação, incluindo arquivos HTML e JS. A configuração da aplicação pode ser encontrada em `bank/res/xml/config.xml`.

Para clonar a aplicação, siga estes passos:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
Copie o conteúdo de `bank/assets/www` para `bank-new/www`, excluindo `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` e o diretório `plugins/`.

Especifique a plataforma (Android ou iOS) ao criar um novo projeto Cordova. Para clonar um aplicativo Android, adicione a plataforma Android. Observe que as versões da plataforma do Cordova e os níveis da API do Android são distintos. Consulte a [documentação](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) do Cordova para detalhes sobre versões de plataforma e APIs do Android suportadas.

Para determinar a versão apropriada da plataforma Cordova Android, verifique o `PLATFORM_VERSION_BUILD_LABEL` no arquivo `cordova.js` do aplicativo original.

Após configurar a plataforma, instale os plugins necessários. O arquivo `bank/assets/www/cordova_plugins.js` do aplicativo original lista todos os plugins e suas versões. Instale cada plugin individualmente, conforme mostrado abaixo:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Se um plugin não estiver disponível no npm, ele pode ser obtido do GitHub:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Certifique-se de que todos os pré-requisitos sejam atendidos antes de compilar:
```bash
cd bank-new
cordova requirements
```
Para construir o APK, use o seguinte comando:
```bash
cd bank-new
cordova build android — packageType=apk
```
Este comando gera um APK com a opção de depuração ativada, facilitando a depuração via Google Chrome. É crucial assinar o APK antes da instalação, especialmente se a aplicação incluir mecanismos de detecção de adulteração de código.

### Ferramenta de Automação

Para aqueles que buscam automatizar o processo de clonagem, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** é uma ferramenta recomendada. Ela simplifica a clonagem de aplicativos Android, facilitando os passos descritos acima.

{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

<details>

<summary>Support HackTricks</summary>

* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

</details>
{% endhint %}