Hoje eu vou estar falando um novamente sobre aplicações mobile e também sobre o framework Corona SDK. Eu também vou estar publicando uma ferramenta que acabei desenvolvendo durante alguns projetos que eu peguei contendo aplicações geradas com o Corona SDK.
Introdução
O Corona SDK é um framework para a criação de aplicações mobile (Android e iOS). As aplicações são geradas utilizando a linguagem LUA e posteriormente são "convertidas" para a linguagem específica de cada plataforma (Java para Android e Objective-C para iOS). O Corona SDK se apresenta bastante famoso no cenário de games para dispositivos mobile.
Processo de criação / decompilação
O Corona SDK na realidade transforma os códigos LUA em uma representação intermediária (bytecodes) e armazena tudo em um arquivo chamado 'resource.car'. Para realizar a decompilação vamos ter que realizar os seguintes passos:
- Obter o arquivo 'resource.car' de dentro do arquivo apk / ipa (Tarefa fácil de realizar com um dispositivo jailbroken/rooted)
- Extrair os bytecodes de cada arquivo no 'resource.car'
- Realizar a decompilação do bytescodes e obter o código fonte (este passo pode ser realizado com alguns decompilers públicos ja existentes)
ResourceCarUnpacker.py
Eu criei um pequeno script em Python para automatizar os passos 2 e 3 do processo de extração / decompilação. O script abre o arquivo 'resource.car', extrai os bytecodes de cada arquivo fonte (em um diretorio chamado 'byteCode') e utiliza o 'unluac.jar' para realizar a decompilação dos bytecodes do LUA (o código fonte é guardado em um diretório chamado 'source').
![]() |
Figura 01: ResourceCarUnpacker.py |
A ferramenta esta disponível para download no github:
https://github.com/pasknel/hacking-com-tapioca/blob/master/ResourceCarUnpacker/ResourceCarUnpacker.py
O unluac (decompiler) esta disponível no sourceforge:
http://sourceforge.net/projects/unluac/
https://github.com/pasknel/hacking-com-tapioca/blob/master/ResourceCarUnpacker/ResourceCarUnpacker.py
O unluac (decompiler) esta disponível no sourceforge:
http://sourceforge.net/projects/unluac/
Bom dia amigo!
ResponderExcluirEstou tentando o comando python ResourceCarUnpacker.py -h -p /tmp/resourece.car -d /tmp/unluac_2015_06_13.jar mas sem sucesso no que estou errando? Obrigado
Ja tentou sem o '-h' ?
ExcluirOlá, sem o -h ele não dá erro mas não faz nada também, com o -h aparece:
ResponderExcluirpython ResourceCarUnpacker.py -h -p resource.car -d unluac_2015_06_13.jar
usage: ResourceCarUnpacker.py [-h] -p PATH -d DCP
Corona SDK - resource.car extractor
optional arguments:
-h, --help show this help message and exit
-p PATH, --path PATH resource.car path
-d DCP, --dcp DCP Decompiler (unluac.jar) path
Github: https://github.com/pasknel/hacking-com-tapioca/