Scripts pour décompresser les applications Android protégées par Tencent Legu. Cela ne fonctionne qu'avec les versions 4.1.0.15 et 4.1.0.18 de Legu.
Article de blog : https://blog.quarkslab.com/a-glimpse-into-tencents-legu-packer.html
Les fichiers DEX originaux se trouvent dans assets/0OO00l111l1l
avec la disposition suivante :
On peut retrouver le détail de cette structure dans le fichier Kaitai : legu_packed_file.ks
Le hashmap intégré dans la deuxième partie est décrit dans le fichier legu_hashmap.ks :
pylegu contient les liaisons Python pour décrypter et décompresser les données intégrées dans assets/0OO00l111l1l
.
Pour compiler et installer pylegu
:
$ cd pylegu
$ python3.7 ./setup.py build -j4 install --user
$ python -c " import pylegu "
On pourrait également utiliser jap/pyucl pour décompresser les données et aguinet/dragonffi pour lier l'implémentation personnalisée de XTEA.
L'exemple com.intotherain.voicechange.apk est une application suspecte qui peut être décompressée comme suit :
$ python ./unpack.py ./samples/com.intotherain.voicechange.apk
[+] Legu version: 4.1.0.15
[+] Password is ' IPk2Hw7AKTuIQBlc '
[+] Number of dex files: 1
[+] Unpacking # 1 DEX files ...
[+] dex 0 compressed size: 0x1619a3
[+] dex 0 uncompressed size: 0x5671f8
[+] Unpacking # 1 hashmap ...
[+] hashmap 0 compressed size: 0x4399c
[+] hashmap 0 uncompressed size: 0x95558
[+] Unpacking # 1 packed methods ...
[+] packed methods 0 compressed_size: 0xf4636
[+] packed methods 0 uncompressed_size: 0x1e3072
[+] Stage 2: Patching DEX files
[+] Unpacked APK: unpacked.apk
Les fichiers DEX décompressés se trouvent dans le fichier unpacked.apk
.