Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Allgemeine Frage zu den Section Headers (https://www.delphipraxis.net/110840-allgemeine-frage-zu-den-section-headers.html)

CorVu5 25. Mär 2008 17:30


Allgemeine Frage zu den Section Headers
 
Hallo Leute,
Ich wollte mich mal daran machen einen Exe-Packer zu schreiben. Allerdings bekomme ich schon Probleme damit eine neue Section einzufügen. Mein Problem ist das folgende:
Ich müsste ja hinter den anderen Section Headers noch einen einfügen.
PEView zeigt mir aber einen großen leeren Raum zwischen der Code Section und dem letzten Section Header an:
334 Ist die Letzte RVA im Section HEader,
die erste RVA der Code Section lautet aber 1000.
Ich frage mich jetzt
1. Was ist dieser Zwischenraum?
2. Wo muss ich jetzt korrekt den neuen Header einfügen?

Mein Code zum Auslesen der Datei bis nach den Section Headern sieht ungefähr so aus, das Fragment wird erstmal gespeichert, PEView zeigt in dieser Datei aber nur den Code Section Header an:
Delphi-Quellcode:
var
OldFile : TMEMorystream;
Base : Pointer;
DosHeader : PIMAGEDOSHEADER;
NTHeader : PIMAGENTHEADERS;
NewFile : TMemoryStream;
FirstSectionHeader : Cardinal;
NewSectionHeader : Cardinal;
begin
OldFile := TmemoryStream.Create;
NewFile := TmemoryStream.Create;
OldFile.LoadFromFile('D:\pfad\zu\einer.exe');
Base := OldFile.Memory;
DosHeader := Base;
NTHEader := Pointer(Integer(Base) + DosHeader^._lfanew);
FirstSectionheader := DosHEader^._lfanew + SizeOf(IMAGE_NT_HEADERS);
Showmessage(IntToStr(Integer(FirstSectionHeader)));
NewSectionHeader :=FirstSectionHeader + (NtHeader^.FileHeader.NumberOfSections * SizeOf(IMAGE_SECTION_HEADER));
Showmessage(IntToStr(NewSectionHeader));
NewFile.SetSize(newSectionHeader);
CopyMemory(NewFile.Memory,OldFIle.Memory,NewSectionHEader);
NewFile.SaveToFile('D:\tempbla.exe');
NewFile.Free;
OldFile.Free;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz