Dekompilierung
Öffnen Sie Extras > Einstellungen (Tools > Options), um die Dekompilierung zu konfigurieren. Beim interaktiven Vergleich von Einstellungen verwenden Sie Schnelle Dekompilierung ohne Caching; andernfalls verarbeiten Sie die Datei erneut nach Änderung einer Option.

Debug-Befehle anzeigen (Show debug commands)
Für klassisches VB P-Code umfasst dies Compiler- und Debugger-Operationen, die sonst aus der hochsprachlichen Auflistung ausgeschlossen würden. Aktivieren Sie diese Option bei der Inspektion der zugrunde liegenden Instruktionssequenz anstelle nur der rekonstruierten Programmlogik.
Verfahre wenn ... ende wenn die Blocks (Process If ... End If blocks (Native Code))
Rekonstruiert erkannte bedingte Sprünge in Native Code als If...End If-Blöcke. Deaktivieren Sie diese Option, wenn Sie das ursprüngliche Verzweigungsmuster inspizieren oder eine Prozedur untersuchen müssen, deren Struktur fehlerhaft erscheint.
Verarbeite 'Else' Blöcke (Process 'Else' blocks)
Verwendet zusätzliche Heuristiken, um Else-Zweige von verschachtelten Bedingungen und GoTo-Übergängen zu unterscheiden. Bei Native Code muss dafür auch die Verarbeitung von If-Blöcken aktiviert sein. Lassen Sie diese Option für normales Lesen aktiviert; vergleichen Sie sie mit deaktivierter Einstellung bei unklaren rekonstruierten Zweigen.
Prototypen analysieren (Analyze prototypes)
Führt eine vorläufige heuristische Analyse von Prozedurargumenten und Rückgabewerten durch. Dies ist besonders nützlich im Modus für schnelle Dekompilierung: Private Funktionen und Prozeduren in Standardmodulen können fehlende explizite Signatur-Metadaten aufweisen. Die vorläufige Analyse benötigt zusätzliche Zeit, vermeidet aber die Behandlung eines Aufrufs ausschließlich gemäß dem derzeit bekannten Stapelinhalt. Eine heuristisch ermittelte Signatur bleibt eine Annahme, insbesondere wenn Metadaten, externe Typen oder Code unvollständig sind.
Adressen hinzufügen (Add Addresses)
Zeigt virtuelle Adressen neben rekonstruierten Anweisungen an. Lassen Sie diese Option aktiviert, um Code mit Disassemblierung, Dateibytes und Ergebnissen anderer Tools zu korrelieren. Für Kopieren Sie zu dem Disassembler (Copy to disassembler) ist dies zudem erforderlich, um hochsprachliche Anweisungen mit ihren niedrigsprachlichen Gegenstücken zu verschmelzen. Der Disassembler zeigt Adressen unabhängig von dieser Einstellung immer an.
Verständnis der Native Code-Rekonstruktion
Die Native-Code-Engine erkennt unterstützte Select Case-Muster, mehrdimensionale Array-Zugriffe, COM-Aufrufe und VB-Runtime-Operationen. Fehlerbehandlung kann als On Error Resume Next, On Error GoTo und On Error GoTo 0 rekonstruiert werden. Compiler-Optimierung und fehlende Typinformationen können das Ergebnis weiterhin begrenzen; inspizieren Sie das Disassemblierung, wenn die hochsprachliche Ausgabe unvollständig ist.
Version 26.2 erweiterte Variant-Typisierung, mehrdimensionale SafeArray-Lese- und Schreiboperationen sowie VarPtr-Rekonstruktion für Array-Elemente. Die Ausgabe kann eine Array-Referenz als SafeArray identifizieren, was die von der Analyse-Engine erkannte Laufzeitstruktur widerspiegelt. Getrennte Zustandsverfolgung in Verzweigungen und Analyse von Temporärvariablen verbessern zudem die Rekonstruktion komplexer If/Else-Codes. Version 26.5 verbessert weiterhin Select Case und VB5/VB6-Runtime-Funktionsbehandlung.
COM- und ActiveX-Typinformationen
VB Decompiler verwendet zunächst seine integrierte Wissensdatenbank für bekannte Schnittstellen. Für ein unbekanntes externes COM-Objekt kann es Bibliotheks-, Klassen- und Schnittstellen-Identifikatoren über die Windows-Registrierung auflösen und die entsprechende DLL/OCX-Typbibliothek parsen. Dies liefert Methoden- und Eigenschaftssignaturen, einschließlich zurückgegebener Schnittstellentypen, für early-bound und unterstützte late-bound-Aufrufe.
Fehlt eine erforderliche Typbibliothek oder kann ihre Registrierung nicht aufgelöst werden, können einige Aufrufe unidentifiziert bleiben, beispielsweise als UnkVCall. Fehlende Abhängigkeiten sind daher relevant beim Vergleich von Ergebnissen zwischen Analyse-Maschinen. Der erweiterte IID-Wissensbestand umfasst Office-Automatisierung, ADO/DAO, XML und HTTP, Skripting, Shell, Messaging und Verzeichnisdienst-Schnittstellen; dies impliziert nicht, dass jeder mögliche COM-Aufruf aufgelöst werden kann.
In manchen VB-Binärdateien bleiben nur wenige UDT-Metadaten erhalten. Der Decompiler kann Informationen wie die Größe einer Struktur und die Anzahl der String-Felder wiederherstellen, ohne das vollständige ursprüngliche Feldlayout zu rekonstruieren. Interpretieren Sie eine teilweise Deklaration nicht als vollständige Definition im ursprünglichen Quellcode.
.NET-Rekonstruktion und Optimierung
Unterstütztes IL wird als C#-ähnliche Ausdrücke und Steuerfluss rekonstruiert. Die Prozeduranalysator und -optimierer (Procedure analyzer and optimizer)-Steuerung im Hauptfenster kann unterstützte Muster für Schleifen, Bedingungen, Operatoren und temporäre Variablen vereinfachen. Prüfen Sie IL und Metadaten, wenn ein Fragment nicht unterstützt wird oder obfuskiert ist. Diese Verarbeitung ist unabhängig vom KI-Hilfe (AI Helper).
