Ich versuche, eine App mit Selbstverschlüsselung für Android zu entwickeln.Selbstverschlüsselnde Anwendung zur Vermeidung von Disasmbling auf nicht gerooteten Android-Geräten
Die Idee ist folgende:
- App ausführen sollte es funktioniert (zB Anzeige "Hallo Welt!"), Aber ...
- der App-Code vollständig gespeichert (teilweise) verschlüsselt, das heißt „alle was verschlüsselt werden kann, sollte verschlüsselt sein ", so dass es nicht durch einfaches disassemblieren in einer richtigen Weise gelesen werden kann (dh es wird buchstäblich verschlüsselt (durch AES zum Beispiel), so dass es als eine Anzahl von zufälligen Befehlen/Symbolen oder etw dargestellt wird . falsch).
- der "Teil" der App sollte vor der Ausführung entschlüsselt werden;
- unbenutzte "Teile" der App sollten nach der Verwendung entschlüsselt werden;
- Alle oben genannten Operationen sollten von App selbst durchgeführt werden.
Die Kernidee ist also Selbstverschlüsselung.
Ich weiß, was Verschleierung ist, also bitte nicht erwähnen. Das gleiche gilt für alle Side-Apps. Ich werde nicht den Rest meines Lebens im Reverse-Engineering verbringen))). So ...
- Was ist der richtige Weg, Android (JAVA) -Code zu verschlüsseln?
- Wie kann der oben genannte Algorithmus implementiert werden?
- geben Sie bitte alle Code-Schnipsel, wenn u in der Lage sind, solche Dinge zu tun oder alle Links/Informationen/articles/Pseudo-Code/Ideen
ich, was die Idee ist groß und wirklich interessant, und viele Menschen zu freuen, wissen, wie man ihre Apps schützt.
[EDITED] Dank @Pace und @JimmyB für benutzerdefinierte Classloader Idee. Ich werde versuchen, es umzusetzen. Auch mein Dank an @xalo, der ein metamorphes Motorkonzept vorschlug, werde ich in dieses Thema vertiefen, weil ich denke, dass es mein Ziel in einem größeren Ausmaß erfüllen wird.
Blick in diese Frage ist zu breit für diese Seite. Wahrscheinlich möchten Sie einen benutzerdefinierten Classloader erstellen. – Pace
Sie können prüfen, ob Sie ein benutzerdefiniertes ['ClassLoader'] (https://developer.android.com/reference/java/lang/ClassLoader.html) verwenden/implementieren, das Klassen beim Laden entschlüsselt. Jedoch * wenn * Ihre App den Code entschlüsseln kann, kann jeder Angreifer/Hacker. – JimmyB
Vielen Dank für eine benutzerdefinierte ClassLoader-Idee. Und jetzt verstehe ich, dass meine Frage wirklich zu weit gefasst ist ((( –