Ich entwickle eine Android-Anwendung, die in Kürze veröffentlicht wird. Einige meiner Klassen enthalten sehr vertrauliche Informationen. Mit Proguard verschleierte ich den gesamten Quellcode, aber später stieß ich auf eine große Anzahl von Fehlern. Jetzt plane ich, meinen Code eins nach dem anderen zu verschleiern. Wie man eine bestimmte Klasse verschleiert und den größten Teil der Klasse überspringt? Danke.Wie verschleiern eine bestimmte Klasse auf Android?
Antwort
Ich hatte eine Menge Probleme mit verschleierten Java-Klassen. In der Tat generierte yGuard (yGuard! = Proguard, ich weiß) * .class-Dateien, die nicht in * .dex konvertiert werden konnten.
Wenn Ihr Code sensible Daten enthält, klingt es wie eine Art "security by obscurity". Vielleicht sollten Sie sensible Daten nicht in Ihrer * .class-Datei speichern, sondern in einer verschlüsselten Eigenschaftendatei.
Aber dann könnte man die .class-Dateien dekompilieren und den Entschlüsselungsschlüssel bekommen. Egal, was du tust, wenn du dich in Sicherheit von Dunkelheit verlässt, wird es immer einen Weg geben, es zu brechen. – Marcelo
Jes, sicher. Deshalb habe ich erwähnt, keine Geheimnisse in * .class-Dateien zu speichern. Wenn Sie ein vorab geteiltes Geheimnis in Ihrem Code speichern, kann es gestohlen werden. –
Ja, ich werde deinen Ratschlag @ckuetbach berücksichtigen. Aber ich muss den Code immer noch verschleiern. Ich weiß, es wird nicht viel von einem Super-Genie-Hacker helfen. Aber es sollte jeden offensichtlichen Versuch des Reverse Engineering verhindern. – KnightCavalry
Versuchen Sie, wie diese
verwenden Wenn Sie Verschleierung Prozess machen wollen insbesondere Klasse Sie folgende Codezeile verwenden können.
Syntax:
-keep public class yourPackageName.youClassname { *; }
Beispiel:
-keep public class com.facebook.katana.MainClass {*; }
- 1. android bibliothek projekt verschleiern
- 2. Wie kann ich mit ProGuard nur eine Klasse verschleiern?
- 3. JQuery Last eine bestimmte Klasse
- 4. Minify Android-App, aber nicht verschleiern
- 5. Android: Verkleinerung verschleiern dynamisch zugegriffen Klassen
- 6. Wie nur eine Klasse auf eine bestimmte API-Klasse zugreifen kann
- 7. Wie Java Code schnell verschleiern?
- 8. Android & Proguard - wie verschleiern, aber keinen Code optimieren?
- 9. Wie verschleiern mein Android-Projekt in Eclipse-IDE?
- 10. Putting Passwort auf eine Android-Klasse
- 11. prüft ein Zeiger auf eine bestimmte Klasse C++
- 12. Anwenden nth-child Pseudo-Selektor auf eine bestimmte Zeile Klasse
- 13. Wie kann eine Klasse nur auf bestimmte private Mitglieder einer anderen Klasse zugreifen?
- 14. Generische Einschränkungen für eine bestimmte Klasse, warum?
- 15. Wie kann mein Skript eine bestimmte Schriftart (für eine bestimmte Klasse) ändern?
- 16. Android eine andere Klasse
- 17. Wie kann ProGuard Methoden- und Klassennamen verschleiern?
- 18. Wie lade ich eine Java-Klasse dynamisch auf Android/Dalvik?
- 19. Wie rufen Sie eine andere Klasse auf Android?
- 20. jQuery: Wie Elemente finden * ohne * eine bestimmte Klasse
- 21. Wie öffentliche Maven/Ivy-Repositories für eine bestimmte Klasse suchen?
- 22. Wie verschleiern Web-App vor der Veröffentlichung?
- 23. Verschleiern Skript in Wordpress
- 24. Wie VTune Analyse auf eine bestimmte Funktion
- 25. Wie wird auf eine bestimmte Seite umgeleitet?
- 26. Wie schreibe ich HashCode-Methode für eine bestimmte Klasse?
- 27. Jsoup - wie überprüft man, ob Element eine bestimmte Klasse hat?
- 28. Wie auf bestimmte div Kind einer bestimmten Klasse zugreifen?
- 29. Wie verschleiern einzelne Zeichenfolge in. NET-Assembly
- 30. Android Studio: proguard Zeilennummern falsch, nicht komplett verschleiern
Wahrscheinlich hilfreich: http://stackoverflow.com/questions/4458909/how-to-use-java-annotations-to-guide-androids-proguard – Thilo
Sie verstehen, dass dies keinen Sinn macht, weil. Klasse und .dex-Dateien sind unterschiedlich. Ein Dex sind alle Klassen in einer Datei, es ist unmöglich, nur eine Klasse zu ändern, da Sie auch alle anderen Referenzen in Ihrem Code ändern müssen. –
Meine Erklärung mag ein bisschen komisch sein. Ich beabsichtige, eine Klasse zu verschleiern und einige Fehler zu finden, die auftreten könnten. Wenn es sicher ist, werde ich eine weitere Klasse in den nächsten Verschleierungsvorgang einbeziehen und einige Fehler erneut finden. Ich werde diesen Schritt wiederholen, bis ich mich sicher fühle, ihn auf den Markt zu bringen. – KnightCavalry