MASTG-TECH-0098: Aplicação de Patches em Aplicações React Native
Se o framework React Native foi utilizado para desenvolvimento, o código principal do aplicativo está no arquivo Payload/[APP].app/main.jsbundle. Este arquivo contém o código JavaScript. Na maioria das vezes, o código JavaScript neste arquivo está minificado. Com a ferramenta JStillery, é possível obter uma versão legível do arquivo, o que permitirá a análise de código. A versão CLI do JStillery e o servidor local são preferíveis à versão online, pois esta última divulga o código-fonte para terceiros.
No momento da instalação, o arquivo do aplicativo é descompactado na pasta /private/var/containers/Bundle/Application/[GUID]/[APP].app a partir do iOS 10, portanto, o arquivo JavaScript principal do aplicativo pode ser modificado nesse local.
Para identificar a localização exata da pasta do aplicativo, você pode usar instalador de IPA:
- Use o comando
ipainstaller -lpara listar os aplicativos instalados no dispositivo. Obtenha o nome do aplicativo alvo a partir da lista de saída. - Use o comando
ipainstaller -i [APP_NAME]para exibir informações sobre o aplicativo alvo, incluindo as localizações das pastas de instalação e dados. - Pegue o caminho referenciado na linha que começa com
Application:.
Use a seguinte abordagem para aplicar um patch no arquivo JavaScript:
- Navegue até a pasta do aplicativo.
- Copie o conteúdo do arquivo
Payload/[APP].app/main.jsbundlepara um arquivo temporário. - Use o
JStillerypara embelezar e desofuscar o conteúdo do arquivo temporário. - Identifique o código no arquivo temporário que deve ser modificado e aplique o patch.
- Coloque o código modificado em uma única linha e copie-o para o arquivo original
Payload/[APP].app/main.jsbundle. - Feche e reinicie o aplicativo.