Установка Checksum в MZ заголовке

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
xonisen
незнакомец
Сообщения: 3
Зарегистрирован: 01.09.2019 15:33:48

Установка Checksum в MZ заголовке

Сообщение xonisen »

Всем доброго. Можно ли заставить FPC генерировать контрольную суму компилируемого контента (при компиляции) для заголовка MZ?
Если нет то какие альтернативки как пометить свою продукцию некой уникальной сигнатуой на стадии компиляции?
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Заведи константу со своей уникальной сигнатурой и позаботься, чтобы компилятор её не выкинул.
xonisen
незнакомец
Сообщения: 3
Зарегистрирован: 01.09.2019 15:33:48

Сообщение xonisen »

Mirage писал(а):Заведи константу

А проверять-то ее потом как? Откуда стороння программа знает адрес ее в файле чтоб проверить? Фишка в том чтоб другие могли шустро и легко проверить сигнатуру.
Ладно. Раз нельзя, то пойду другим путем...
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

xonisen
Про такие возможности FPC я не знаю, но можно вставлять checksum вручную, благо, что никто не запрещает открывать файл с помощью, например, FileStream. Для checksum в заголовке предусмотрено вполне определённое место - смещение $12 от начала файла. И если программа специально предназначена чтобы проверять checksum, то именно там она его и будет проверять.
xonisen
незнакомец
Сообщения: 3
Зарегистрирован: 01.09.2019 15:33:48

Сообщение xonisen »

Vadim писал(а):вставлять checksum вручную

Совершенно верно, но я думал что в компиляторе все-таки можно настроить такое. Если нет, конечно же буду искать другой путь типа вставки вручную.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

xonisen
Про компилятор я ничего сказать не могу, никогда не интересовался этим делом. На форуме есть Sergey I. Gorelkin, он один из разработчиков. Спросите у него, возможно он что-нибудь знает...
Ответить