Msg : Prev 9 / 870 Next
2002-12-24 12:19:16

To  : Konstantin Illarionov

Subj:

длина exe


How are you, Konstantin? 

17 декабря 2002 22:42, Konstantin Illarionov -> All: 
KI> У меня здесь возник вопpос: exe-header содеpжит значение кол-ва блоков 
KI> по 512 байт, занимаемых этой пpогpаммой (N) и кол-во байт в последнем 
KI> блоке (N1). Пpи этом гpузится она в соответствии с этими данными, т.е. 
KI> эта величина: N*512+N1 байт и не больше, или как? 
KI> И что пpоисходит с данными, pасположенными после длины, указанной в 
KI> заголовке, если они есть? 
KI> Или их используют для подзагpузки в пpоцессе выполнения 
KI> пpогpаммы из неё самой как овеpлейную стpуктуpу? Заpанее спасибо. 

В начале каждого <exe> файла есть 28 байтный заголовок (Для примера беру 
<exe>, т.к. данный формат является самый распространенный на данный момент). 
Данный заголовок содержит всю информацию необходимую для полноценного 
функционирования программы: 

Type 
HeadExeType = record 
Sign: Word; {Признак ЕХЕ-файла} 
PartPag: Word; {Часть неполного сектора в конце файла} 
PageCnt: Word; {Количество секторов, включая неполный} 
ReloCnt: Word; {Количество элементов в таблице перемещения} 
HdrSize: Word; {Длина заголовка в параграфах} 
MinMem: Word; {Минимальный размер кучи (в параграфах)} 
МахМет: Word; {Максимальный размер кучи (в параграфах)} 
ReloSS: Word; {Hачальное значение сегмента стека SS} 
ExeSP: Word; {Hачальное значение указателя стека SP} 
ChkSum: Word; {Контрольная сумма всех слов файла} 
ExelP: Word; {Смещение точки запуска программы} 
ReloCS: Word; {Hачальное значение сегмента кода CS}; 
TabiOff: Word; {Смещение первого элемента таблицы перемещения} 
Overlay: Word; {Hомер оверлея или 0 для основной программы} 
end; {HeadExe} 
Это стандартно и многие это знают. Как видно из таблицы, есть там такие 
интересные поля как PartPag и PageCnt они определяют общую длину загружаемой в 
память части exe файла по формуле 
длина = (PageCnt-1)*512 +PartPag-HdrSize*16 
Остальная часть программы при загрузке не учитывается. Обычно в конце 
содержиться информация используемая внутренним отладчиком, или как ты написал, 
оверлеи. Так же туда с успехом можно записать вирус :)) 



С наилучшими пожеланиями, Олег Евдокимов. 
ICQ: 125996629 mailto: spions<at>softstyle.ru 
--- 
* Origin: ---==_/*SpionsBBS*/_==--- (2:5029/45) 
VX Heavens - коллекция вирусов,исходников и статей.
Страницы можно листать стрелками
Пользовательского поиска