yaoteng/myhunter (Français)

#####remarque: la chaîne de caractères est très importante. Il peut être modifié avec l’évolution des services de durcissement. S’il est incorrect, le processus de déballage ne peut pas être déclenché. DexHunter exploite « fwrite » et d’autres fonctions libc pour manipuler des fichiers. Mais ces fonctions sont accrochées par le durcissement des services entraînant le crash du processus. Par conséquent, vous ne pouvez pas utiliser l’image fournie pour décompresser les derniers services de hardedning. Vous feriez mieux de remplacer ces fonctions par les appels système directs pour éviter un plantage.,

DexHunter vise à décompresser automatiquement le fichier DEX durci.

DexHunter est basé sur le code source D’Android runtime. Il est composé d’art modifié et d’exécution DVM. Vous pouvez utiliser le runtime modifié pour remplacer le contenu original dans les codes source Android (Android 4.4.3). La modification est principalement dans « art/runtime/class_linker.cc » (ART) et « dalvik/vm/native / dalvik_system_DexFile.rpc » (DVM).

###Utilisation:

Si vous souhaitez décompresser une application, vous devez pousser le « dexname » fichier « /data/ » dans le mobile avant de démarrer l’application., La première ligne de « dexname » est la chaîne de fonctionnalité (faisant référence à « slide.pptx »). La deuxième ligne est le chemin de données de l’application cible (par exemple, « /data/data/com.test.test/ »). Sa fin de ligne devrait être dans le style D’Unix/Linux. Vous pouvez observer le journal à l’aide de « logcat » pour déterminer si la procédure de déballage est terminée. Une fois cela fait, le « entier » généré.le fichier » dex  » est le résultat souhaité qui se trouve dans le répertoire de données de l’application.

###conseils:

  1. DexHunter réutilise simplement le contenu avant la section « class_def » au lieu de les analyser pour l’efficacité., S’il y a des problèmes, vous pouvez les analyser et les réassembler à nouveau ou les modifier statiquement.

  2. Il convient de noter que certains champs « annotation_off » ou « debug_info_off » peuvent être invalides dans le résultat. Ces fichiers n’ont rien à voir avec l’exécution juste pour entraver la décompilation. Nous ne traitons pas cette situation spécifiquement pour le moment. Vous pouvez simplement programmer des scripts pour définir les fichiers non valides avec 0x00000000.,

  3. comme on le sait, certains services de durcissement peuvent protéger plusieurs méthodes dans le fichier dex en restaurant les instructions juste avant d’être exécutées et en les essuyant juste après avoir terminé. Vous devez donc également modifier la fonction « doinvoke » (ART) ou « dvmMterp_invokeMethod » (DVM) pour extraire l’instruction protégée pendant l’exécution.

4)la chaîne d’entités peut être modifiée avec l’évolution des services de durcissement.

5) si le « fwrite » et d’autres fonctions libc échouent, peut-être que ces fonctions sont accrochées en durcissant les services., En conséquence, vous ne pouvez pas vider la mémoire via eux. Vous pouvez contourner cette limitation en appelant directement les appels système pertinents.

DexHunter a sa propre limitation. À mesure que les services de durcissement se développent, DexHunter peut ne pas être efficace à l’avenir. Si vous êtes intéressé, vous pouvez modifier DexHunter pour suivre le rythme des services de durcissement en continu.

###Description du fichier:

« demo.mp4 » est la vidéo de démonstration du déballage d’une application durcie par Ali.

« test.apk  » est l’échantillon utilisé dans la vidéo.

« dexname » est le fichier de configuration utilisé dans la vidéo.,

le répertoire »art » est le runtime modifié pour ART.

le répertoire »dalvik » est le runtime modifié pour DVM.

les fichiers »image » 7z contiennent les fichiers d’image système utilisés dans la vidéo.

Si vous avez des questions, veuillez me contacter par e-mail à [email protected].

Si vous utilisez ce code, merci de citer le document suivant. Merci!

Yueqian Zhang, Xiapu Luo et Haoyang Yin, DexHunter: towards Extracting Hidden Code from Packed Android Applications, Actes du 20e Symposium européen sur la recherche en sécurité informatique (ESORICS), Vienne, Autriche, septembre 2015.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils