Сейчас на форуме: tyns777, JustLife, zds, 2nd, morgot, Rio, CDK123, tihiy_grom (+4 невидимых)

 eXeL@B —› Программирование —› Заголовок 512 байт или меньше?
Посл.ответ Сообщение

Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2009 20:05 · Поправил: yaroslav
· Личное сообщение · #1

Существует такая программа exepack - упаковщик досовских exe-файлов. Так в ней заголовок 112 байт (распакована). Если её дизассемблировать, а потом компилировать, то заголовок становиться 512 байт. Я проверил по теории - оба заголовка правильны. У меня вопрос: есть ли такой компилятор, который компилирует с заголовком, меньшим 512 байт или заголовок был уменьшен с помощью какой-то программы?
Для чего нужна таблица перемещения? Есть ли связь её с кодом программы и какая?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 14 февраля 2009 20:28
· Личное сообщение · #2

читать: www.wasm.ru/forum/viewtopic.php?id=22802

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 52.9 (постоянный), 6thx
Активность: 0.040
Статус: Участник

Создано: 14 февраля 2009 20:55
· Личное сообщение · #3

Isaev спасибо за ссыль



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 15 февраля 2009 00:25
· Личное сообщение · #4

yaroslav пишет:
Для чего нужна таблица перемещения? Есть ли связь её с кодом программы и какая?

Нужна для правки адресов после загрузки модуля в память.
Для DOS-EXE необходима, удалять нельзя.



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 февраля 2009 13:06
· Личное сообщение · #5

Значит, можна сделать предположение, что если заголовок меньший, чем 512 байт, то он уменьшен с помощью какой-то программы или hex-редактора.
А нельзя ли самому сделать для досовского exe-файла таблицу перемещения с целью уменьшения заголовка? Может кто-то делал подобное на практике именно для досовских файлов?




Ранг: 104.9 (ветеран), 47thx
Активность: 0.040.02
Статус: Участник

Создано: 15 февраля 2009 16:28
· Личное сообщение · #6

yaroslav пишет:
Может кто-то делал подобное на практике именно для досовских файлов?


Я делал подобное много лет назад. В архиве исходник и .COM-программа, написана на TASM'е. Убирает таблицу перемещения из заголовка файла и обрабатывает ее самостоятельно, в результате DOS-заголовок занимает 32 байта. Имя входного и выходного файла прибито гвоздями - "COMMERC.EXE" и "OUT.EXE" соответственно, должны лежать в каталоге с программой.

d975_15.02.2009_CRACKLAB.rU.tgz - RELOCAT.ZIP



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 16 февраля 2009 12:07
· Личное сообщение · #7

ManHunter - а смысл такого изврата?
Заголовок то меньше стал, но таблицу релоков всё равно ведь хранить надо.
Плюс твой загрузчик, приклеенный к файлу, который эти релоки обрабатывает...
Заголовок уменьшился, а файл в размере вырос.




Ранг: 104.9 (ветеран), 47thx
Активность: 0.040.02
Статус: Участник

Создано: 16 февраля 2009 20:09
· Личное сообщение · #8

cppasm, задача какая была? Предельно уменьшить заголовок файла и сделать настройку релоков вручную. Решение ЭТОЙ задачи я и привел. Ясно дело, что информацию из релоков надо где-то хранить и каким-то кодом восстанавливать. Про уменьшение размера файла не было сказано ни слова.



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 17 февраля 2009 11:42
· Личное сообщение · #9

ManHunter та я ж без претензий
Просто кто страдает уменьшением заголовка у PE , обычно делают это именно с целью уменьшить размер файла.
Вот мне и стало интересно, а какой тут практический смысл заголовок уменьшать?
На вопрос автора темы ты ответил - я не спорю.



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 февраля 2009 22:18
· Личное сообщение · #10

Большое всем спасибо за помощь.


 eXeL@B —› Программирование —› Заголовок 512 байт или меньше?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати