Table des matières
Contenu
1. Un tutoriel simple sur un outil utile (Insight)
Que pouvez-vous apprendre ?
2. Analyse du processus d'optimisation Android
3. analyse
.
1. Le processus complet de chargement des classes
Ce logiciel dispose de fonctions auxiliaires puissantes pour analyser le code source c/c++ et java, nous l'utiliserons plus tard, nous donnerons donc une brève introduction.
Choisissez un nouveau projet.
Je veux le dire un peu, maintenant je connais l'importance de l'anglais. Bien sûr, mon anglais n'est pas bon, mais je peux le rechercher dans le dictionnaire.
Ne parlons pas d'abord du contenu, jetons un œil au nom de cette fonction. extraire : Extraire, et et, Processus de traitement Zip, format de fichier compressé, nous savons tous qu'apk est en fait un package compressé zip.
2. Continuez à optimiser
0x03 Analyse et analyse de fichiers DEX Android
PS : Conseils
0x04 Processus de chargement de la classe Android Dex
Maison Opération et maintenance Sécurité Comment créer un nouveau projet sous Android

Comment créer un nouveau projet sous Android

May 29, 2023 pm 11:37 PM
android

Contenu

1. Un tutoriel simple sur un outil utile (Insight)

Que pouvez-vous apprendre ?

Un logiciel d'assistant d'analyse super puissant.

2. Analyse du processus d'optimisation Android

Que pouvez-vous apprendre ?

1. Compréhension approfondie du processus d'optimisation d'Android
2. Observez de près le code source d'Android
2 Vous pouvez voir les fonctions dans la partie inférieure du déballage du grand patron

3. analyse

Que pouvez-vous apprendre ?

1. Autres fonctions pouvant être téléchargées
2. Le processus d'analyse des fichiers dex
3. Peu de connaissances sur le bombardement et la déconnexion

4.

1. Le processus complet de chargement des classes
2. Sélection de classes décompressées et renforcées


0x01 Un tutoriel simple sur un outil utile (Insight)

Ce logiciel dispose de fonctions auxiliaires puissantes pour analyser le code source c/c++ et java, nous l'utiliserons plus tard, nous donnerons donc une brève introduction.

Les outils sont disponibles en pièce jointe. Téléchargez et téléchargez simplement séparément.

SI3US-205035-36448

Un code d'enregistrement est fourni ici.

Installez, suivant, suivant et c'est tout.

Comment créer un nouveau projet sous Android
Créer un nouveau projet

Choisissez un nouveau projet.


Comment créer un nouveau projet sous AndroidMachine unique OK


Comment créer un nouveau projet sous Android
Choisissez la première


Comment créer un nouveau projet sous Android
Sélectionnez Ajouter un arbre, ce qui signifie les ajouter tous.


Comment créer un nouveau projet sous Android
Une fois le chargement terminé

Comment créer un nouveau projet sous Android
nous utiliserons ce logiciel pour l'analyse.

Analyse du processus d'optimisation Android

Je veux le dire un peu, maintenant je connais l'importance de l'anglais. Bien sûr, mon anglais n'est pas bon, mais je peux le rechercher dans le dictionnaire.


Comment créer un nouveau projet sous Android
1.extractAndProcessZip

Ne parlons pas d'abord du contenu, jetons un œil au nom de cette fonction. extraire : Extraire, et et, Processus de traitement Zip, format de fichier compressé, nous savons tous qu'apk est en fait un package compressé zip.

Ensuite, la signification de cette fonction est le processus d'extraction du zip.


Alors analysons-le étape par étape.


Comment créer un nouveau projet sous Android
Voici la définition de la variable intermédiaire de extractAndProcessZip. Ce n’est pas l’objet de notre recherche.


Comment créer un nouveau projet sous Android

DexClassVerifyMode verifyMode = VERIFY_MODE_ALL;
Copier après la connexion

