web-dev-qa-db-fra.com

Obfuscation dans Android Studio

Existe-t-il un outil d'obscurcissement à utiliser avec Android Studio ? Le plug-in IntelliGuard est déclaré être pris en charge par le Studio, mais il ne fonctionne pas réellement en raison du plug-in AntSupport manquant. Je ne peux pas en trouver un dans le référentiel. Des idées?

P.S. Android Le processus de construction de Studio est basé sur Gradle, donc je ne m'attendrais pas du tout à voir du support Ant. Peut-être que je me trompe.

37
Ilia Nedoluzhko
  • Obfuscation de base

Pour masquer le code dans Android studio, accédez simplement à votre fichier build.gradle dans votre Android projet Studio:

enter image description here

Modifiez la propriété minifyEnabled de false à true

enter image description here

C'est une offuscation de base.

Après avoir généré l'apk, vous pouvez voir le résultat de l'obscurcissement décompilant l'apk avec n'importe quel logiciel, par exemple, cette page peut vous aider:

http://www.decompileandroid.com/

Dans le résultat de l'obscurcissement, vous verrez des classes avec un nom: a, b, c ....

enter image description here

Et les variables et méthodes d'obscurcissement auront également des noms comme aa, c, ac ...

enter image description here

  • Obfuscation normale:

Pour brouiller le code sous une forme plus complexe, vous pouvez aller dans votre application de répertoire racine et créer un fichier .pro, par exemple dans l'image suivante, j'ai créé le fichier: proguard-rules-new.pro, dans le même répertoire, vous devez voir un fichier appelé proguard-rules.pro

enter image description here

Maintenant, ajoutez le fichier que vous avez créé au fichier build.gradle

enter image description here

Et modifiez le fichier .pro que vous avez créé avec vos propres règles de progression personnalisées

enter image description here

55
Led Machine

Activez d'abord minifyEnabled dans votre fichier build.gradle, comme

minifyEnabled true

Après cela, ajoutez les lignes ci-dessous dans le fichier progurad-rules.txt

-keep class yourpackage.** { *; }
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

Pour vérifier que son fonctionnement fonctionne bien, allez à:

http://www.javadecompilers.com/apktool site Web afin que vous puissiez vérifier après décompilation.

Cela fonctionnera et vos classes seront complètement cachées.

11
amit pandya

Android Septembre 2018 sort un nouvel outil R8 outil de rétrécissement et d'obscurcissement.

R8 - R8 est un Java réducteur de code et outil de minification qui convertit Java code d'octet en code dex optimisé)

  1. Ouvrir gradle.properties
  2. Ajouter Android.enableR8 = true

comme

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit

Android.enableR8 = true

Exigences minimales :

  • Android studio 3.2 version septembre 2018 ou supérieure
  • Java 8

Outil R8

10
Pavneet_Singh

Proguard est bien pris en charge sur Android studio. Vous devez configurer Gradle pour l'exécuter. Instructions: http://tools.Android.com/tech-docs/new-build -system/user-guide # TOC-Running-ProGuard

2
Anup Cowkur