Über uns
Der Bytecode Viewer (BCV) wurde extrem benutzer- und einsteigerfreundlich gestaltet, deshalb ist fast alles
über eine Schnittstelle zugänglich, wie z.B. Einstellungen, Werkzeuge, etc.
Um loszulegen einfach eine Jar/APK/Class-Datei in die Ressourcenliste ziehen.
Einstellungen
- Fat Jar: {fatJar}
- Java: {java}
- Javac: {javac}
- BCV Dir: {bcvDir}
- Python 2.7 (oder PyPy): {python}
- Python 3.X (oder PyPy): {python3}
- RT.jar: {rt}
- Optional Lib: {lib}
- BCV Krakatau: v{krakatauVersion}
- Krakatau Dir: {krakatauDir}
- BCV Enjarify: v{enjarifyVersion}
- Enjarify Dir: {enjarifyDir}
Kommandozeilen-Schnittstelle (CLI)
- -help Zeigt das Hilfemenü an
- -list Zeigt die verfügbaren Dekompilierer an
- -decompiler [decompiler] Wählt einen Decompiler aus, standardmäßig procyon
- -i [input file] Wählt die Eingabedatei aus (Jar, Class, APK, ZIP, DEX funktionieren alle automatisch)
- -o [Ausgabedatei] Wählt die Ausgabedatei aus (Java oder Java-Bytecode)
- -t [target classname] Muss entweder der voll qualifizierte Klassenname sein oder "all", um alle als zip zu dekompilieren
- -nowait Wartet nicht auf den Benutzer, um die CLI-Meldungen zu lesen
Datei
- Hinzufügen (Strg + O) - Wenn Sie ein jar/zip hinzufügen, wird BCV es entpacken, wenn Sie eine APK- oder DEX-Datei hinzufügen, führt BCV dex2jar
und dann den Jar-Eingabeprozess aus.
- Neue Datei öffnen (Strg + L) - Öffnet die zuletzt geöffnete Datei erneut.
- Neuer Arbeitsbereich (Strg + N) - Löscht die geöffneten Jars/Ressourcen.
- Ausführen (Strg + R) - Führt die in BCV geladenen Klassendateien in einer sicheren, sandboxed und vollständig debugbaren JVM-Instanz aus.
- Kompilieren (Strg + T) - Versucht, alle bearbeitbaren Bereiche, die Sie ausgewählt haben, zu kompilieren. Wenn es sich um Java handelt, geschieht dies mit
Ranino. Krakatau und *Smali verwenden ihre eigenen Assembler.
- Speichern als Jar - Exportiert die Klassendateien und geladenen Ressourcen als lauffähige Jar-Datei.
- Speichern als DEX - Führt jar2dex aus und exportiert die Klassendateien als DEX.
- Dateien speichern unter - Speichert alle Klassendateien und Ressourcen als Zip-Datei.
- Java-Datei speichern unter - Speichert die aktuell geöffnete dekompilierte Klassendatei.
- Java-Dateien speichern unter - Alle dekompilierten Klassendateien als Zip-Datei speichern.
- Aktuelle Dateien - Die letzten 25 Dateien/Verzeichnisse, die mit BCV geöffnet wurden.
- About - Ein kleines Informationsfenster über BCV.
- Beenden - Schließt BCV.
Ansichtsfenster
- Editierbar - Legt fest, ob das Sichtfenster editierbar ist.
- Keins - Es wird nichts angezeigt.
- Procyon - Dekompiliert mit dem Procyon-Decompiler.
- CFR - Dekompiliert mit dem CFR-Decompiler.
- FernFlower - Dekompiliert mit dem FernFlower-Decompiler.
- JD-GUI - Dekompiliert mit dem JD-GUI-Decompiler.
- Krakatau Java - Dekompiliert mit dem Krakatau Decompiler.
- Krakatau Bytecode - Disassembliert mit Krakatau Disassembler.
- Smali - Disassembliert mit Smali.
- Bytecode - Dekompiliert den Bytecode mit CFIDE. Nicht editierbar.
- Hexcode - Zeigt die Klassendatei in einem Hex-Viewer an. Nicht editierbar.
Einstellungen
- Beim Speichern kompilieren - Wenn diese Option aktiviert ist, wird bei jedem Aufruf einer der Funktionen Datei>Speichern * versucht, vor dem Speichern zu kompilieren.
- Beim Aktualisieren kompilieren - Wenn diese Option ausgewählt ist, wird bei jedem Aktualisieren kompiliert, bevor die Ressource/Klasse neu geladen wird.
- Aktualisierungsprüfung - Wenn ausgewählt, wird https://github.com/Konloch/bytecode-viewer abgefragt, um sicherzustellen, dass Sie die neueste Version haben.
- Auffrischen bei Ansichtsänderung - Wenn diese Option ausgewählt ist, werden bei jeder Änderung einer Option in den Ansichtsfenstern die
aktuell geöffneten Ressourcen/Klasse aktualisiert.
- APK-Ressourcen dekodieren - Wenn diese Option ausgewählt ist, wird beim Hinzufügen einer APK zuerst APKTool.jar ausgeführt, um die Ressourcen zu dekodieren.
- Set Python 2.7 Executable - Setzen Sie das Python 2.7 Executable, wenn Sie möchten, dass Krakatau Decompiler/Disassembler/Assembler
funktionieren soll.
- Set JRE RT Library - Stellen Sie die JRE RT Library für Krakatau Decompiler ein.
Plugins
- Plugin öffnen - Öffnen Sie ein für BCV erstelltes .java-Plugin.
- Zuletzt verwendete Plugins - Die letzten 25 Plugins, die Sie mit BCV geöffnet haben.
- Code-Ablaufdiagramm - Erstellt ein grobes Codefolgediagramm für die aktuell geöffnete Klassendatei.
- Scanner für bösartigen Code - Ermöglicht es Ihnen, zu definieren, wonach gesucht werden soll, und gibt aus, was gefunden wurde.
- Main-Methoden anzeigen - Erkennt und gibt alle öffentlichen statischen void main(String[]) Funktionen aus.
- Alle Strings anzeigen - Erkennt alle Zeichenketten in jeder Klassendatei und gibt sie aus.
- Strings ersetzen - Ermöglicht ein einfaches, permanentes Ersetzen der Strings in der Klassendatei. Sehr nützlich für URL-Swapping.
- Allatori-String-Decrypter - Entschlüsselt die mit Allatori verdeckten/verschlüsselten Strings.
- ZKM-String-Decrypter - Entschlüsselt die ZKM-verschleierten/verschlüsselten Strings.
- ZStringArray-String-Decrypter - Entschlüsselt die ZStringArray-verschleierten/verschlüsselten Strings.
Code aus verschiedenen Projekten wurde verwendet: Einschließlich, aber nicht beschränkt auf
- J-RET von WaterWolf
- JHexPane von Sam Koivu
- RSynaxPane von Robert Futrell
- Commons IO von Apache
- ASM von OW2
- FernFlower von Stiver
- Procyon von Mstrobel
- CFR von Lee Benfield
- CFIDE von Bibl
- Smali von JesusFreke
- Dex2Jar von pxb1988
- Krakatau von Storyyeller
- JD-GUI + JD-Core von The Java-Decompiler Team
- Enjarify von Storyyeller
Hinweise
- Wenn BCV nicht startet, fügen Sie einfach -clean als Argument an, um das lib-Verzeichnis zu bereinigen.
- Ruhen Sie sich aus und machen Sie sich Notizen
- BCV wurde aus Liebe zum Java Reverse Engineering entwickelt.
- Du kannst dem Discord-Server unter https://discord.gg/aexsYpfMEf beitreten!
- Die Homepage von Bytecode Viewer ist unter https://bytecodeviewer.com zu finden.