Cette phrase définit verifyMode, qui est le module de vérification. Les données initialisées ici sont VERIFY_MODE_ALL, ce qui signifie que tout est vérifié.

Réflexion

Si nous apportons des modifications ici, pouvons-nous ignorer cette vérification.

Regardons d'autres valeurs.


Comment créer un nouveau projet sous Android
Si vous avez une idée, vous pouvez définir vous-même cette valeur.

DexOptimizerMode dexOptMode = OPTIMIZE_MODE_VERIFIED;
Copier après la connexion


Comment créer un nouveau projet sous Android
Continuons la lecture.


Comment créer un nouveau projet sous Android
Il existe une fonction appelée dexOptCreateEmptyHeader qui, comme son nom l'indique, crée un en-tête vide pour l'optimisation dex.


Comment créer un nouveau projet sous Android
dexOffset, enregistrez la position du fichier afin que nous puissions revenir ici plus tard, qui est en fait la position de départ de la lecture du fichier dex.

Regardons la fonction suivante.


Comment créer un nouveau projet sous AndroidOuvrez l'archive zip, recherchez l'entrée DEX.

Évidemment, cette partie sert à trouver le fichier dex à partir de l'apk.


Ensuite, analysez.


Comment créer un nouveau projet sous Android
Fonction pour extraire quelques décalages de dex.

Comment créer un nouveau projet sous Android

Extrayez les données DEX dans le fichier cache au décalage actuel. Enregistrez quelques décalages du fichier dex.

La prochaine chose à aborder est le processus de dex odexing.


Comment créer un nouveau projet sous Android

C'est là qu'intervient la vérification de l'optimisation.

Vous pouvez modifier le processus d'optimisation ici et même supprimer la vérification de l'optimisation.

Pensez à
d'où proviennent les données ici et où les comparer. ·
Ces données sont comparées dans build.prop.

2. Continuez à optimiser

Faisons le suivi de la fonction dvmContinueOptimization.

PS :
Nous sommes sur le point d'entrer en contact avec un endroit très important et très lié au déballage

Ouvrez la fonction dvmContinueOptimization

Comment créer un nouveau projet sous Android

La première chose est un jugement.


Comment créer un nouveau projet sous Android

Ensuite, il y a une écriture dans le fichier dex.

Alors continuez à lire (le point important arrive)


Comment créer un nouveau projet sous Android

dvmDexFileOpenPartial Si vous avez déjà vu les tutoriels de décompression d'autres personnes, vous devez savoir que c'est le point de terminaison fréquemment utilisé que je connaissais seulement pour le télécharger auparavant, mais maintenant je sais, cette fonction existe dans le code source.

Jetons un coup d'œil à l'appel de la fonction dvmDexFileOpenPartial

Comment créer un nouveau projet sous Android

Elle est appelée deux fois ici, et l'autre fois est sa propre définition.

Jetons d'abord un coup d'œil au prototype de dvmDexFileOpenPartial

int dvmDexFileOpenPartial(const void* addr, int len, DvmDex** ppDvmDex)
Paramètre 1 : L'adresse de base du fichier DEX chargé en mémoire (c'est-à-dire DEX. .035)
Paramètre 2 : La longueur du fichier DEX chargé,
Paramètre 3 : Paramètre de sortie, le fichier DEX est converti en une structure DvmDex, qui contient les classes, les champs, les méthodes et les informations de chaîne du fichier Dex. L'objet du fichier Dex d'exploitation de Dalivk est la structure de la structure


Comment créer un nouveau projet sous Android

Enfin, les informations d'en-tête sont écrites ici.


Comment créer un nouveau projet sous Android

0x03 Analyse et analyse de fichiers DEX Android

dvmRawDexFileOpen() Cette fonction est la fonction clé que nous devons comprendre, elle se trouve dans la fonction RawDexFile.cpp.


Comment créer un nouveau projet sous Android

