разные exe после компиляции
От: Аноним  
Дата: 10.05.04 06:30
Оценка:
кто подскажет почему при компиляции delphi проекта EXE всегда получаются разные, даже если ничего не менять в самом проекте?
т.е. на одном компе создаем проект, компилим, переимновываем exe, компилим 2-ой раз, сравниваем (fc /b file1.exe file2.exe >1.log) и видим — разные!
Re: разные exe после компиляции
От: igdrasil  
Дата: 10.05.04 08:16
Оценка: 22 (2)
Здравствуйте, Аноним, Вы писали:

А>кто подскажет почему при компиляции delphi проекта EXE всегда получаются разные, даже если ничего не менять в самом проекте?

А>т.е. на одном компе создаем проект, компилим, переимновываем exe, компилим 2-ой раз, сравниваем (fc /b file1.exe file2.exe >1.log) и видим — разные!

В PE-заголовке есть поле TimeStamp, оно и меняется
Re[2]: разные exe после компиляции
От: Аноним  
Дата: 23.05.05 07:29
Оценка:
Здравствуйте, igdrasil, Вы писали:

I>Здравствуйте, Аноним, Вы писали:


А>>кто подскажет почему при компиляции delphi проекта EXE всегда получаются разные, даже если ничего не менять в самом проекте?

А>>т.е. на одном компе создаем проект, компилим, переимновываем exe, компилим 2-ой раз, сравниваем (fc /b file1.exe file2.exe >1.log) и видим — разные!

I>В PE-заголовке есть поле TimeStamp, оно и меняется


Если бы только оно! Exe-файл имеет кучу отличий в разных местах...
Re[3]: разные exe после компиляции
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.05.05 08:27
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Если бы только оно! Exe-файл имеет кучу отличий в разных местах...

Компайлер Delphi — вообще штука неустойчивая. К примеру, на ассемблере команду mov eax, ebx можно записать двумя разными способами. Семантика не меняется, но бинарное представление будет отличаться. Так вот компилер выбирает эти способы достаточно непредсказуемым образом.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: разные exe после компиляции
От: SeLarin Россия http://selarin.livejournal.com
Дата: 23.05.05 17:41
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Компайлер Delphi — вообще штука неустойчивая. К примеру, на ассемблере команду mov eax, ebx можно записать двумя разными способами. Семантика не меняется, но бинарное представление будет отличаться. Так вот компилер выбирает эти способы достаточно непредсказуемым образом.


Генерация коди случайным способом? Эт интересно.
Re[4]: разные exe после компиляции
От: vlad_gri  
Дата: 24.05.05 04:05
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Компайлер Delphi — вообще штука неустойчивая. К примеру, на ассемблере команду mov eax, ebx можно записать двумя разными способами. Семантика не меняется, но бинарное представление будет отличаться. Так вот компилер выбирает эти способы достаточно непредсказуемым образом.


Ничего подобного.

Просто в секции .rsrc на каждый ресурс (иконку,курсор и.т.д) ставится TimeStamp.
Re[5]: разные exe после компиляции
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.05.05 04:40
Оценка:
Здравствуйте, vlad_gri, Вы писали:
_>Ничего подобного.
Что значит "ничего подобного"? Я натыкался.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: разные exe после компиляции
От: vlad_gri  
Дата: 24.05.05 04:49
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, vlad_gri, Вы писали:

_>>Ничего подобного.
S>Что значит "ничего подобного"? Я натыкался.

Пример в студию.
Re[7]: разные exe после компиляции
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.05.05 05:22
Оценка:
Здравствуйте, vlad_gri, Вы писали:

_>Пример в студию.

Поищи в любом Delphi-екзешнике опкоды 89В8 и 8BC3. Найдешь оба.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: разные exe после компиляции
От: vlad_gri  
Дата: 24.05.05 06:24
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, vlad_gri, Вы писали:


_>>Пример в студию.

S>Поищи в любом Delphi-екзешнике опкоды 89В8 и 8BC3. Найдешь оба.

И что.
И тот и другой опкод обозначает одно и тоже mov eax,ebx

Так в чем проблема ???
Re[9]: разные exe после компиляции
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.05.05 06:44
Оценка:
Здравствуйте, vlad_gri, Вы писали:
_>И тот и другой опкод обозначает одно и тоже mov eax,ebx
Я в курсе.
_>Так в чем проблема ???
Гм. Ты точно читал переписку? Цитирую:

К примеру, на ассемблере команду [b]mov eax, ebx можно записать двумя разными способами... Так вот компилер выбирает эти способы достаточно непредсказуемым образом.

Я не нашел никакой закономерности в выборе одного из этих опкодов.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: разные exe после компиляции
От: vlad_gri  
Дата: 24.05.05 07:54
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, vlad_gri, Вы писали:

_>>И тот и другой опкод обозначает одно и тоже mov eax,ebx
S>Я в курсе.
_>>Так в чем проблема ???
S>Гм. Ты точно читал переписку? Цитирую:
S>

К примеру, на ассемблере команду [b]mov eax, ebx можно записать двумя разными способами... Так вот компилер выбирает эти способы достаточно непредсказуемым образом.

S>Я не нашел никакой закономерности в выборе одного из этих опкодов.

Пожалуй мы несколько отклонились от темы.

По теме и закономерностям. Если один и тотже проект, с одними и теже опциями компилятора,
одним и темже компилятором откомпилить 2(10-100-...) раза, то изменения будут только в
TimeStamp`ах
Re[10]: разные exe после компиляции
От: vlad_gri  
Дата: 24.05.05 09:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, vlad_gri, Вы писали:

_>>И тот и другой опкод обозначает одно и тоже mov eax,ebx
S>Я в курсе.
_>>Так в чем проблема ???
S>Гм. Ты точно читал переписку? Цитирую:
S>

К примеру, на ассемблере команду [b]mov eax, ebx можно записать двумя разными способами... Так вот компилер выбирает эти способы достаточно непредсказуемым образом.

S>Я не нашел никакой закономерности в выборе одного из этих опкодов.

На счет закономерности, надо помнить что компилятор Delphi, содержит два раздельных компилятора,
компилятор ASM и собственно компилятор OP.
Компилятор ASM создает опкод 89B8 а компилятор OP 8BC3.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.