2 votes

Comment désactiver FLAG_SECURE en modifiant un fichier apk ?

Je veux modifier une apk pour que son FLAG_SECURE puisse être désactivé. Je ne sais pas si j'ai besoin d'aide. J'ai utilisé Apk tool pour décompiler l'application, je ne sais pas quel fichier spécifique trouver dans smali pour désactiver cela.

5voto

pr0nin Points 353

Il n'y a pas de fichier spécifique à modifier. Au lieu de cela, vous devez rechercher un appel spécifique dans tous les fichiers smali. Heureusement, la syntaxe de Smali est très spécifique, ce qui vous permet d'effectuer une recherche facile à l'aide d'un outil de recherche en texte intégral. Je préfère Agent Ransack (Windows) ou grep -R (en ligne de commande).

En détail, vous devez rechercher dans les fichiers smali l'un des appels suivants :

Landroid/view/Window;->setFlags(II)V
Landroid/view/Window;->addFlags(I)V

Avant chaque appel sur la même ligne, on note quels registres contiennent les paramètres.

addFlags

const/16 v2, 0x2000
invoke-virtual {v1, v2}, Landroid/view/Window;->addFlags(I)V

La deuxième entrée entre crochets est la plus intéressante ( v2 dans l'exemple).

Si ce paramètre est réglé sur 0x2000 . En détail, il s'agit d'un masque de bits et si le 14e bit est activé, la protection contre les captures d'écran est appliquée à l'écran actuel.

En fait, seule la quatrième position compte. Si elle est 2 o 6 (2+4) ou A (8+2) ou C (2+4+8), le bit recherché est activé. Mais en général (dans 99% des cas), vous trouverez la valeur 0x2000 )

Rechercher les lignes précédant le invoke-virtual s'il existe une commande qui définit le registre que nous recherchons, par exemple : const/16 v2, 0x2000

S'il y a l'appel et que le deuxième paramètre a un paramètre avec l'hexadécimal 2 à la position mentionnée, vous pouvez simplement commenter l'ensemble du texte. invoke-virtual ... en plaçant un # devant la ligne.

setFlags

const/16 v1, 0x2000
const/16 v2, 0x2000

invoke-virtual {v0, v1, v2}, Landroid/view/Window;->setFlags(II)V

Pour setFlags, c'est très similaire, à ceci près que l'élément 0x2000 doit être présent dans le deuxième v1 et le troisième v2 mentionné dans les parenthèses.

Faites-le pour chaque occurrence de setFlags / addFlags invocations.

Commentez à nouveau l'ensemble invoke-virtual ... en plaçant un # devant la ligne.

Reconstruction APK

Ensuite, il faut reconstruire( apktool b ... ) et signez l'APK construit avec un certificat personnalisé et vous êtes prêt à installer l'application.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X