ZUHAUSEHausüberwachung SoftwareWie kann man die App eines anderen Telefons aus der Ferne hacken?

Wie kann man die App eines anderen Telefons aus der Ferne hacken?

Der beste Home Locator und GPS - Tracker
Wie kann man die App eines anderen Telefons aus der Ferne hacken?
Handy Spion App
Überwachen Sie Anrufe, SMS, GPS, Kamera, Fotos, Videos, WhatsApp, Facebook usw.
App HerunterladenDemo anzeigen

Tatsächlich ist es neben der Analyse der Implementierungsprinzipien von Java-Sprachen wie Java-internen Klassen und Enumerationen auch in einigen spezifischen Szenarien nützlich.Jetzt wird es im Allgemeinen durch Ändern von smali durchgeführt, aber es kann auch auf der Grundlage von Bytecode erfolgen., Dieser Artikel basiert auf der vorherigen Java-Bytecode-Analyse, daher wird nur die Bytecode-Methode besprochen.

Viele eigenständige Spiele und sogar einige Online-Spiele führen die Logikoperationen lokal aus. Der Server empfängt nur die vom Client hochgeladenen Operationsergebnisse. Es gibt auch einige Ladeanwendungen, tatsächlich sind die Funktionen alle nur im lokalen Code enthalten Aber es soll beurteilt werden, ob es eine Zahlung gibt, und wenn es eine Zahlung gibt, wird der Funktionseintrag angezeigt.

Wenn wir seinen Code ändern und das Upload-Ergebnis oder die Entscheidung, ob wir bezahlen sollen, ändern können, was wir wollen, können wir tun, was wir wollen.

dekompilieren

Um die Codelogik der Anwendung zu ändern, müssen wir zuerst analysieren, was die ursprüngliche Codelogik ist.Da der Code der Anwendung jedoch das private Eigentum jedes Unternehmens ist, können wir ihn im Allgemeinen nicht bekommen, es sei denn, der Code ist durchgesickert Dieses Mal können wir nur Dekompilierungstechniken verwenden.

Handy Spion App
Überwachen Sie Anrufe, SMS, GPS, Kamera, Fotos, Videos, WhatsApp, Facebook usw.
App HerunterladenDemo anzeigen

Wenn Sie im Internet nach der Dekompilierungstechnologie von apk suchen, werden Sie wahrscheinlich die folgenden Methoden finden:

  • Verwenden Sie das apktool-Tool, um die apk zu extrahieren
  • Verwenden Sie das dex2jar-Tool, um Android-optimierte dex-Dateien in Java-Klassen zu konvertieren
  • Verwenden Sie das jd-gui-Tool, um den Java-Code in der Klasse anzuzeigen
Wie kann man die App eines anderen Telefons aus der Ferne hacken?

Eine solch umständliche Bedienung ist eigentlich überholt, ich werde ein One-Click-Fool-Operation-Tool für alle einführen.

jadx ist ein Open-Source-Android-Dekompilierungstool, sein Code wird auf github gehostet, Sie können es herunterladen und verwenden. Die Verwendung ist sehr einfach, nach dem Herunterladen entpacken Sie es und geben Sie dann das bin-Verzeichnis ein, um jadx-gui (linux/mac ) oder jadx-gui.bat (Windows), können Sie eine visuelle Oberfläche starten, dann auf "Datei - Öffnen" klicken und die Anwendung auswählen, die wir dekompilieren möchten, Sie können den Code in der apk sehen

Eine Demo-Anwendung wird hier dekompiliert, und ihre MainActivity.onCreate bewertet eine Flag-Variable und öffnet dann Toast. Wenn wir diese apk installieren und ausführen, können wir sehen, dass der Toast erscheint: „Hallo Welt!"

Andere Anwendungen sind ähnlich, Sie können ihren Code auf diese Weise anzeigen. Offiziell veröffentlichte Anwendungen führen jedoch im Allgemeinen Verschleierungsvorgänge durch. Zu diesem Zeitpunkt werden der Klassenname, der Methodenname und der Variablenname des Codes, den wir dekompilieren und verarbeiten, zu a, b, c ist ein bedeutungsloses Zeichen.

Aber nur der Name hat sich geändert, die Ausführungslogik ist genau dieselbe. Solange Sie also vorsichtig genug sind, können Sie die Codelogik immer noch verstehen.

Jadx hat eine leistungsstarke Funktion, die ein Gradle-Projekt exportieren kann, klicken Sie auf „Datei/Als Gradle-Projekt speichern", um ein Gradle-Projekt zu exportieren, und ändern Sie dann die Verzeichnisstruktur. Sie können Android Studio verwenden, um das Projekt zu öffnen und den Code zu bearbeiten und zu ändern.

Wenn die Kompilierung nach der Änderung erfolgreich ist, wurde unser Zweck erreicht und wir können tun, was wir wollen, aber dieses Projekt kann mit hoher Wahrscheinlichkeit nicht erfolgreich kompiliert werden, und es gibt viele seltsame Fehler.

Als nächstes werde ich Sie dazu bringen, diese apk Schritt für Schritt zu entschlüsseln, ihre Logik zu ändern, nicht „Hallo Welt!" zu spielen, sondern „Hallo Java".

Wie kann man die App eines anderen Telefons aus der Ferne hacken?

Ändern Sie den Bytecode der Anwendung

Wir können jadx verwenden, um die Codelogik einfach zu analysieren, aber wenn die Neukompilierung fehlschlägt, müssen wir einen anderen Weg gehen.

Hier ist der Weg, um den Bytecode direkt zu bearbeiten. Wenn Sie diesen Weg gehen, müssen Sie keine dummen Operationen verwenden. Gehen wir es Schritt für Schritt ehrlich an

