Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2017, 17:35   #1
genabay
 
Регистрация: 10.04.2017
Сообщений: 6
По умолчанию Софт для поиска Hex

Добрый день! Вообщем нужен софт для поиска одинаковых hex значений длиной от 8 байт в двух разных бинарных файлах, адреса без разницы. Главное найти одинаковую последовательность hex значений, длина может быть любой но не меньше 8-ми байт, и находиться может где угодно(в начале,в середине,в конце).
Существует ли такой софт в природе? Если не существует, то насколько сложно его написать?
genabay вне форума Ответить с цитированием
Старый 10.04.2017, 17:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

готового такого не видел.
написать не сложно.
но есть нюансы.
Какого размера файлы?
совпадение достаточно одно найти или все нужны?
Есть ограничения на время работы?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2017, 20:32   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

А тотал-командер не подойдёт?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.04.2017, 23:52   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
А тотал-командер не подойдёт?
так ему же не отличия нужно найти (это вообще много кто умеет, начиная с банального встроенного file compare (в консоли команда fc) ).
ему нужно найти ОДИНАКОВУЮ последовательность (при этом в одном файле эта последовательность может начинаться, например, с 10-го байта, а во втором файле — с 2057 байта).
Если я правильно понял задачу, конечно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.04.2017, 06:18   #5
genabay
 
Регистрация: 10.04.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
готового такого не видел.
написать не сложно.
но есть нюансы.
Какого размера файлы?
совпадение достаточно одно найти или все нужны?
Есть ограничения на время работы?
Максимальный объем 100мб, совпадения нужны найти все,ограничений по времени нет.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так ему же не отличия нужно найти (это вообще много кто умеет, начиная с банального встроенного file compare (в консоли команда fc) ).
ему нужно найти ОДИНАКОВУЮ последовательность (при этом в одном файле эта последовательность может начинаться, например, с 10-го байта, а во втором файле — с 2057 байта).
Если я правильно понял задачу, конечно.
Да, именно так.
genabay вне форума Ответить с цитированием
Старый 11.04.2017, 09:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от genabay Посмотреть сообщение
Максимальный объем 100мб
ого. это весьма немало! Если оба файла такого размера,
то нужно будет выполнить минимально (примерно) 100 000 000 * 100 000 000 сравнений.
сейчас трудно оценить время работы. но, не исключаю, что это будет ОЧЕНЬ долго (часы, сутки, дольше? )

Вы уверены, что Вам реально это всё нужно?

и ещё, нужно ли поиск начинать каждый раз с начала файла?

поясню на примере.
нужно ли найти такие совпадения ?
файл1
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 20
файл2
0D 0E 0F 10 11 12 13 14 AA AA 01 02 03 04 05 06 07 08 09

в данном случае совпадений одно или два?


p.s. сейчас я занят, поэтому не очень оптимальный код (т.с. "на коленке"), может быть, если ничего не помешает, то я через пару дней смогу Вам набросать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2017, 09:16   #7
genabay
 
Регистрация: 10.04.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ого. это весьма немало! Если оба файла такого размера,
то нужно будет выполнить минимально (примерно) 100 000 000 * 100 000 000 сравнений.
сейчас трудно оценить время работы. но, не исключаю, что это будет ОЧЕНЬ долго (часы, сутки, дольше? )

Вы уверены, что Вам реально это всё нужно?

и ещё, нужно ли поиск начинать каждый раз с начала файла?

поясню на примере.
нужно ли найти такие совпадения ?
файл1
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 20
файл2
0D 0E 0F 10 11 12 13 14 AA AA 01 02 03 04 05 06 07 08 09

в данном случае совпадений одно или два?


p.s. сейчас я занят, поэтому не очень оптимальный код (т.с. "на коленке"), может быть, если ничего не помешает, то я через пару дней смогу Вам набросать.
Давайте я более детально объясню задачу.
Имеем два бинарных файла объемом 8мб и 32мб.
Нужно найти все одинаковые последовательности длиной в 16 байт.
Алгоритм поиска такой: В первом файле берем начальные 16 байт и ищем такую последовательность во втором, затем смещение на пол байта в первом и поиск во втором. И так до конца первого файла. Последовательности состоящие из одних FF и 00 игнорируются.
Все найденные одинаковые последовательности должны выводиться в отдельный текстовой файл.
genabay вне форума Ответить с цитированием
Старый 12.04.2017, 09:23   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Тут работы компьютеры на полгода и это с учётом оптимизации.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 12.04.2017, 09:29   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

теперь всё понятно.


Цитата:
Сообщение от genabay Посмотреть сообщение
затем смещение на пол байта в первом
это опечатка? может быть, на байт?


Цитата:
Сообщение от Pavia Посмотреть сообщение
Тут работы компьютеры на полгода и это с учётом оптимизации.
пока я в этом не уверен, это нужно проверить.
я настроен более оптимистично!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2017, 17:52   #10
genabay
 
Регистрация: 10.04.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это опечатка? может быть, на байт?
Нет не опечатка, именно на пол байта.
FF один байт, F пол байта. Если по простому то смещение на один HEX символ.
Хотя можно для начала попробовать смещение на байт.

Последний раз редактировалось genabay; 12.04.2017 в 18:00.
genabay вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Софт для NFC Ципихович Эндрю Фриланс 10 11.08.2016 09:02
макрос для поиска позиций и вывода данных на лист поиска mr-111 Microsoft Office Excel 12 13.03.2012 15:03
hex->display (для загрузчика) Lord_Rey Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.12.2010 22:39
Алгоритм поиска HEX строки в файле Vlad_3310 Общие вопросы Delphi 8 17.06.2008 10:02