Définissez d’abord les variables de base.


Comment créer un nouveau projet sous Android

Nous savons tous qu'une chose très importante dans le format de fichier est le nombre magique, voici donc la première étape pour déterminer le nombre magique, verifyMagicAndGetAdler32. La magie ici est le nombre magique.


Comment créer un nouveau projet sous Android

Voici la vérification de l'heure et de la taille du fichier.


Comment créer un nouveau projet sous Android

Cette fonction est une fonction clé, et c'est aussi une fonction sur laquelle nous devons nous concentrer sur l'analyse. Sa fonction principale est de générer le fichier odex correspondant à dex, qui est ce qu'on appelle l'odexisation. Suivons la fonction pour voir.

Comment créer un nouveau projet sous Android

Ce qui suit fait partie de la fonction dexOptGenerateCacheFileName(). Notre principal objectif est de voir où il est produit.

Comment créer un nouveau projet sous Android

Vous pouvez voir ici qu'il est généré dans le répertoire de données, ALOGV("Le fichier cache pour '%s' '%s' est '%s'", fileName, subFileName, nameBuf);
Il semble comme ce format.

C'est-à-dire que notre fichier odex a été généré ici.

La prochaine chose à faire est d'utiliser la fonction dvmDexFileOpenFromFd(), d'optimiser davantage, de compléter le mappage et de le définir comme fichier lisible. Ouvrez cette fonction. L'emplacement est dans DvmDex.cpp.

Comment créer un nouveau projet sous Android

Voyons d'abord où cette fonction est appelée.

Comment créer un nouveau projet sous Android

L'endroit où cette fonction est appelée est notre fonction clé dvmRawDexFileOpen. Cette fonction appelle d'abord dexOptGenerateCacheFileName pour générer odex, puis appelle dvmDexFileOpenFromFd pour une autre optimisation.

La dernière étape de l'optimisation est dexFileParse(), qui consiste à analyser DEX. Ce poste est un bref résumé dans DexFile

Comment créer un nouveau projet sous Android

.

Fonction de contrôle principale dvmRawDexFileOpen() - dexOptGenerateCacheFileName() génère l'odex correspondant - dvmDexFileOpenFromFd() optimise davantage - dexFileParse() analyse dex.

PS : Conseils

Lorsque dexfileopenpartial est dans la section suivante, vous constaterez peut-être qu'il n'y a aucun moyen de le casser, nous pouvons alors choisir dexOptGenerateCacheFileNamePKcS0, dvmdexfileopenfromfd et d'autres fonctions pour passer à la section suivante.

De manière générale, dexfileopenpartial est meilleur pour gérer les choses avec des shells.

0x04 Processus de chargement de la classe Android Dex

D'autres codes sources sont guidés par une fonction de contrôle principale pour guider d'autres fonctions clés à fonctionner. Le processus de chargement de la classe Dex est également comme ça.

Sa fonction de contrôle principale est Dalvik_dalvik_system_DexFile_defineClassNative()


Comment créer un nouveau projet sous Android

Il y a aussi une fonction qui nécessite une attention particulière, Dalvik_dalvik_system_DexFile_openDexFileNative

Ce qui doit être noté ici, c'est qu'il y a deux endroits où vous pouvez vider.


Comment créer un nouveau projet sous Android

Regardons notre fonction de contrôle principale.

Il existe un tel appel dans la fonction de contrôle principale.
Comment créer un nouveau projet sous Android

Cet appel vise à vérifier le cookie, mais ce cookie est probablement le cookie dex déchiffré, vous pouvez donc également vider ce cookie ici.

Alors regarde en bas.


Comment créer un nouveau projet sous Android

Fonction dvmDefineClass, cette fonction est une fonction pour confirmer le chargement de la classe.

Comment créer un nouveau projet sous Android

La fonction porte un jugement toute seule, mais ce qui est renvoyé est bien une grosse tête. Suivons cette fonction pour voir.