1. Entpacken Sie die apk

  • apk ist eigentlich ein zip-komprimiertes Paket, wir können sein Suffix in.zip ändern und es dann direkt dekomprimieren
  • Wir legen die dekomprimierten Dinge in das app-release-unsigned-Verzeichnis:
Wie kann man die App eines anderen Telefons aus der Ferne hacken?

2. Konvertieren Sie dex in jar

  • Wir alle wissen, dass die virtuelle Android-Maschine keine gewöhnliche virtuelle Java-Maschine ist, sie kann Java-Klassendateien nicht direkt ausführen und muss in dex-Dateien optimiert werden.
  • Wenn wir den Bytecode ändern, müssen wir ihn zurückkonvertieren.Hier verwenden wir die dex2jar-Funktion des Tools dex-tools:
  • Hier stelle ich nur die Verwendung von Befehlen unter Linux vor, nicht unter Windows, tatsächlich handelt es sich um eine ähnliche Version mit.bat, die Sie selbst suchen können.
  • Klassen.dex in JAR-Datei konvertieren:
  • ~/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh-classes.dex
  • Es wird die Datei "classes-dex2jar.jar" generiert:

3. Ändern Sie den Klassen-Bytecode

  • Tatsächlich ist die JAR-Datei auch ein zip-komprimiertes Paket, wir können das Suffix immer noch direkt in zip ändern und dann dekomprimieren, um MainActivity.class zu finden
  • Zu diesem Zeitpunkt können wir den im vorherigen Artikel erwähnten javap-Befehl verwenden, um den darin enthaltenen Code anzuzeigen:
  • javap -c Hauptaktivität
  • Und wir können sehen, dass, wenn wir mit der Ausführung fortfahren, hello Welt! ausgegeben wird, und wenn wir zu 32 Zeilen springen, hello java! ausgegeben wird.
  • Hier können wir if_icmpne direkt in if_icmpeq ändern, zu Zeile 32 springen, wenn es gleich ist, andernfalls mit der Ausführung fortfahren, sodass der ursprüngliche „hello world!"-Prompt zu „hello java!" wird.
  • Wenn Sie die Klassendatei direkt mit einem Editor öffnen, sind einige Binärwerte darin enthalten.
  • Wie ändern wir es also?
  • Hier verwenden wir ein anderes Tool, jbe, der vollständige Name lautet Java Bytecode Editor
  • Entpacken Sie es nach dem Herunterladen, geben Sie das bin-Verzeichnis ein und verwenden Sie den folgenden Befehl, um die grafische Oberfläche zu öffnen:
  • java ee.ioc.cs.jbe.browser.BrowserApplication
  • Öffnen Sie MainActivity.class in der grafischen Benutzeroberfläche und suchen Sie unseren MainActivity.onCreate-Code
  • Klicken Sie dann auf die Option Code Editor, um den Bytecode zu ändern, hier ändern wir if_icmpne in if_icmpeq und klicken dann auf Save method:
  • Damit ist unsere Logikmodifikation abgeschlossen
Wie kann man die App eines anderen Telefons aus der Ferne hacken?

4. Dex neu verpacken

  • Als nächstes werden wir die apk neu packen, zuerst die Klasse in ein Zip komprimieren, auf die Verzeichnisstruktur achten:
  • Ändern Sie dann das Suffix in jar und verwenden Sie jar2dex, um dex zu generieren:
  • ~/dex-tools-2.1-SNAPSHOT/d2j-jar2dex.sh Klassen-dex2jar.jar
  • Ersetzen Sie dann die ursprüngliche Datei „classes.dex" durch den generierten Index und löschen Sie dann alle gerade generierten temporären Dateien, z. B. die Verzeichnisse „classes-dex2jar.zip" und „classes-dex2jar".

5. Signaturinformationen löschen

  • Im Allgemeinen sind die Anwendungen, die wir erhalten, signierte Anwendungen. Nachdem die Anwendung signiert wurde, werden die Verifizierungsinformationen von Ressourcen und Codes in der apk gespeichert. Wenn wir die dex-Datei ändern, schlägt die Verifizierung fehl, sodass die apk nicht installiert werden kann.
  • Wir müssen also die Originalsignatur löschen.Die spezifische Methode besteht darin, die drei Dateien im META-INF-Verzeichnis zu löschen:
  • CERT.RSA
  • CERT.SF
  • MANIFEST.MF

6. Apk neu verpacken

  • Als nächstes generiert dieselbe komprimierte Datei ein zip-komprimiertes Paket, achten Sie auf die Verzeichnisstruktur:
  • Ändern Sie schließlich das Zip-Suffix in apk, und unsere apk ist gepackt
  • Da unsere neu gepackte apk die Signaturinformationen gelöscht hat, schlägt sie fehl, wenn sie direkt installiert wird, und wir müssen sie neu signieren.
  • Sie können den folgenden Befehl verwenden, um einen Alias als android.keystore zu erstellen, und der Dateiname ist auch die Signaturdatei von android.keystore
  • keytool -genkeypair -alias android.keystore -keyalg RSA -validity 400 -keystore android.keystore
  • Nachdem Sie die Eingabetaste gedrückt haben, können Sie einige Passwörter, Entwicklerinformationen usw. eingeben, und Sie erhalten nach Abschluss eine android.keystore-Datei
  • Dann verwenden wir den erhaltenen android.keystore, um die App neu zu signieren:
  • jarsigner -keystore android.keystore -signedjar release.apk app-release-unsigned.apk android.keystore
  • Holen Sie sich die signierte release.apk, installieren wir sie und führen Sie sie aus, um zu sehen, dass der Toast zu "hello java!" geworden ist.