Форум: "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 файла возится нехочется, поэтому нашел вот такой код и пытаюсь перевести его в Delphiinvoke 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.037 c