Comment créer un nouveau projet sous Android

Comment créer un nouveau projet sous Android

La chose la plus importante ici est clazz, qui est la classe chargée dynamiquement.

Sa valeur est renvoyée par la fonction loadClassFromDex, nous allons donc y jeter un œil plus approfondi.

Comment créer un nouveau projet sous Android

Voir une telle structure ici.

Comment créer un nouveau projet sous Android

Jetons un coup d'œil aux détails de cette structure.

Comment créer un nouveau projet sous Android

Cette structure est-elle exactement la même que la structure dex ? Cela montre que voici ce dont nous avons besoin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Sep 12, 2024 pm 12:23 PM

Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

Le Samsung Galaxy S25 Ultra fuit dans les premières images de rendu avec des rumeurs de modifications de conception révélées Le Samsung Galaxy S25 Ultra fuit dans les premières images de rendu avec des rumeurs de modifications de conception révélées Sep 11, 2024 am 06:37 AM

OnLeaks s'est désormais associé à Android Headlines pour offrir un premier aperçu du Galaxy S25 Ultra, quelques jours après une tentative infructueuse de générer plus de 4 000 $ auprès de ses abonnés X (anciennement Twitter). Pour le contexte, les images de rendu intégrées ci-dessous h

IFA2024 | Le NXTPAPER 14 de TCL n'égalera pas la Galaxy Tab S10 Ultra en termes de performances, mais il lui correspond presque en taille IFA2024 | Le NXTPAPER 14 de TCL n'égalera pas la Galaxy Tab S10 Ultra en termes de performances, mais il lui correspond presque en taille Sep 07, 2024 am 06:35 AM

En plus d'annoncer deux nouveaux smartphones, TCL a également annoncé une nouvelle tablette Android appelée NXTPAPER 14, et sa taille d'écran massive est l'un de ses arguments de vente. Le NXTPAPER 14 est doté de la version 3.0 de la marque emblématique de panneaux LCD mats de TCL.

Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Sep 12, 2024 pm 12:22 PM

Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

Vivo Y300 Pro contient une batterie de 6 500 mAh dans un boîtier mince de 7,69 mm Vivo Y300 Pro contient une batterie de 6 500 mAh dans un boîtier mince de 7,69 mm Sep 07, 2024 am 06:39 AM

Le Vivo Y300 Pro vient d'être entièrement dévoilé et c'est l'un des téléphones Android de milieu de gamme les plus fins avec une grande batterie. Pour être exact, le smartphone ne fait que 7,69 mm d'épaisseur mais dispose d'une batterie de 6 500 mAh. C'est la même capacité que le lancement récent

Le Motorola Razr 50s se présente comme un nouveau budget pliable possible lors d'une fuite précoce Le Motorola Razr 50s se présente comme un nouveau budget pliable possible lors d'une fuite précoce Sep 07, 2024 am 09:35 AM

Motorola a lancé d'innombrables appareils cette année, même si seuls deux d'entre eux sont pliables. Pour le contexte, alors que la plupart des pays du monde ont reçu la paire sous le nom de Razr 50 et Razr 50 Ultra, Motorola les propose en Amérique du Nord sous le nom de Razr 2024 et Razr 2.

Le Samsung Galaxy S24 FE est annoncé pour un lancement moins cher que prévu en quatre couleurs et deux options de mémoire Le Samsung Galaxy S24 FE est annoncé pour un lancement moins cher que prévu en quatre couleurs et deux options de mémoire Sep 12, 2024 pm 09:21 PM

Samsung n'a pas encore donné d'indications sur la date à laquelle il mettrait à jour sa série de smartphones Fan Edition (FE). Dans l’état actuel des choses, le Galaxy S23 FE reste l’édition la plus récente de la société, ayant été présentée début octobre 2023. Cependant, de nombreux

Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Sep 27, 2024 am 06:23 AM

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

See all articles