Hi DieDolly
Mit kleinen Änderungen wohl schon. Du hast teilweise vegessen, die Zuweisung an den übergebenen Stream 'Strm' durch Memorystream zu ersetzen.
Delphi-Quellcode:
begin
MemoryStream := TMemoryStream.Create;
try
MemoryStream.LoadFromFile(FileName);
Strm.ReadBuffer(Header, SizeOf(Header));
// Das hier müsste heissen:
MemoryStream.ReadBuffer(Header, SizeOf(Header));
if (Header.e_magic <> IMAGE_DOS_SIGNATURE)
or (Header._lfanew = 0)
then
raise Exception.Create('
Invalid executable');
MemoryStream .Position := Header._lfanew;
MemoryStream.ReadBuffer(ImageNtHeaders, SizeOf(ImageNtHeaders));
if ImageNtHeaders.Signature <> IMAGE_NT_SIGNATURE
then
raise Exception.Create('
Invalid executable');
finally
MemoryStream.Free;
end;
Gruss
Delbor