Ich arbeite an einer Sicherheitsfunktion in meiner Android-App und will App zum Absturz, wenn eine bestimmte Bedingung erfüllt ist wie Erkennung von gerooteten Gerät, Temperendetektion etc. Ich werde explizit NullPointerException werfen, um die App zu stürzen wenn Die Sicherheit meiner App ist in den oben genannten Situationen beeinträchtigt. Ist es der richtige Ansatz? Kann ein Hacker die Ausnahme irgendwie fangen, um das Programm noch laufen zu lassen?Die Android-App zum Absturz bringen
Antwort
In einer typischen Umgebung sollte Ihre App nicht mehr funktionieren und beendet werden. Wenn jemand wollte, könnten sie wahrscheinlich den Absturz mit anderen Frameworks wie xposed stoppen. Anstatt eine Ausnahme auszulösen, warum stoppen Sie nicht einfach Ihre App und beenden Sie sie?
Sie können versuchen, zu finish()
eine Aktivität und/oder Ihre Anwendung beenden mit System.exit(0)
Neben @Allan W Antwort oben, beachten Sie, dass verwurzelte Geräte zu erfassen, Manipulationserkennung usw. ein Spiel von Katz und Maus .
Es ist ziemlich üblich in Geräten mit Xposed zu verstecken xposed und root mit der Tatsache, dass Sie Xposed haben. Ähnlich verwendet SuHide root, um root zu verbergen. Ähnliche Workarounds gibt es für die Gerätekompatibilitätsprüfung von Google.
Meiner Meinung nach ist es unwahrscheinlich, dass Sie lokale Informationen erstellen können Vollständig hack-proof - Ihre beste Option ist es, sicherheitskritische Daten auf Servern zu halten, die Sie kontrollieren.
- 1. PHP zum Absturz bringen
- 2. Was könnte einen dynamischen_cast zum Absturz bringen?
- 3. Was könnte VS2008 zum Absturz bringen und dann explorer.exe mitnehmen?
- 4. Wie kann ich Python 3.5 zum Absturz bringen?
- 5. iOS-Geräte ändern iOS-App zum Absturz bringen
- 6. Swift: Hilfe zum Finden von Inkonsistenzen, die meine App zum Absturz bringen
- 7. Ich kann einen gen_server nicht durch Absturz von einem spawn_linked-Prozess zum Absturz bringen
- 8. Speicherprobleme, die mein c-Programm zum Absturz bringen, aber es stürzt beim Debuggen nicht ab?
- 9. Kann ein SIGSEGV in Java die JVM nicht zum Absturz bringen?
- 10. Fensterfokus einstellen/zum Vordergrund bringen
- 11. PyMySQL Cursor zum Anfang bringen
- 12. App, die zum Absturz mit FormsAppCompatActivity führt
- 13. Intent-Service verursacht die App zum Absturz
- 14. Chance zum Absturz?
- 15. Collada Modell verursacht A-Frame zum Absturz zu bringen, wenn sie um
- 16. Was ist der beste Weg, um absichtlich meine Windows-Anwendung zum Absturz zu bringen?
- 17. C++: Sollte ich alle Ausnahmen abfangen oder das Programm zum Absturz bringen?
- 18. Wie kann ich Genymotion beim Start in OSX nicht zum Absturz bringen?
- 19. Sollte ein fehlerhaftes USB-Gerät einen fehlerfreien Linux-Kernel zum Absturz bringen?
- 20. Warum würde der Aufruf von Calloc'ed Memory mein VC6-Projekt zum Absturz bringen?
- 21. Netfilter in Kernel-Modul bewirkt, dass mein System zum Absturz bringen
- 22. -Setup nginx nicht zum Absturz bringen, wenn Host in Upstream nicht
- 23. java.lang.IncompatibleClassChangeError verursacht App zum Absturz zu bringen, mit Firebase und Google Play-Dienste
- 24. Server zum Absturz bringen nach meinem Python-Skript starten zu arbeiten
- 25. ChartJS Liniendiagramm führt zum Absturz des Browsers
- 26. Probleme, die eine Bare-Metal-ARM-Anwendung zum Booten bringen
- 27. Interop verursacht Unity zum Absturz
- 28. AsyncTask-Erstellung führt zum Absturz
- 29. getBoundingClientRect() verursacht Javascript zum Absturz?
- 30. Script verursacht DevTools zum Absturz
Danke für die Antwort. Das ist ein guter Vorschlag. Ich möchte meine App vollständig anhalten. Funktioniert System.exit (0) in diesem Fall, wenn ich mehrere Aktivitäten habe? Ich habe einige Posts gelesen, in denen stand, dass die aktuelle Aktivität geschlossen und die App von früheren Aktivitäten neu gestartet wird. – MobileAppDeveloper
@ MobileAppDeveloper, die von Ihrer Implementierung abhängen kann. Mein einziger Anwendungsfall war eine Aktivität, die die vorherige (Haupt-) Aktivität zum Neustart anzeigte. Aber wenn Sie nur einmal die zweite Aktivitätsebene überprüfen, bedeutet das nicht, dass Benutzer, die den Test nicht bestehen, trotzdem auf die erste Ebene zugreifen können? Wenn die Sicherheit sehr wichtig ist, müssen Sie wahrscheinlich an wichtigen Punkten in Ihrer App viele Prüfungen hinzufügen. –