|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 22, 2004 11:57:46 Здравствуйте Вот проблема уже долгое время мучит... Как посчитать размер файла по заголовку PE-файла ? А то вроде бы все считается и размеры всех секций выровненные на FileAlign + размеры заголовка и таблицы секций + размер досовской части = результат расходится на десятки-сотни байтов. Может не учел чего-то ? Подскажите если кто знает. Спасибо |
|
|
Дата: Авг 22, 2004 13:32:25 От начала дополнительного PE заголовка, по смещению +38h находиться 4 байтовое поле - это размер PE файла, выровненый на ближайшую границу секции. |
|
|
Дата: Авг 22, 2004 16:08:25 > От начала дополнительного PE заголовка, по смещению +38h находиться 4 байтовое поле - это размер PE файла Вряд ли ;-) В заголовке вообще не содержится размер файла, и его даже невозможно высчитать взяв физические параметры секций, т.к. у файла может быть оверлей. Единственное что можно прочесть в заголовке это Image Size(DWORD) по смещению 50h от начала PE Hider'а. |
|
|
Дата: Авг 22, 2004 16:44:12 > Вряд ли ;-) Я посмотрел в HEXEditor'e там в у файлов размером 2560 байт стояло 3000 |
|
|
Дата: Авг 22, 2004 17:19:56 · Поправил: Asterix38h | DWord | Object align | выравнивание программных секций, должен быть
| | | степенью 2 между 512 и 256М включительно,
| | | так же связано с системой памяти.
| | | При использовании других значений программа
| | | не загрузится.
По другому это поле называется SectionAlignment |
|
|
Дата: Авг 23, 2004 06:52:10 смотришь в HiEW смещение и физический размер последней секции, складываешь и выравниваешь на значение FileAlign из PE-заголовка - это и есть корректный физический размер файла |
|
|
Дата: Авг 23, 2004 09:51:09 Вопрос был немного о другом :) Узнать размер это одно, а вот знать почему получается другой размер при складывании всех составляющих PE-файла это другое. Интересует именно второе, а то что-то странное творится с размером. 2 zalexf все равно не получается тот размер, что на диске :(, при подсчете - 200704, а на диске - 200762 |
|
|
Дата: Авг 23, 2004 12:05:12 zalexf А если у файла есть оверлей? Или ты не в курсе что есть такой ;-) |
|
|
Дата: Авг 23, 2004 12:33:28 Ну вобщем попробовал над calc.exe поизвращаться... получилось :) В конце файла левая строчка какая-то, я ее убрал обрезав файл до "правильной" дляны и теперь все совпадает и даже работает. У меня такие строчки (с путями) в дебажных версиях прог в студии, это видать debug data. Но вот что они в виндовом калькуляторе делают ? |
|
|
Дата: Авг 23, 2004 12:57:20 В конце файла левая строчка какая-то это и есть оверлей с путем до дебажной инфы |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054 |