Dekompilierung ab einer Adresse
Im Menü Extras (Tools) befindet sich eine sehr nützliche Funktion - Dekompiliere von VA (Decompile from VA) (Code ab einer angegebenen virtuellen Adresse dekompilieren). Das Hauptmerkmal dieser Funktion ist, dass sie nicht erfordert, dass die Datei, die dekompiliert wird, eine korrekte Struktur aufweist und mit Standardverfahren verarbeitet wurde. Natürlich hat der Code in diesem Fall eine Reihe von Einschränkungen. Zum Beispiel, wenn importierte Funktionen oder OLE-Objekte nicht vorverarbeitet wurden, ist der Code an diesen Stellen uninformativ.
Um einen bestimmten Codeabschnitt innerhalb einer Datei zu dekompilieren, müssen Sie einfach die virtuelle Adresse dieses Codes angeben (wenn wir über Native Code oder .NET-Assembly sprechen), oder eine ProcInfo-Strukturreferenz bereitstellen (wenn wir über klassische Visual Basic P-Code sprechen). Die Einzigartigkeit der Arbeit mit solchen P-Code besteht darin, dass die ProcInfo-Struktur ein Array von Daten enthält, das vom Code verwendet wird. Ohne dieses Array ist es unmöglich zu bestimmen, mit welchen Funktionen der Code arbeitet, auf welche Strings er sich bezieht usw. Im Fall der Arbeit mit .NET-Assemblys bietet der Decompiler nach Eingabe der Adresse eine Wahl zwischen dem Dekompilieren des Codes als MS IL-Zwischencode oder dem Disassemblieren dieses Codes. Diese Option ist aufgrund der Tatsache, dass .NET-Assemblys sowohl MS IL-Zwischencode (verwalteter Code) als auch Maschinencode (sogenannter nicht verwalteter Code) enthalten können.
Wenn die Datei bereits im Decompiler geöffnet ist, müssen Sie einfach die Dekompiliere von VA-Funktion aufrufen und die Adresse für die Verarbeitung angeben. Wenn die Datei noch nicht geöffnet wurde, wird dies automatisch vorgeschlagen, und die Datei wird im vereinfachten Modus geöffnet.
Die Dekompiliere von VA-Funktion ist besonders nützlich, wenn der gewünschte Code nicht automatisch dekompiliert wird oder wenn die Datei teilweise beschädigt ist, sodass sie mit dem normalen Analyseverfahren nicht verarbeitet werden kann. Natürlich sollten Sie verstehen, dass das Ergebnis der Dekompilierung in diesem Fall schlechter ist als bei einer Standard-Dekompilierung.
