152 Shares 5658 views

Reverse-Engineering für Anfänger. Alle Android-Anwendungen zum Schutz vor Reverse Engineering

Manchmal will man sehen, und welche Art von in einem bestimmten Programm füllen? Dann hat er ein Reverse-Engineering zu verwenden. Was ist das? Wie funktioniert es? Wie ist dieser Prozess? All dies werden Sie von diesem Artikel erfahren.

Was ist ein Reverse-Engineering-Programme?

So Prozessanwendung Analyse aufgerufen, um zu verstehen, wie es funktioniert, so dass in Zukunft diesen Prozess neu zu erstellen, indem die notwendigen Änderungen vorzunehmen. In der Regel für diesen Zweck Debugger und Assembler verwendet. Je nach Qualität der Software wird anders sein und das Ergebnis verwendet wird, ist die Menge an Zeit, die auf sie aufgewendet werden sollte in einer normalen Form zu bringen. Erklären Reverse-Engineering für Anfänger das beste Beispiel. Da davon eine Anwendung für Android geschrieben auszuführen. Lassen Sie sich jetzt, um herauszufinden, was und wie.

Arbeiten mit Android-Anwendungen

Zunächst müssen wir einige Punkte klären. Die Anwendung verwendet den Bytecode und LogCat. Diese lokalen Pendants zuvor erwähnt Debugger und Assembler. Es ist auch notwendig, die Struktur der Anwendungen selbst zu verstehen. Somit ist jedes Programm eine Datei mit der Endung apk. Er packte zip'om. Wir interessieren uns für seinen Inhalt – Anwendungsressourcen, classes.dex und AndroidManifest.xml. Wenn Sie mit der Programmierung auf Android zu tun, werden die Probleme mit dem ersteren und letzteren nicht. Aber classes.dex – dieses Programm Byte-Code, der speziell für die virtuelle Maschine kompiliert wird. Auszug aus seiner Java-Quellcode im Internet nicht über die Mittel bekommen. Aber ist es möglich, Dalvik Opcodes zu erhalten – ein spezieller Satz von Befehlen, die für die virtuelle Maschine verwendet werden. Für eine Analogie können wir, dass diese Versammlung der lokalen Flut sagen. Classes.dex kann auch mit dem Glas in eine Datei umgewandelt werden. Selbst in einem solchen Fall können Sie ein Java-Code nach Dekompilierung erhalten, die lesbar mehr oder weniger sein wird. Das ist der Weg, den wir gehen.

Dekompilierung

Dieser Prozess wird mit dem Programm Apk Manger durchgeführt. Bevor Sie beginnen, stellen Sie sicher, dass es für devaysa und funktionierende USB-Debugging-Modus der richtige Treiber ist. Zunächst müssen wir die Datei bewegen, die in eine Richtlinie apk_manager Ort-apk-hier-für-modding analysiert werden. Danach sollten Sie Script.bat laufen. Wenn es kein Problem ist, dann die Konsole starten, die grüne Beschriftung sein. Wählen Sie den Punkt Nummer neun – „Decompile“. Sobald der Prozess gestartet wird, ist es notwendig, nicht Konsole zu schließen. Dann offenen apk-Datei, um den Archivierungs und Extrakt unter Verwendung von ihm classes.dex, zu dex2jar Programm verarbeitet werden. Für uns ist das gewünschte Ergebnis ist es notwendig, ein Objekt mit der Endung .bat zu bewegen. Sie werden sehen, die Datei, die in .jar enden wird. Bisher hat das Fenster nicht schließen.

wir analysieren Daten

