Maison > Opération et maintenance > Sécurité > Quelle est la méthode de rétro-ingénierie sous Android ?

Quelle est la méthode de rétro-ingénierie sous Android ?

WBOY
Libérer: 2023-05-22 09:55:28
avant
1585 Les gens l'ont consulté

1. Obtenez une arme

Xiaobai, si vous souhaitez utiliser cette arme, vous devez d'abord ouvrir les méridiens.

1.1 Méridiens (Environnement)

1.Root, racine de téléphone portable, pas d'Android sans racine. Ce n’est qu’en ouvrant le méridien racine que nous pourrons procéder aux opérations ultérieures.

2. Installation du framework Xposed. Si vous souhaitez utiliser Xposed comme une arme, vous devez d'abord être capable de le récupérer avant de pouvoir l'utiliser.

1.2 armes

xposedBridgeApi-82.jar.jar.

C'est notre arme, Xiaobai, allez, je vais te montrer l'utilisation de base de cette arme.

2. Démonstration d'armes

Quelle est la méthode de rétro-ingénierie sous Android ?

Ici, nous utilisons des armes Xposed pour intercepter packageName puis le sortir.

En fait, cette arme ne peut atteindre sa capacité maximale que lorsqu'elle est associée à une force interne.

Avec la force intérieure, maître, comment faire ça ?

Ne vous précipitez pas, procédons étape par étape.

0x02 Entraînez-vous à utiliser le premier niveau de force interne de Hook (Android Studio 3.0 + Xposed)

Xiaobai, laissez-moi d'abord vous apprendre les points d'acupuncture opérationnels du premier niveau de force interne. Écoute bien.

Configuration de base d'Android Studio 3.0

Fournissons d'abord un environnement pour l'exécution du contenu.

(1) Construisez d'abord un projet qui ne nécessite pas d'activité

Quelle est la méthode de rétro-ingénierie sous Android ?

(2) Importez ensuite le package jar. Et faites un clic droit sur Ajouter en tant que bibliothèque.

Quelle est la méthode de rétro-ingénierie sous Android ?

(3) Remplissez le fichier Androidmanifest.xml.

Quelle est la méthode de rétro-ingénierie sous Android ?

  <meta-data></meta-data>
        <meta-data></meta-data>
        <meta-data></meta-data>
Copier après la connexion

(4) Modifier la méthode de dépendance

Le contenu du package jar existe déjà dans Xposed. Le réemballer provoquera des conflits.

Quelle est la méthode de rétro-ingénierie sous Android ?

(5) Création de modèle Xposed de base

Utilisez alt+enter pour implémenter une méthode.

Quelle est la méthode de rétro-ingénierie sous Android ?

Xiaobai, écoute mes quelques mots.

handleLoadPackage, cette méthode est utilisée pour effectuer des opérations utilisateur lors du chargement du package d'application.

LoadPackageParam loadPackageParam :, ce paramètre contient quelques informations de base sur l'application chargée.

Réalisation de la force interne

Quelle est la méthode de rétro-ingénierie sous Android ?

Cela peut être réalisé en une seule phrase.

XposedBridge.log("HAI_app: " + loadPackageParam.packageName);

Ici, nous devons réfléchir à ce qu'est XposedBridge.log.

L'impression de posedBridge.log sera envoyée à la fonction de journalisation du programme de démarrage du framework xposed. Cela nous facilitera également la visualisation.

Faisons la dernière étape de configuration. Définissez le point de départ.

Créez un nouveau fichier dans le nouveau répertoire des actifs. Le nom du fichier est xposed_init.

Écrivez le nom du package + la classe.

Résultats des tests

Build APK

Installé pour les tests.

Installez-le simplement sur votre téléphone, puis redémarrez-le.

Quelle est la méthode de rétro-ingénierie sous Android ?

Penser

Le soi-disant maître vous guide et la pratique dépend de l'individu. Donc.

Je comprends, Maître, pouvons-nous filtrer par cette méthode simple ? Par exemple, écrivez un système d’analyse simple. Ou autre chose, nous pouvons aussi filtrer cela. Je vais l'essayer moi-même d'abord.

L'auto-culture de Xiaobai

Utilisez ce chemin de fonctionnement pour analyser et filtrer les inscriptions.

Essayez-le simplement.

Utilisez la sous-chaîne de la chaîne Java apprise hier pour filtrer la chaîne.

