![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Nutz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
Доброго времени суток. В общих чертах нужно написать приложение, которое бы сравнивало старую версию программы с новой (exe) и выводило бы дельту изменений. т.е. как я понял нужно сравнивать бинарный код exe'шников и вывести блоки вставки.
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Что такое "дельта изменений"?
Чем не подходит родная виндовая fc /b file1 file2 |
|||
|
||||
Nutz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
delta изменений - это условно. попробую объяснить иначе: есть 2 exe (оригинал и его измененная копия).
к примеру в оригинале по нажатию на кнопку выводится сообщение "Hello World". в копии же все тоже самое но текст сообщения другой, например "Привет Мир". Нужно сравнить и вывести участки бинарного кода с несоответвием. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Для этого в Windows (и даже в DOS) есть родная комманда - fc
сравнивает текстовые и бинарные файлы. работает в стандартной консоли набрать fc /? - все про себя расскажет с ключём /b сравнивает бинарные файлы вывод стандартный. Можно перенаправить в файл или захватить пайпом. Я и спрашиваю, чем не устраивает родной инструмент? |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
В дополнение к предложению Snowy, можно посмотреть, как это реализовано в различных редакторах с открытым исходным кодом (типа Notepad++).
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Nutz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
||||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Nutz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
В продолжение темы... Допустим, я получил различия. Как мне применить изменения к старой версии exe (file1), чтобы file1 = file2
|
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
в библиотеке JEDY есть компонент TJvPatchFile. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
скопировать файл2 в файл1 с заменой
-------------------- Обижено школьников: 8 |
|||
|
||||
Nutz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
Все бы и хорошо, но при значительных изменнениях, результутирующий файл после выполнения команды оказывается, как минимум, в 10-15 раз больше собственно самого исполняемого (который сравниваем). Если даже просто вставить один доп. байт в начало второго файла, то в итоге получится различие не в одном байте, а во всех. Нужен более продвинутый анализ различий с учетом возможности вставки или удаления кусков. Это сообщение отредактировал(а) Nutz - 2.2.2010, 15:42 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |