[ de_c0der @ 03.02.2007. 11:11 ] @
Ovako, trebam iscitat VirtualAddress SVAKE sekcije u programu, to radim sa MapAndLoad:
ovako izgleda loaded_image:

Code:

typedef struct _LOADED_IMAGE {
PSTR ModuleName;
HANDLE hFile;
PUCHAR MappedAddress;
PIMAGE_NT_HEADERS32 FileHeader;
PIMAGE_SECTION_HEADER LastRvaSection;
ULONG NumberOfSections;
PIMAGE_SECTION_HEADER Sections;
ULONG Characteristics;
BOOLEAN fSystemImage;
BOOLEAN fDOSImage;
BOOLEAN fReadOnly;
UCHAR Version;
LIST_ENTRY Links;
ULONG SizeOfImage; } LOADED_IMAGE, 
*PLOADED_IMAGE;



znaci ako imam var loadedImg:LOADED_IMAGE; i onda loadedImg.Sections.VirtualAddress sadrzi adresu od prve sekcije a to je .code/.text!
E sad, kako tako dobit VirtualAddress od druge sekcije, probao sam ovako nekako loadedImg.Sections[1].VirtualAddress ali mi delphi javlja gresku u kodu: Array Type Required??


z
[ Srki_82 @ 03.02.2007. 16:01 ] @
Prepostavljam da je PIMAGE_SECTION_HEADER pointer na neki tip... ako je tako onda ovako prelazis na sledeci:
Code:
loadedImg.Sections := loadedImg.Sections + 1;
[ de_c0der @ 03.02.2007. 20:16 ] @
ma rjesio sam prob, nisam stigo javit, treba samo povecavat za 40 bajta pointer... jer je velicina section headera je 40

thx
[ Srki_82 @ 03.02.2007. 20:20 ] @
Ovaj moj nacin bi trebao da radi za bilo koji pointer... nema veze da li je podatak na koji pokazuje dug 20 bajta, 40 bajta, 100 kilobajta... samo pointeru dodas 1 i on predje na sledeci... dodas 3 on ode za tri u napred... ako oduzimas onda se vracas nazad.