Maison >Opération et maintenance >Sécurité >Comment idaPro analyse le script Lua de décryptage d'application
Grâce au débogage ou au hooking idaPro précédent, nous pouvons obtenir la clé de décryptage xxtea. Pour le signer, nous pouvons ouvrir directement le fichier original :
. On peut obtenir la clé de déchiffrement de xxtea. Pour signer, on peut directement ouvrir le fichier original : Par conséquent, nous pouvons essayer d'utiliser l'outil de décryptage xxtea (en récupérant le code source sur GitHub et en le compilant) pour décrypter
En prenant index.luac comme exemple, nous regardons les changements dans index.luac avant et après décryptage :
Le script Lua décrypté par xxtea n'est toujours pas du texte clair ! Nous avons précédemment déterminé que le cryptage xxtea était utilisé sur la base du code source du framework cocos2d et du résultat du décodage maître apk, et que le script Lua de l'application a également une valeur de signature, qui confirme également qu'il s'agit de la méthode de cryptage xxtea, mais le résultat que nous avons déchiffré n'est toujours pas du texte brut, ce qui montre que le décryptage n'est peut-être pas terminé. Vous devez retourner sur idapro pour le savoir. O Utilisez IDAPRO pour ouvrir libgame.so, recherchez BYDS dans la fenêtre Export, trouvez la fonction BYDS_D et double-cliquez dans :
directement F5 affichera le code de l'éditeur :
Le code dans le code source est équivalent. S'il n'est pas terminé, vous devez appeler le niveau précédent de cette fonction pour continuer le processus de décryptage. Nous JUMP XREFS suivons cet appel de fonction :
sur deux, dont l'une est la table GOT.
n'est qu'une fonction wrapper, on continue à suivre :
Double-cliquez pour entrer :
On voit que le nom de cette fonction est le même que celui appelé xxtea_decrypt dans le code source . Début Cette fonction est incluse dans le point de rupture. Vous pouvez maintenant voir clairement qu'une fois le script décrypté par byds_d, il a été à nouveau décompressé. Il devrait maintenant être fondamentalement clair. Le script lua doit être compressé et crypté, donc si vous souhaitez le restaurer, vous devez d'abord le décrypter. avec xxtea puis décryptez-le. Vous pouvez trouver un script pour décompresser zlib sur GitHub, qui peut être utilisé pour décompresser le texte déchiffré.
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!