Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.008 c
3-75840
SasaR
2003-02-07 10:32
2003.02.24
Теоретический совет хочу...


14-76167
Дмитрий К.К.
2003-02-08 11:30
2003.02.24
Именинники 8 февраля


3-75837
Alek Aaz
2003-02-07 10:45
2003.02.24
Пара вопросов


1-75899
Dennis S
2003-02-14 09:41
2003.02.24
Printer, spooler & задания на печать (LAN)


1-75895
Aleksandr
2003-02-13 15:30
2003.02.24
Как универсально отформатировать команду создать письмо по мылу?





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