Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Смещение в файле 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
3-1097199322
Black
2004-10-08 05:35
2004.11.07
Как узнать какая строка в DBGrid е выбрана?


14-1098437632
infom
2004-10-22 13:33
2004.11.07
Где-то тут недавно пробегала тема


14-1097934498
vidiv
2004-10-16 17:48
2004.11.07
w3c или браузер


14-1098380673
Maverick
2004-10-21 21:44
2004.11.07
Всем доброго вечера! меня вот интересет один вопрос...


1-1098351753
V l a d i m i r
2004-10-21 13:42
2004.11.07
Округление





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский