Es geht um die Ermittlung der Basisadresse der kernel32.dll ohne Verwendung die
Win32 API. Unter Windows NT x86/x64 kenne ich etliche Möglichkeiten.
Nach langer Suche bin ich zufällig auf ein paar Zeilen gestossen, die zwar unter Windows 98 SE funktionieren - aber ich weiß weder warum es funktioniert, noch wie es mit den anderen Versionen von
Win9x aussieht.
Kurz, ich suche entweder nach einer Erklärung oder nach Alternativen...
Delphi-Quellcode:
@@x: { Windows 9x - FIXME }
mov eax, [eax+$34] { PDB.HeapHandle }
lea eax, [eax+$7c] { ??? }
mov eax, [eax+$3c] { ??? }
end;
Ein Test-Projekt ist angehängt und enthält bereits ein kompilierte Programm zum Testen.
(sollte mit allen Delphi-Versionen für
Win32 kompilierbar sein)
Gruss Nico