Maison  >  Article  >  Opération et maintenance  >  Comment chiffrer une application Android

Comment chiffrer une application Android

WBOY
WBOYavant
2023-05-26 08:47:191302parcourir

1. Qu'est-ce que le piratage d'interface Android

Le piratage d'interface signifie que dans le système Android, un logiciel malveillant surveille le fonctionnement du logiciel cible lorsqu'il détecte que l'interface en cours d'exécution est une interface spécifique d'une application surveillée (généralement l'interface de connexion ou de paiement). Une fausse page de phishing apparaît pour inciter les utilisateurs à saisir des informations, volant finalement la vie privée de l'utilisateur (vol malveillant du numéro de compte utilisateur, du numéro de carte, du mot de passe et d'autres informations), ou utilisant une fausse interface pour commettre une fraude par phishing.

Android app如何加密

II. Méthodes d'attaque courantes

1. Surveillez le journal Logocat du système. Une fois le comportement de changement d'interface d'activité détecté, l'attaque sera effectuée et la fausse interface d'activité sera couverte pour mettre en œuvre la tromperie.

2. Surveillez l'API du système. Une fois que le programme malveillant écoute l'appel du composant API de l'interface concernée, il peut lancer une attaque.

3. Pour les modèles inférieurs à 5.0, énumérez pour obtenir l'activité en haut de la pile, surveillez l'apparence de l'activité cible et lancez une attaque.

4. Démarrez le service de manière malveillante pour surveiller l'application cible Lorsque vous passez à l'activité cible, une boîte de dialogue apparaît pour détourner l'interface actuelle et confondre l'utilisateur

3. Mesures de prévention

gird Pour les utilisateurs

Presque tous les téléphones Android sont équipés d'un bouton HOME Si vous le maintenez enfoncé, vous pouvez afficher les tâches récemment utilisées. Lorsque les utilisateurs doivent saisir un mot de passe pour se connecter, ils peuvent appuyer longuement sur le bouton ACCUEIL pour afficher les tâches récentes. Par exemple, s'ils appuient longuement sur le bouton ACCUEIL lors de la connexion et constatent que WeChat apparaît dans les tâches récentes, alors la connexion actuelle. L'interface est très probablement une activité déguisée de manière malveillante. Passez à un autre programme et vérifiez les tâches récentes pour savoir de quel programme provient cette interface de connexion.

● Pour les développeurs

Pour le piratage de type activité de phishing, détectez si l'application d'activité frontale est elle-même ou une application système dans la méthode onPause des activités clés telles que la fenêtre de connexion ou la saisie de la confidentialité de l'utilisateur, indiquez si des risques malveillants sont détectés. à l'utilisateur un message d'avertissement, l'invitant que son interface de connexion sera écrasée et donnant le nom de classe qui couvre l'activité normale.

S'il s'agit d'un détournement de type pop-up dialog, reprenez le cycle de vie de l'Activité. Lorsque l'interface actuelle onResume est trouvée, déterminez si elle a perdu le focus si elle existe en même temps, c'est peut-être le cas ; un détournement de type boîte de dialogue et déterminez le processus actif en cours d'exécution à ce moment-là. Si les autorisations sensibles (autorisations d'alerte globales, autorisations d'acquisition de pile de tâches, etc.) sont incluses, et si tel est le cas, l'utilisateur sera alerté.

Comment placer des "bombes" de décompilation dans l'APK Android

Les "bombes" mentionnées dans l'article ci-dessus sont en fait des bugs du décompilateur, donc différentes "bombes" doivent être conçues pour différents décompilateurs. Commençons par comprendre les outils de décompilation APK couramment utilisés :

weight baksmali/smali : baksmali peut convertir des fichiers dex binaires en fichiers texte smali pour analyse, et smali peut recompiler des fichiers smali en fichiers dex.

Quantity Apktool : intègre baksmali/smali pour le traitement des fichiers dex et implémente également la décompilation des fichiers de ressources res (tels que la mise en page/les chaînes, etc.).

Quantity AxmlPrinter : utilisé pour convertir la forme binaire d'AndroidManifest.xml en forme texte d'AndroidManifest.xml.

Quantity dex2jar : peut convertir dex en fichiers jar.

weight jd-gui : Peut décompiler les fichiers jar en code source Java.

weight Ida Pro : principalement utilisé pour décompiler les fichiers So dans Apk. Il prend également en charge la décompilation des fichiers dex en instructions sous forme de texte similaires à la syntaxe smali.

Comme le montre l'outil de décompilation ci-dessus, il a trois fonctions principales :

Quantity Décompiler des ressources, telles que AndroidManifest.xml, layout.xml

Vous pouvez décompiler les fichiers Dex ou les convertir en code Java

weight Décompiler Ainsi, les paramètres de fichiers

Bomb" nécessitent une compréhension considérable des formats de fichiers spécifiques et peuvent ne concerner qu'un certain outil de décompilation.

Comment crypter une application Android ?

Une application Android comprend des fichiers dex, donc des fichiers, des ressources et des actifs. ressources. Ce contenu peut être réécrit comme suit : La technologie de cryptage peut être divisée en trois aspects principaux : la protection des fichiers DEX, le cryptage des fichiers SO et les fichiers de ressources (tels que les ressources et les actifs) Protection

weight Protection dex

Non crypté. Les fichiers dex proviennent de la compilation et du packaging Java, le coût de craquage est donc faible et vulnérable aux attaques, depuis la forme de packaging la plus basique, jusqu'à l'extraction du corps d'exécution, le chargement dynamique, puis avec la protection actuelle de la machine virtuelle vmp, le. la sécurité de cette solution s'est progressivement améliorée. Surtout dans le renforcement vmp, une machine virtuelle auto-développée est utilisée pour interpréter le corps de la fonction. Si le remplacement du cryptage des instructions est utilisé correctement, ce sera très difficile pour les crackers

gip donc le cryptage

.

so fichier, du cryptage du segment initial à la méthode de cryptage de la structure elf personnalisée, peut empêcher IDA de visualiser le nom de la fonction, augmentant ainsi le coût et la difficulté du piratage

● Protection des ressources

Les fichiers de ressources

res n'utilisent généralement que l'obscurcissement pour augmenter la difficulté de l'ingénierie inverse. Les ressources d'actifs ne sont généralement pas traitées. En raison du nombre croissant d'applications H5, certains fournisseurs (tels que Yidun et Naga) ont fourni des fonctions de chiffrement des actifs, mais leurs principes de mise en œuvre ne sont pas clairs.

En plus des trois points de protection ci-dessus, il existe également des fonctions anti-décompilation, anti-emballage secondaire, anti-débogage, anti-simulateur, anti-exposition, etc.

b) Afin d'empêcher la décompilation, les outils de décompilation (tels que apktool) sur le marché sont généralement contrés et leurs vulnérabilités sont utilisées pour provoquer l'échec de la décompilation.

b) Pour éviter le packaging secondaire, la méthode la plus couramment utilisée consiste à. enregistrez-le dans le code. Informations de signature : comparez les informations de signature de l'apk actuel avec la signature enregistrée dans la couche native lors du démarrage. Il existe déjà des outils de piratage sur le marché. Certaines mises à niveau peuvent être apportées aux méthodes de mise en œuvre courantes.

c) L'anti-débogage, via le processus ptrace, empêche les crackers de déboguer ptrace.

d) Anti-émulateur, détecte les fichiers /system/bin/su et /system/xbin/su.

Détectez le methodCache de XposedHelpers pour déterminer s'il est accroché pour empêcher xposed.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer