Главная страница
    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.46 MB
Время: 0.037 c
9-1088682716
Micke
2004-07-01 15:51
2004.11.07
2d аркада


14-1097834341
iZEN
2004-10-15 13:59
2004.11.07
Windows Terminal Server и Ctrl + Alt + Del


4-1096707415
alexsand_Vladimirovich
2004-10-02 12:56
2004.11.07
Процессы в NT


3-1097211160
SergeyMel
2004-10-08 08:52
2004.11.07
Пол (муж. или жен.), Ищу алгоритм или красивое готовое решен.


6-1093713135
RoLeX2004
2004-08-28 21:12
2004.11.07
Ошибка при отправке e-mail!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский