Aller au contenu

« Documentation de l'API Jeuxvideo.com » : différence entre les versions

→‎Reverse-engineering : Mise à jour
(→‎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://android-applications-gratuites.com/wp-content/uploads/2013/03/com.jeuxvideo.apk ici] (version 2.3). Ensuite, décompressez-le avec 7-Zip :
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="aes_a">73A8202A24D470847E180EBA14434D16</string>
  <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 com.jeuxvideo.activity'
  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 = 'D034ED0612F7607C179BC66894A71654'
  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 ==
332

modifications