Ich arbeite an REing ein Programm für die Schule und es gibt zwei Zeilen, die ich wirklich nicht scheinen kann, herauszufinden.Aufruf GetCurrentProcess ignoriert den zurückgegebenen Wert
Zunächst ist das Programm ruft
GetCurrentProcess
, und dann die nächste Zeile:LEA eax, -something-
Warum wir so etwas tun würde? Lesen auf
GetCurrentProcess
Ich fand heraus, dass es ein Handle auf den aktuellen Prozess zurückgibt, den Wert dieses Handle ineax
setzen.Nun, warum würde das Programm den Wert löschen, der in
eax
mitlea
zurückgegeben wurde? und warum würde es diese Funktion sogar aufrufen, wenn es den zurückgegebenen Wert überhaupt nicht verwendet?
Gibt es noch etwas, das GetCurrentProcess
das rechtfertigen würde?
Vielleicht möchten Sie uns den relevanten Baugruppencode zeigen, über den Sie sprechen. –
Es gibt wirklich nichts zu zeigen, das Programm ruft GetCurrentProcess in einer Zeile und die nächste Zeile ist lea eax, etwas. Diese zwei Zeilen sind die einzige Sache, die ich nicht verstehen kann, der Rest ist wirklich irrelevant – Dan
Nun, nicht sicher, ob es irrelevant ist. Wie auch immer, haben Sie die Tatsache in Betracht gezogen, dass der Aufruf von 'GetCurrentProcess()' nur dazu da ist, den Reverse Engineer zu verwirren? Wenn du "...; GetCurrentProcess(); ... 'in Ihrem C-Code erhalten Sie grob, was Sie beschreiben: Die Funktion wird aufgerufen und der Rückgabewert wird ignoriert/verworfen. –