Hack le Droid
Mathieu Feulvarc’h
While42 / June 2013
Singapore
A savoir
• Je ne suis pas un expert de la securite
• Mais j’ai travaille dans ce domaine pour de grand
groupes et le gouvernement
• J’apprends en testant =>
– je fais des erreurs
– Ce n’est pas toujours optimal
• Mais ca fonctionne a la fin
• Je deteste les presentations Powerpoint ou tout
est ecrit sur l’ecran et ou on lit plus vite que le
presentateur n’enonce la phrase
Les outils
• APKTool https://code.google.com/p/android-
apktool/
Etapes
• De l’APK aux fichiers “.class”
– Ok, pas vraiment “.class”. Plutot “.jasmin”
• On modifie les fichiers
• On recompile
De l’APK aux fichiers “.smali”
• java -jar apktool.jar d BuzzCityWrapper-debug-unaligned.apk
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file:
C:UsersMathieuapktoolframework1.apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Done.
I: Copying assets and libs...
On modifie les fichiers
• Ne pas oublier de changer Android Manifest XML afin d’y
ajouter la nouvelle activite
• <public type="drawable" name="close" id="0x7f02XXXX" />
– Tout drawable adresse: “0x7f02XXXX” et est unique
• Changer les reference pour le nouveau package dans
AdsWrapper*
• R$drawable.smali: .field public static final close:I =
0x7f02XXXX
• AndroidManifest.xml: <activity
android:name="EXT.DOMAIN.PROJECTNAME.AdsWrapper"
/>
• AdWrapper.smali: "const/high16 v3, 0x7f02" to "const
v3, 0x7f02XXXX"
On recompile
• java -jar apktool.jar b -f BuzzCityDefault-debug-unaligned
• jarsigner -verbose -keystore my-release-key.keystore -
digestalg SHA1 -sigalg MD5withRSA BuzzCityDefault-debug-
unaligned/dist/BuzzCityDefault-debug-unaligned.apk
alias_name
• adb uninstall net.metabaron.buzzcitydefault
• adb install BuzzCityDefault-debug-
unaligned/dist/BuzzCityDefault-debug-unaligned.apk

Hack le droid

  • 1.
    Hack le Droid MathieuFeulvarc’h While42 / June 2013 Singapore
  • 2.
    A savoir • Jene suis pas un expert de la securite • Mais j’ai travaille dans ce domaine pour de grand groupes et le gouvernement • J’apprends en testant => – je fais des erreurs – Ce n’est pas toujours optimal • Mais ca fonctionne a la fin • Je deteste les presentations Powerpoint ou tout est ecrit sur l’ecran et ou on lit plus vite que le presentateur n’enonce la phrase
  • 3.
    Les outils • APKToolhttps://code.google.com/p/android- apktool/
  • 4.
    Etapes • De l’APKaux fichiers “.class” – Ok, pas vraiment “.class”. Plutot “.jasmin” • On modifie les fichiers • On recompile
  • 5.
    De l’APK auxfichiers “.smali” • java -jar apktool.jar d BuzzCityWrapper-debug-unaligned.apk I: Baksmaling... I: Loading resource table... I: Loaded. I: Decoding AndroidManifest.xml with resources... I: Loading resource table from file: C:UsersMathieuapktoolframework1.apk I: Loaded. I: Regular manifest package... I: Decoding file-resources... I: Decoding values */* XMLs... I: Done. I: Copying assets and libs...
  • 6.
    On modifie lesfichiers • Ne pas oublier de changer Android Manifest XML afin d’y ajouter la nouvelle activite • <public type="drawable" name="close" id="0x7f02XXXX" /> – Tout drawable adresse: “0x7f02XXXX” et est unique • Changer les reference pour le nouveau package dans AdsWrapper* • R$drawable.smali: .field public static final close:I = 0x7f02XXXX • AndroidManifest.xml: <activity android:name="EXT.DOMAIN.PROJECTNAME.AdsWrapper" /> • AdWrapper.smali: "const/high16 v3, 0x7f02" to "const v3, 0x7f02XXXX"
  • 7.
    On recompile • java-jar apktool.jar b -f BuzzCityDefault-debug-unaligned • jarsigner -verbose -keystore my-release-key.keystore - digestalg SHA1 -sigalg MD5withRSA BuzzCityDefault-debug- unaligned/dist/BuzzCityDefault-debug-unaligned.apk alias_name • adb uninstall net.metabaron.buzzcitydefault • adb install BuzzCityDefault-debug- unaligned/dist/BuzzCityDefault-debug-unaligned.apk