Форум: "Потрепаться";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];
ВнизТаблица секций в Exe-шники Найти похожие ветки
← →
Nick_N_A (2003-02-01 06:06) [0]PE-формат - пока для меня неочень понятная вещь,
никто случайно не получал списки секций, их адрес и длинну,
не могли бы поделится кодом, если нет - что ж, несколько дней помучаюсь - разберусь
← →
MrBeer (2003-02-01 15:49) [1]Moi starii ishodnik, srazu hochu skazat" chto on chisto eksperimentalnii, tak chto ne stoit ozhidat" krasoti i stabil"nosti.
http://www.velns.org/valts/delphi/pe.pas
← →
Nick_N_A (2003-02-02 06:57) [2]Большое спасибо, кстати хочу писать редактор res-файлов, заодно
решил что можно переделывать EXE-шники
← →
Игорь Шевченко (2003-02-03 10:48) [3]Цикл статей в журнале "Программист" за 2002 год - что такое PE-файл, из чего он состоит и как с ним бороться.
← →
Mystic (2003-02-03 12:16) [4]Определения некоторых структур можно найти в $(DELPHI)\Demos\rxtypes.pas
Далее примеры относятся к файлу delphi32.exe версии 6.0.6.163
Согласно спецификации формата Win PE:
1) Читаешь слово по смещению $3С от начала EXE-файла. Это смещение PE-заголовка. Для нашего файла это003C: $00 $01
, т. е. с учетом того, что старший байт идет последним, получаем $0100, или PE-заголовок начинается со смещения $100.
2) Идем по адресу $100. Там должно стоять "PE"#0#0. Стоит.
3) Далее читаем заголовок сигнатуры PE-файла:
PIMAGE_FILE_HEADER = ^IMAGE_FILE_HEADER;
IMAGE_FILE_HEADER = packed record
Machine : WORD;
NumberOfSections : WORD;
TimeDateStamp : DWORD;
PointerToSymbolTable : DWORD;
NumberOfSymbols : DWORD;
SizeOfOptionalHeader : WORD;
Characteristics : WORD;
end;
Для нашего файла:
00000100: 50 45 00 00 4C 01 06 00
← →
MrBeer (2003-02-03 20:01) [5]
> Mystic © (03.02.03 12:16)
nu ti prjamo geroi razpisivat" vse :D
← →
Mystic (2003-02-03 20:50) [6]> nu ti prjamo geroi razpisivat" vse :D
Недавно сталкивался, кое-что еще помню...
← →
Nick_N_A (2003-02-04 07:37) [7]спасибо Mystic,
я как-то случайно наткнулся на приложение, где PE был
не стандартно размещен, и выровнян по 8-байт границам, кратен 8, не кратен 16 (обычно кратен 16).
Hiew-ом я уже давно находил секции и их расположение, только не мог понять, кто на них ссылается.
p.s. Я разобрался с заголовками ресурсов
TResourceHeader, ResData,TResourceHeader, ResData, ....
TResourceHeader-хитрая структура, ее размер не всегда постоянен . . .
← →
Mystic (2003-02-04 12:54) [8]> Nick_N_A © (04.02.03 07:37)
> p.s. Я разобрался с заголовками ресурсов
Напиши статью, людям польза будет ;)
← →
Игорь Шевченко (2003-02-04 13:01) [9]Mystic © (04.02.03 12:54)
Дык, в "Программисте" все уже подробно написали :-)
← →
Mystic (2003-02-04 15:46) [10]MSDN читал, Программист не читал :(
← →
gsu (2003-02-04 15:51) [11]>> Напиши статью, людям польза будет ;)
Так и книжку даже уже написали, у мя где-то на антресоли валяется (-:|~
← →
Mystic (2003-02-04 17:01) [12]Даже если статью уже написали, то все равно имеет смысл написать:
1) Лучше разберешься в теме.
2) Практика в выражении собственных мыслей.
3) Будешь знать где искать потом.
4) Возможно получится лучше и интереснее.
← →
Nick_N_A (2003-02-06 05:56) [13]Я подумаю, идея неплохая.
Надоели всякие Exescope и ResourceHackers которые толком менять их не умеют, а при большом размере просто виснут
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c