Quelle est la méthode de rétro-ingénierie sous Android ?

Alors testez-le.

Bien sûr, cela peut aussi être expliqué plus en détail.

0x03 Pratique pratique du pieu en bois

Xiaobai, allez, le maître a trouvé un pieu en bois pour toi, je vais le poinçonner pour toi. Comment fonctionne ce crochet et comment le combattre. Apprenez bien.

Je connais le maître.

Collecte d'informations sur les enjeux

1. Informations de base

Xiaobai, utilisons une arme que nous avons utilisée auparavant pour collecter ces informations de base.

Maître, quel type d'informations collectons-nous habituellement ?

Eh bien, nous devons généralement collecter

1. Le nom du paquet du tas de bois
2 La logique simple du tas de bois
....

Xiao Bai, vous pouvez le récupérer vous-même.

Opération pour les débutants

Le premier est le nom du package. Utilisez des armes, apkhelper.

Quelle est la méthode de rétro-ingénierie sous Android ?

Obtenez les informations sur le nom du package. com.example.login

Puis un simple téléphone logique.

Quelle est la méthode de rétro-ingénierie sous Android ?

2.反编译信息收集

小白啊,收集玩了吗?

收集完了师傅。

好,我们接下来收集反编译信息。知己知彼,方能百战不殆。

师傅的操作

首先我们来看看我们要收集的东西。

1.关键的类名。
2.关键的函数位置。

来用Android Killer武器反编译木桩。

定位。

查看类名,进行记录。

Quelle est la méthode de rétro-ingénierie sous Android ?

小白,看清楚,是这个样子进行记录。

原来是这样。com/example/login/MainActivity;
但是我们要改成这样的。com.example.login.MainActivity

现在就需要定位到关键函数了。

Quelle est la méthode de rétro-ingénierie sous Android ?

这个login就是我们要Hook住的函数啦。

Ljava/lang/String;Ljava/lang/String;从这里我们可以看到是两个输入内容。并且类型是String。我们现在要做的就是要hook住这个输出,然后对其进行输出。

木桩实战练习

环境搭建

好了,小白,前期资料收集的差不多了。我现在要发功了,要看清楚我的使用哦。

先把环境调整好。

然后先做一个简单的过滤。

Quelle est la méthode de rétro-ingénierie sous Android ?

这个时候,收集的包名就排上用场了。

因为是hook的是方法,所以我们这里使用一个方法。

Quelle est la méthode de rétro-ingénierie sous Android ?

第一个参数,要hook的包名+方法名,这个也是我们收集好的。

第二个参数不动

第三个参数方法名

第四个参数 输入的参数

我们有两个String类型的参数,所以才这样写

最后一个参数,就是做一个监听。可以监听这个方法的使用前和使用后。

f for木桩

小白,一切准备你就须,看为师给你f这个木桩。

Quelle est la méthode de rétro-ingénierie sous Android ?

小白,你看这第一招

XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);
Copier après la connexion

这一招搞它的第一个输入。

然后再来看这一招

XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);
Copier après la connexion

这一招搞它的第二个输入。

然后最后一招。

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
Copier après la connexion
Copier après la connexion

这一招就是拦截返回值。

小白啊,这里有一个需要思考的内容。

这样hook的意义或者作用是什么?

小白的思考

师傅,我觉得首先,这样可以拦截下输入的参数,还有返回的值。如果在hook里做一个转发信息的技能。那不就可以成功的对登录账户的人进行账号和密码的获取。

这不就是和钓鱼一样了嘛。

我觉得这是一个很大的漏洞,如果登录厂商没有做相应的处理,那这里我可以拿这个搞死他。

好了,小白,你说的很对,我们现在来对这个进行下测试吧。

f 木桩测试

Quelle est la méthode de rétro-ingénierie sous Android ?

小白啊,你看这里我们就成功的拦截内容了。小白分配给你一个任务,使用hook f来拦截木桩,并确保不管我是否输入正确,木桩能够成功登录。

0x04 木桩f进阶(小白的自我进步)

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
Copier après la connexion
Copier après la connexion

思考一

师傅之前使用了一个param.getResult()获取了返回值,那我是不是可以使用相同的set方法,重新对这个进行赋值啊。

根据各种方式,我们知道了这里的返回值就是Z,也就是布尔型。

说干就干,争取f掉木桩。

Quelle est la méthode de rétro-ingénierie sous Android ?

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal