Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Смещение в файле EP   Найти похожие ветки 

 
Igit   (2004-09-29 13:15) [0]

Добрый день. Может кто-нибудь подскажет, не работает этот код:

var
 Map : Pointer;
 fmaping : THandle;
 image : PImageNtHeaders;
 EP : ULONG;
 PISH :PImageSectionHeader;
begin
map := MapViewOfFile(fmaping,FILE_MAP_READ,0,0,0);
image := ImageNtHeader(map);
PISH := ImageRvaToSection(image,fmaping,EP);
EP := EP - PISH.VirtualAddress + PISH.PointerToRawData;


В предпоследнеё строке не компилируется. Говорит типы не совподают, Cardinal и Pointer... хотя вроде все правильно описал...


 
Digitman ©   (2004-09-29 13:37) [1]

типы формальных параметров в декларации ф-ции mageRvaToSection не совпадают с типами фактически передаваемых тобой параметров


 
Igit   (2004-09-29 13:45) [2]

а как тогда быть... из fmaping:Thandle передать как pointer?


 
Digitman ©   (2004-09-29 13:55) [3]

а что этому мешает ?


 
Igit   (2004-09-29 14:09) [4]

Синтаксиса незнаю, ^fmaping не работает...


 
Digitman ©   (2004-09-29 14:16) [5]


> Синтаксиса незнаю


как это "не знаю" ?
в каком модуле у тебя находится декларация ф-ции ImageNtHeader ?
ты вообще что хочешь с пом.этого кода сделать ? откуда этот код ?
что за бред вот эта строчка

EP := EP - ... чего-то там

?
на момент ее выполнения содержимое EP не определено !


 
Digitman ©   (2004-09-29 14:24) [6]

или ф-ция ImageNtHeader принимает 3-й параметр по ссылке для возврата значения ?


 
Igit   (2004-09-29 14:53) [7]

Imagehlp.pas

Этим кодом я хочу найти в PE файле смещение соответствующее адресу Entry Point... C форматом заголовка PE файла возится нехочется, поэтому нашел вот такой код и пытаюсь перевести его в Delphi
invoke MapViewOfFile,fmaping,FILE_MAP_READ,0,0,0
mov map,eax

invoke ImageNtHeader,map
mov image,eax

invoke ImageRvaToSection,image,fmaping,EP; тут EP виртуальный
assume eax: PTR IMAGE_SECTION_HEADER
mov edx,EP
sub edx,[eax].VirtualAddress
add edx,[eax].PointerToRawData
mov EP,edx ; а тут уже становится смещением


ImageRvaToSection третьим параметром возвращает виртуальный адрес EP + ImageBase...


 
Digitman ©   (2004-09-29 15:18) [8]


> C форматом заголовка PE файла возится нехочется


а чего там возиться-то ? ровно две строчки кода

pOptHdr: PImageOptionalHeader;
..
   pOptHdr := PImageOptionalHeader(fmaping + PImageDosHeader(fmaping)._lfanew + SIZE_OF_NT_SIGNATURE + IMAGE_SIZEOF_FILE_HEADER);
   EP := pOptHdr.AddressOfEntryPoint + fmaping;


 
Igit   (2004-09-30 16:25) [9]

Большое спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1098376945
Tashian
2004-10-21 20:42
2004.11.07
вопрос чайника (help)


14-1097843522
dreamse
2004-10-15 16:32
2004.11.07
Open Source софт для клубов


1-1098535699
NfTser
2004-10-23 16:48
2004.11.07
Separator не скрывается


11-1082519213
azsd
2004-04-21 07:46
2004.11.07
KOLToolbar s tboflat handle the height to a fix value?


6-1094019695
Дмитрий Ботвин
2004-09-01 10:21
2004.11.07
Загрузка файла с FTP