Heim >Betrieb und Instandhaltung >Sicherheit >So verschlüsseln Sie eine Android-App
1. Was ist Android-Schnittstellen-Hijacking? Schnittstellen-Hijacking bedeutet, dass Malware im Android-System die Ausführung der Zielsoftware überwacht, wenn sie erkennt, dass es sich bei der aktuell ausgeführten Schnittstelle um eine bestimmte Schnittstelle einer überwachten Anwendung handelt (normalerweise die Anmelde- oder Zahlungsschnittstelle). Eine gefälschte Phishing-Seite wird angezeigt, um Benutzer zur Eingabe von Informationen zu verleiten und letztendlich die Privatsphäre des Benutzers zu stehlen (in böswilliger Absicht Benutzerkontonummer, Kartennummer, Passwort und andere Informationen zu stehlen) oder eine gefälschte Schnittstelle zu verwenden, um Phishing-Betrug zu begehen.
II. Gängige Angriffsmethoden
1. Überwachen Sie das Logocat-Protokoll des Systems. Sobald das Wechselverhalten der Aktivitätsschnittstelle erkannt wird, wird der Angriff ausgeführt und die gefälschte Aktivitätsschnittstelle abgedeckt, um eine Täuschung zu implementieren.
2. Überwachen Sie die System-API. Sobald das Schadprogramm den API-Komponentenaufruf der entsprechenden Schnittstelle abhört, kann es einen Angriff starten.
3. Führen Sie bei Modellen unter 5,0 eine Aufzählung durch, um die Aktivität oben im Stapel zu erhalten, überwachen Sie das Erscheinungsbild der Zielaktivität und starten Sie einen Angriff.
4. Starten Sie den Dienst böswillig, um die Zielanwendung zu überwachen. Beim Wechsel zur Zielaktivität wird ein Dialogfeld angezeigt, das die aktuelle Benutzeroberfläche kapert und den Benutzer verwirrt. Präventionsmaßnahmen
● Für Benutzer
Fast alle Android-Telefone sind mit einer HOME-Taste ausgestattet. Wenn Sie diese gedrückt halten, können Sie kürzlich verwendete Aufgaben anzeigen. Wenn Benutzer zum Anmelden ein Passwort eingeben müssen, können sie die HOME-Taste lange drücken, um die letzten Aufgaben anzuzeigen. Wenn sie beispielsweise beim Anmelden lange die HOME-Taste drücken und feststellen, dass WeChat in den letzten Aufgaben angezeigt wird, wird die aktuelle Anmeldung angezeigt Es handelt sich höchstwahrscheinlich um eine böswillig getarnte Aktivität. Wechseln Sie zu einem anderen Programm und überprüfen Sie die letzten Aufgaben, um herauszufinden, von welchem Programm diese Anmeldeschnittstelle stammt.
● Für Entwickler
Erkennen Sie bei der Entführung von Phishing-Aktivitäten, ob es sich bei der Front-End-Aktivitätsanwendung um sich selbst oder um eine Systemanwendung in der onPause-Methode wichtiger Aktivitäten wie Anmeldefenster oder Benutzerdateneingabe handelt dem Benutzer eine Warnmeldung, die ihn darauf hinweist, dass seine Anmeldeschnittstelle überschrieben wird, und den Klassennamen angibt, der die normale Aktivität abdeckt.
Wenn es sich um einen Hijack vom Typ Popup-Dialog handelt, wird der Lebenszyklus der Aktivität übernommen. Wenn die aktuelle Schnittstelle onResume gefunden wird, wird festgestellt, ob sie gleichzeitig vorhanden ist Geben Sie „hijack“ ein und ermitteln Sie, ob vertrauliche Berechtigungen (globale Alarmberechtigungen, Task-Stack-Erfassungsberechtigungen usw.) enthalten sind. Wenn ja, wird der Benutzer benachrichtigt.
So platzieren Sie Dekompilierungs-„Bomben“ in Android APKDie im obigen Artikel erwähnten „Bomben“ sind eigentlich Dekompiler-Fehler, daher müssen unterschiedliche „Bomben“ für unterschiedliche Dekompilierer entworfen werden. Lassen Sie uns zunächst die häufig verwendeten APK-Dekompilierungstools verstehen: ● baksmali/smali: Baksmali kann binäre Dex-Dateien zur Analyse in Smali-Textdateien konvertieren, und Smali kann Smali-Dateien in Dex-Dateien neu kompilieren.
● Apktool: Integriert Baksmali/Smali für die Verarbeitung von Dex-Dateien und implementiert auch die Dekompilierung von Res-Ressourcendateien (wie Layout/Strings usw.).
● AxmlPrinter: Wird verwendet, um die Binärform von AndroidManifest.xml in die Textform von AndroidManifest.xml zu konvertieren.
● dex2jar: kann Dex in JAR-Dateien konvertieren.
● jd-gui: Kann JAR-Dateien in Java-Quellcode dekompilieren.
● Ida Pro: Wird hauptsächlich zum Dekompilieren von So-Dateien in Apk verwendet. Es unterstützt auch das Dekompilieren von Dex-Dateien in Textformanweisungen ähnlich der Smali-Syntax.
Wie aus dem obigen Dekompilierungstool ersichtlich ist, hat es drei Hauptfunktionen:
● Dekompilieren von Ressourcen wie AndroidManifest.xml, layout.xml
Sie können Dex-Dateien dekompilieren oder in Java-Code konvertieren
● Dekompilieren Daher erfordern die Einstellungen für „Dateien
Bomb“ ein umfassendes Verständnis bestimmter Dateiformate und gelten möglicherweise nur für ein bestimmtes Dekompilierungstool.
Wie verschlüssele ich eine Android-App?Eine Android-App enthält Dex-Dateien, also Dateien, Auflösungen und Assets Ressourcen. Dieser Inhalt kann wie folgt umgeschrieben werden: Die Verschlüsselungstechnologie kann in drei Hauptaspekte unterteilt werden: Schutz von DEX-Dateien, Verschlüsselung von SO-Dateien und Schutz von Ressourcendateien (z. B. Res und Assets). Unverschlüsselte Dex-Dateien stammen aus der Java-Kompilierung und -Verpackung, daher sind die Cracking-Kosten gering und anfällig für Angriffe, angefangen bei der grundlegendsten Form der Verpackung bis hin zur Funktionsausführungskörperextraktion, dem dynamischen Laden und dann mit dem aktuellen vmp-Schutz für virtuelle Maschinen. Die Sicherheit dieser Lösung hat sich nach und nach verbessert, da eine selbst entwickelte virtuelle Maschine zur Interpretation des Funktionskörpers verwendet wird. Wenn der Befehlsverschlüsselungsersatz ordnungsgemäß verwendet wird, wird die Verschlüsselung sehr schwierig so-Datei, von der anfänglichen Segmentverschlüsselung bis zur Verschlüsselungsmethode der benutzerdefinierten Elf-Struktur, kann IDA daran hindern, den Funktionsnamen anzuzeigen, was die Kosten und die Schwierigkeit des Knackens erhöht
● Ressourcenschutz
.Res-Ressourcendateien nutzen die Verschleierung normalerweise nur, um die Schwierigkeit des Reverse Engineering zu erhöhen. Asset-Ressourcen werden grundsätzlich nicht verarbeitet. Aufgrund der wachsenden Zahl von H5-Anwendungen haben einige Anbieter (wie Yidun und Naga) Funktionen zur Asset-Verschlüsselung bereitgestellt, ihre Implementierungsprinzipien sind jedoch unklar.
Zusätzlich zu den oben genannten drei Schutzpunkten gibt es auch Anti-Dekompilierungs-, Anti-Sekundärverpackungs-, Anti-Debugging-, Anti-Simulator-, Anti-Xposed-Funktionen usw.
b) Um eine Dekompilierung zu verhindern, werden auf dem Markt üblicherweise Dekompilierungstools (z. B. apktool) bekämpft und ihre Schwachstellen genutzt, um eine Dekompilierung zum Scheitern zu bringen Speichern Sie es im Code. Signaturinformationen: Vergleichen Sie beim Start die Signaturinformationen der aktuellen APK mit der gespeicherten Signatur in der nativen Ebene. Es gibt bereits Tools für Sicherheitsverletzungen auf dem Markt. Einige Upgrades können an gängigen Implementierungsmethoden vorgenommen werden.
c) Anti-Debugging verhindert durch den Ptrace-Prozess, dass Cracker das Ptrace-Debugging durchführen.
d) Anti-Emulator, erkennt /system/bin/su- und /system/xbin/su-Dateien.
Erkennen Sie den Methodencache von XposedHelpers, um festzustellen, ob er eingehängt ist, um Xposed zu verhindern.
Das obige ist der detaillierte Inhalt vonSo verschlüsseln Sie eine Android-App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!