Как отучить компилятор вставлять таймстампы в исполняемый файл? (+)
Serwak Smile
Просветленный
(23197),
закрыт
8 лет назад
Для примера возьмём Delphi 7. Если создать новый проект с пустой формой во главе (для красоты кинул на него button), и построить (build) его два раза подряд с разницей, например, в минуту, то получим два exe-шника которые по идее должны быть идентичны (исходный код естественно не менялся). Но при сравнении контрольных сумм обоих файлов понимаем что файлы разные. В результате побайтового сравнения обоих файлов выясняем что у них около пятидесяти (50!) различии, но если приглядеться, то становится понятно что все различия однотипны, то есть во всех 50-ти местах где были найдены различия мы видим замену одной и той-же последовательности от одного до четырёх байтов на другую одну и ту же последовательность. Например байт 4е всегда меняется на 5f и так много раз. При дальнейшем разборе WinHex-ом понимаем что в теле exe-шника много раз встречается определённая последовательность из четырёх байтов которая в формате DOS Date как раз и показывает время сборки исполняемого файла. Таких таймстампов в рассматриваемом мной проекте встретилось, как я уже писал, около пятидесяти штук, что странно, так как если среда разработки хочет вставлять в исполняемый файл время билда, то зачем это делать столько раз? (хотя вспоминаю что-то про ресурсы и "их время") Но основной вопрос состоит в том, что нужно сделать чтобы отучить компилятор (или среду разработки) вставлять в exe-шник рассматриваемые выше таймстампы? К слову сказать, у Lazarus нет такой проблемы и при повторном построении одного и того-же проекта контрольные суммы выходных экзешников будут совпадать.
P.S: Кому интересно проблема актуальна при испытаниях ПО на НДВ (по требованиям ФСТЭК и ФСБ)
Насколько знаю в BD7 нет релиза, точнее там нет дебага ибо всё по умолчанию билдуется в релиз
cyberforum.ru/delphi-beginners/thread1081490.html
По поводу других языков и компиляторов специально написал P.S в основном тексте вопроса. (Если в кратце, то ничего там уже не взять и не использовать, там рабочий процесс уже налажен, программы написаны, лицензии на Delphi 7 куплены)
Привожу вам выдержку из своего же вопроса: "К слову сказать, у Lazarus нет такой проблемы и при повторном построении одного и того-же проекта контрольные суммы выходных экзешников будут совпадать. "
Елена Серова
Просветленный
(21987)
не знаю, что такое Lazarus, но точно знаю, что ФСБ разрешило немало софта, которое сделано не на нём
К слову сказать, у Lazarus нет такой проблемы и при повторном построении одного и того-же проекта контрольные суммы выходных экзешников будут совпадать.
P.S: Кому интересно проблема актуальна при испытаниях ПО на НДВ (по требованиям ФСТЭК и ФСБ)