Es gibt mehrere Tools, die eine APK-Datei dekompilieren und verschiedene Hooks einfügen können. Wenn Sie den Namen des Installationspakets überprüfen möchten, müssen Sie die Funktion PackageManager.getInstallerName()
aufrufen.Wie man herausfinden kann, ob eine Methode süchtig geworden ist (= 3rd-Party-Methoden, die als Layer fungieren, um Apps zu knacken)
Nun, soweit es mich betrifft, ersetzen sie die Reflexion der Methode und rufen dann entweder die echte Methode oder senden einige gefälschte Ergebnisse.
Dies hat den großen Vorteil, dass es egal ist, ob Sie die Methode nativ oder mit einer Reflektion aufrufen.
In diesem speziellen Fall würde getInstallerName()
immer zurückgeben.
Einige Quellcode für einen solchen Haken ist hier zu finden: http://androidcracking.blogspot.de/2011/03/original-smalihook-java-source.html
Gibt es eine Möglichkeit, diese Haken zu erkennen?
Vielen Dank für Ihre Nachricht Antworten. Offensichtlich ist es unmöglich, die APK zu md5sum (sobald Sie die Summe speichern, ändert sich die Summe), wäre der einzige Weg, den classes.dex zu crc. Auch dex2jar wäre zur Laufzeit zu teuer. Gibt es eine Möglichkeit, einfach nach Klassen der Smali-Klasse zu suchen? Auch würde ich eine allgemeinere Weise brauchen, nicht nur für dieses eine Werkzeug. – Force
Ah, habe nicht verstanden, dass du das zur Laufzeit machen wolltest :) Das ändert die Dinge ziemlich. Ich werde meine Antwort bearbeiten ... – waxspin
Die 'Class.forName()' ist ein guter Ansatz, aber die Klasse ist nicht in den DEX eingefügt, sondern nur den Bytecode geändert. Das heißt, es gibt keine zusätzlichen Methoden. – Force