Ich habe einige x86-Binärdateien analysiert und die folgende Anweisung gefunden, die ich nicht verstehen kann. Kann mir bitte jemand die folgenden Anweisungen erklären?
%Vor%Ich habe das gegoogelt, und es stellt sich heraus, dass es ein Anti-Debugging-Kram ist ... aber das ist alles, was ich weiß.
Was bedeutet large
?? Und was bedeutet fs:30
?
Ich kenne die Segmentierung, aber ich weiß nicht, wann das fs
-Register verwendet wird. Beispielsweise wird cs:
, ds:
implizit übersprungen, wenn der Befehl auf Code oder Daten verweist. Aber was ist fs
und was ist gs
?
Sieht so aus, als wäre es Windows-Code, der die Adresse des Process Environment Blocks (PEB) über den Thread-Informationsblock lädt, auf den über das FS-Segment zugegriffen werden kann.
Das PEB enthält, am meisten andere Dinge, ein Flag, das anzeigt, ob der Prozess debuggt wird.
MSDN hat eine Seite darüber hier