Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти дельту изменений exe 
:(
    Опции темы
Nutz
Дата 1.2.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Доброго времени суток. В общих чертах нужно написать приложение, которое бы сравнивало старую версию программы с новой (exe) и выводило бы дельту изменений. т.е. как я понял нужно сравнивать бинарный код exe'шников и вывести блоки вставки.
PM MAIL   Вверх
Snowy
Дата 1.2.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Что такое "дельта изменений"?
Чем не подходит родная виндовая
fc /b file1 file2
PM MAIL   Вверх
Nutz
Дата 1.2.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



delta изменений - это условно. попробую объяснить иначе: есть 2 exe (оригинал и его измененная копия).

к примеру в оригинале по нажатию на кнопку выводится сообщение "Hello World".
в копии же все тоже самое но текст сообщения другой, например "Привет Мир".

Нужно сравнить и вывести участки бинарного кода с несоответвием.
PM MAIL   Вверх
Snowy
Дата 1.2.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Для этого в Windows (и даже в DOS) есть родная комманда - fc
сравнивает текстовые и бинарные файлы.
работает в стандартной консоли
набрать fc /? - все про себя расскажет
с ключём /b сравнивает бинарные файлы
вывод стандартный. Можно перенаправить в файл или захватить пайпом.
Я и спрашиваю, чем не устраивает родной инструмент?
PM MAIL   Вверх
former
Дата 1.2.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



В дополнение к предложению Snowy, можно посмотреть, как это реализовано в различных редакторах с открытым исходным кодом (типа Notepad++).


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Nutz
Дата 1.2.2010, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Цитата(Snowy @  1.2.2010,  18:27 Найти цитируемый пост)
Snowy


вывода собственно самих участков с несоответствями не наблюдаю. выводится весь бинарный код, что для первого, что для второго.

Добавлено через 3 минуты и 9 секунд
блин не туда посмотрел. все верно.
а как перенаправить найденный различия в файл
PM MAIL   Вверх
former
Дата 1.2.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Цитата(Nutz @  1.2.2010,  18:43 Найти цитируемый пост)
а как перенаправить найденный различия в файл 

здесь о перенаправлении вывода


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Nutz
Дата 1.2.2010, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



В продолжение темы... Допустим, я получил различия. Как мне применить изменения к старой версии exe (file1), чтобы file1 = file2
PM MAIL   Вверх
former
Дата 1.2.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Цитата(Nutz @  1.2.2010,  18:59 Найти цитируемый пост)
В продолжение темы... Допустим, я получил различия. Как мне применить изменения к старой версии exe (file1), чтобы file1 = file2 

в библиотеке JEDY есть компонент TJvPatchFile.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
bems
Дата 1.2.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



скопировать файл2 в файл1 с заменой


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Nutz
Дата 2.2.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Цитата(Snowy @  1.2.2010,  17:29 Найти цитируемый пост)
fc /b file1 file2


Все бы и хорошо, но при значительных изменнениях, результутирующий файл после выполнения команды оказывается, как минимум, в 10-15 раз больше собственно самого исполняемого (который сравниваем).

Если даже просто вставить один доп. байт в начало второго файла, то в итоге получится различие не в одном байте, а во всех. Нужен более продвинутый анализ различий с учетом возможности вставки или удаления кусков.


Это сообщение отредактировал(а) Nutz - 2.2.2010, 15:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0905 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.