Zitat von
himitsu:
Aber in dem Code da seh ich noch nicht so durch und Brechi hat seinen Code ja nicht veröffentlicht.
Nja, ich versuch mich noch durchzuwurteln und hoff bald die Sectionen zu finden.
Da kann ich dir evt. helfen:
Code:
--Also am Anfang der Echse befindet sich der DOS-Header. Den einfach auslesen - am besten in eine Variable des Typs _Image_Dos_Header
--Im _lfanew von diesem Typ steht der Offset zum nächsten Header, dem NT-Header; Typbezeichnung: _IMAGE_NT_HEADERS
--_IMAGE_NT_HEADERS besteht seinerseits aus folgenden 3 Typen:
Signature, FileHeader, OptionalHeader.
Im FileHeader findest du dann folgendes: NumberOfSections-> Das ist die Anzahl der Sections, welche gleich nach diesem Header (_Image_NT_Headers) folgen.
--Die Sections liest du dann anschließend am besten in ein Array aus TImageSectionHeader ein.
Zitat von
himitsu:
... wie ich dann den "Call" zum "alten" EntryPoint darin aufrufen müßte?
Falls du die Echse Hex-weise bearbeiten willst (
asm), dann reicht das hier schon vollkommen aus:
Code:
mov eax, <AdresseVomOrginalenEntryPoint>
jmp eax
Hoffe ich konnt' helfen
MfG