Java-Datei aus apk generieren (Bytecode Viewer-Ausdruck)

Die Genauigkeit von dex2jar war nicht gut, daher werde ich die mit guter Genauigkeit vorstellen.

Bytecode Viewer https://bytecodeviewer.com/

Anstelle von dex2jar. Es ist eine GUI-Operation. Es ist eine Art JD-GUI. Es ist normalerweise bequem. Sie können apk, dex, jar, zip und class dekompilieren. Nach der Dekompilierung können Sie es mit Ihrem bevorzugten Dekompilierer anzeigen. Sie können die Klasse aus apk speichern oder vom Dekompiler dekompiliertes Java ausgeben. Die Ausgabe an Java ist jedoch instabil. Wenn Sie dies herunterladen und starten, gibt es eine Stelle, an der "Klasse / jar / APK / DEX hierher ziehen" geschrieben ist. Ziehen Sie also .apk per Drag & Drop dorthin. Wenn der Vorgang abgeschlossen ist, wird das fertige Produkt angezeigt. Speichern Sie es als Zip unter Datei-> Als Zip speichern.

Procyon https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler

Es ist ein Dekompiler mit integriertem Bytecode Viewer. Ich denke es ist stabil.

Ändern Sie zum Dekompilieren die Erweiterung der Zip-Ausgabe von Bytecode Viewer in jar.

java -jar procyon-decompiler-x.x.xx.jar -jar myJar.jar -o out

Ändern Sie den Namen der Procyon-JAR-Datei entsprechend Ihrem. myJar.jar ist der vom Bytecode Viewer ausgegebene Dateiname. Und mach das. out ist das Ausgabezielverzeichnis. Hier geht die Java-Datei hin. Es ist nicht nötig, es im Voraus zu machen.

Dekompiler-Vergleich

Ich bin normalerweise eine Fernflower-Sekte (weil die IDE, die ich normalerweise verwende, Intellij IDEA ist), aber ich habe sie anhand des resultierenden Quellcodes verglichen, aber es gibt zwei Punkte, die ich für besser hielt als Fernflower.

Die Genauigkeit ist fast die gleiche wie bei Fernflower, sie ist in Fernflower geschrieben, aber nicht in Procyon und umgekehrt. Ich denke die Genauigkeit ist ziemlich hoch.

zum Satzvergleich Fernflower

ServiceApiEnvironment[] var1 = values();
int var2 = var1.length;

for(int var3 = 0; var3 < var2; ++var3) {
  ServiceApiEnvironment var4 = var1[var3];
  if (var4.equals(var0)) {
    return var4;
  }
}

Procyon

for (final ServiceApiEnvironment serviceApiEnvironment : values()) {
  if (serviceApiEnvironment.equals(s)) {
    return serviceApiEnvironment;
  }
}

Procyon ist überwältigend leichter zu sehen, nicht wahr? Ich denke, Procyon ist das Beste. Fernflower spuckte viele Fehler aus, aber Procyon nur einmal.

Recommended Posts

Java-Datei aus apk generieren (Bytecode Viewer-Ausdruck)
Java ab Anfänger, Klassendeklaration / Objekterzeugung
Java-Sequenzgenerierung
Erstellung von Java-Dateien
[Java] Lambda-Ausdruck
Java Lambda Ausdruck
So springen Sie von Eclipse Java zu einer SQL-Datei
[Java] So extrahieren Sie den Dateinamen aus dem Pfad