Könntest du das nicht in zwei Funktionen zerlegen?
- (1) Zuerst wird die Adresse von PEB (Process Enviroment Block) ermittelt
- (2) Anschließend wird die doppelt verkettete Liste (LDR) abgearbeitet und nach dem Module "kernel32.dll" gesucht: wird sie gefunden, darfs weiter gehen
Diese beiden Punkte zusammen entsprechen ja der Funktion GetModuleAddress('kernel.dll').
Mit dieser Adresse und dem Namen der Funktion (hier: 'GetProcAddress') ruft man dann die zweite Funktion auf,
und erhält dann die Einsprungadresse.
Dies entspricht dann Punkt (3) und (4).
Nach dieser Zerlegung in zwei Funktionen versteht man den Code besser und kann auch mehr damit anfangen.