332
modifications
(→Liens externes : Ajout d'APK plus récents) |
(→Reverse-engineering : Mise à jour) |
||
Ligne 245 : | Ligne 245 : | ||
Cette section concerne la décompilation de l'application Android de JVC sous Linux. | Cette section concerne la décompilation de l'application Android de JVC sous Linux. | ||
Pour décompiler l'application JVC, commencez par récupérer le fichier APK [http:// | Pour décompiler l'application JVC, commencez par récupérer le fichier APK [http://painarguer.alwaysdata.net/com.jeuxvideo-2.5.apk ici] (version 2.5). Ensuite, décompressez-le avec 7-Zip : | ||
$ 7z x com.jeuxvideo.apk | $ 7z x com.jeuxvideo-2.5.apk | ||
Puis, transformez le .dex en .jar à l'aide de l'utilitaire [http://code.google.com/p/dex2jar/downloads/list dex2jar] : | Puis, transformez le .dex en .jar à l'aide de l'utilitaire [http://code.google.com/p/dex2jar/downloads/list dex2jar] : | ||
Ligne 270 : | Ligne 270 : | ||
Ce n'est pas tout. À partir de la version 2.1 de l'application JVC, et dans toutes les version de l'application JVC MP, vous pourrez également voir dans le fichier strings.xml des variables telles que : | Ce n'est pas tout. À partir de la version 2.1 de l'application JVC, et dans toutes les version de l'application JVC MP, vous pourrez également voir dans le fichier strings.xml des variables telles que : | ||
<string name=" | <string name="md5_a">290B2FB20CFD682C120BBBFFFE5928D9</string> | ||
Ces chaînes de caractères (des URL et quelques salts) sont obfusquées. Après avoir lu un peu de code, j'ai trouvé comment les restituer. Voici un bout de Python qui montre comment faire : | Ces chaînes de caractères (des URL et quelques salts) sont obfusquées. Après avoir lu un peu de code, j'ai trouvé comment les restituer. Voici un bout de Python qui montre comment faire : | ||
Ligne 276 : | Ligne 276 : | ||
from Crypto.Cipher import AES | from Crypto.Cipher import AES | ||
from passlib.utils.pbkdf2 import pbkdf2 | from passlib.utils.pbkdf2 import pbkdf2 | ||
cle = 'package | cle = 'package android.content' | ||
cle = AES.new(pbkdf2(cle, cle, 10, 128/8, 'hmac-sha1')) | cle = AES.new(pbkdf2(cle, cle, 10, 128/8, 'hmac-sha1')) | ||
string = ' | string = '290B2FB20CFD682C120BBBFFFE5928D9' | ||
string = cle.decrypt(string.decode('hex')) | string = cle.decrypt(string.decode('hex')) | ||
print repr(string[:-ord(string[-1])]) | print repr(string[:-ord(string[-1])]) | ||
Ligne 288 : | Ligne 288 : | ||
* Pour l'application Jeuxvideo.com (version >= 2.1), c'est ''package com.jeuxvideo.activity'' | * Pour l'application Jeuxvideo.com (version >= 2.1), c'est ''package com.jeuxvideo.activity'' | ||
* Pour l'application Jeuxvideo.com (version >= 2.5), c'est ''package android.content'' | * Pour l'application Jeuxvideo.com (version >= 2.5), c'est ''package android.content'' | ||
* Pour l'application Jeuxvideo.com MP 1.0, c'est ''package com.jeuxvideomp.activity'' | * Pour l'application Jeuxvideo.com MP (version >= 1.0), c'est ''package com.jeuxvideomp.activity'' | ||
== Liens externes == | == Liens externes == |
modifications