Ich entwickle gerade ein Zahlungsabwicklungs-App für Android, und ich möchte verhindern, dass ein Hacker Zugriff auf Ressourcen, Assets oder Quellcode der APK Datei.
Wenn jemand die .apk-Erweiterung in .zip ändert, kann er sie entpacken und problemlos auf alle Ressourcen und Assets der App zugreifen. dex2jar und einem Java-Decompiler können sie auch auf den Quellcode zugreifen. Es ist sehr einfach, eine Android-APK-Datei zurückzuentwickeln - weitere Einzelheiten finden Sie in der Stack Overflow-Frage Reverse Engineering von einer APK-Datei zu einem Projekt .
Ich habe das Proguard-Tool verwendet, das mit dem Android-SDK geliefert wird. Wenn ich eine APK-Datei zurückentwickle, die mit einem signierten Keystore und Proguard erstellt wurde, erhalte ich verschleierten Code.
Die Namen der Android-Komponenten bleiben jedoch unverändert und einige Codes, wie die in der App verwendeten Schlüsselwerte, bleiben unverändert. Laut Proguard-Dokumentation kann das Tool die in der Manifestdatei genannten Komponenten nicht verschleiern.
Jetzt sind meine Fragen:
- Wie kann ich vollständig verhindern Reverse Engineering einer Android APK? Ist dies möglich?
- Wie kann ich alle Ressourcen, Assets und den Quellcode der App schützen, so dass Hacker die APK-Datei in keiner Weise hacken können?
- Gibt es eine Möglichkeit, das Hacken zu erschweren oder gar unmöglich zu machen? Was kann ich noch tun, um den Quellcode in meiner APK-Datei zu schützen?