Um Informationen über die Anwendung zu erhalten, müssen Sie öffnen es manifestieren. Nach ihnen bestimmen wir, dass fungiert als Haupttätigkeit. Sie war es, jetzt die größte Bedeutung für uns präsentiert. Es ist auch wünschenswert, am unteren Rand des Programms zu suchen. Wenn der Boden die Informationen über den Lizenz-Manager ist, ist es wesentlich schwieriger Reverse Engineering durchzuführen. Wenn Sie jd-gui und erweitern Sie die Struktur wechseln, können wir mehrere Namensräume sehen. Es sei angenommen, dass die drei von ihnen. In der ersten sind die Dateien mit Werbung verbunden. Die zweite wird die Lizenz-Manager-Klassen sein. In der dritten, wir sind die erforderlichen Daten ein. Es ist, wenn wir gehen. Es muss den Schlüssel finden und zu entfernen, und dann den Rest der Zeilen, die überprüfen, ob Arbeitsversion lizenziert. Alle diese müssen gereinigt werden. Dann in unserem Apk-Manager suchen nach einem Ort, an dem Ort Bytecode spezifiziert. Nun lassen Sie uns einen kleinen Exkurs machen und das Team aus kommentieren, die möglicherweise Probleme verursachen können. Danach müssen wir nur noch das Programm kompilieren.

Erstellen von Anwendungen

Dies wird uns helfen, alle den gleichen Apk-Manager. In der Konsole, die wir nicht gesperrt haben, wählen Sie den Punkt №14. Weiter Trick. Wenn die Anwendung ziemlich kompliziert ist, wenn Sie beginnen, kann es teilweise oder vollständig seine Wirksamkeit verlieren. Keine Sorge, es bedeutet, dass wir nur auf halbem Weg sind und woanders hingehen. Wir sind auch weiterhin durchführen Reverse-Engineering-Alle Android Apps. Sag mal, was in einem bestimmten Fall zu tun ist, allgemein gesagt, ach, ist unmöglich. Daher sucht Problembereiche ihre eigenen haben. Wenn zum Beispiel ein Anwendungsfenster blockiert Pop-up – Fenster, sollten Sie den Code sehen und den Teil entfernen , die für diesen Dialog zuständig ist. jd-gui mit dieser kann helfen. Wie Sie sehen können, ist die Reversed Engineering kein leichtes Geschäft, und es erfordert einen erheblichen Wissensspeicher. Selbst wenn alles ohne Probleme läuft, wird es notwendig sein, die Leistung von Anwendungen zu testen. Das heißt, das Reverse-Engineering ist mehr zeitraubende Tätigkeit. Wir sind weiterhin arbeiten, bis alle Probleme identifiziert werden.

Sicherheit

Was passiert, wenn wir brauchen Schutz Alle Android-Anwendung von Reverse Engineering? In diesem Fall gibt es zwei Möglichkeiten: die Verwendung von spezifischen Programmen oder die Schaffung einer Code-Struktur, die geschrieben wird einmischen machen Parsen. Die letztere Option eignet sich nur erfahrene Profis, so werden wir nur die erste Methode des Schutzes berücksichtigen. Als spezialisierter Software Verwendung ProGuard. Diese Anwendung, die verwendet wird, Verschleierung und Code-Optimierung zu reduzieren. Wenn das Programm „chase“ durch sie erhalten wir eine Datei mit der Endung * APK kleiner als er. In einem solchen Fall wäre es viel schwieriger zu zerlegen sein. Und der Vorteil dieses Programms ist, dass es auch in den Build-Android-Anwendungen mit r9 Updates eingeführt. Daher nutzen Sie es jeder Entwickler ist die Standard-Tools der Schöpfung und Entwicklung.

Abschluss

Wir können nicht sagen, dass das Reverse-Engineering als etwas dargestellt werden kann, gleichmäßig gut oder schlecht. Natürlich aus der Sicht der Entwickler, die eine Anwendung erstellt haben, ist es nicht ein freudiges Ereignis. Aber auf der anderen Seite in vielen Fällen erfahrene Programmierer die notwendigen Dateien schreiben kann eine Zeit sein, weniger teuer als die Verwendung solcher Werkzeuge. Obwohl für Anfänger Entwickler Reverse-Engineering kann einen guten Dienst leisten, wenn es keine Vorstellung davon, wie etwas zu implementieren, auch beispielhaft und nicht ganz klare Gliederung kann mit der Erreichung dieses Ziel helfen.