Поиск определённых HEX-значений в файлах - как?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Поиск определённых HEX-значений в файлах - как?

Сообщение Ciber SLasH »

Приветствую всех!
Нужно за 1 раз найти файлы, в которых встречаются HEX-последовательности из множества.
Например есть множество HEX-значений: 0x123, 0x456, 0x789. Как за 1 проход найти все файлы, в которых есть какое-нибудь значение из множества?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Странные у тебя HEX-значения. Они не могут превышать 0xFF, это же значения байтов. Тебе точно надо искать именно байты? Или тупо текстовые строки, которые выглядят как записи в формате 0x123?
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Можно взять Synwrite и искать regex:

(\x0123 | \x0234 | \x0fff)

искать диалогом Поиск в файлах.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Как вариант, можно взять плагин типа File Descriptions и на вкладке плагинов задать несколько условий присутствия в содержимом файла нужных подстрок.
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Мне нужно именно искать HEX-ы в файлах.
Например сигнатуру JPEG-a в файле. Т.е. искать нужно HEX-последовательности: FFD8FF.
Но это только в качестве примера.
А на практике нужно искать через поиск файлы, в которых встречаются HEX-последовательности из множества.
Сейчас я это делаю в несколько проходов:
1) запускаю поиск. Ставлю галочку "С текстом:" вписываю одну HEX-последовательность
2) ставлю галочку HEX-код
3) начать поиск
и так для каждой HEX-последовательности.
А хотелось бы в один проход.

Пробовал искать с помощью регулярных выражений, но так получается в разы дольше и поле "С текстом:" имеет ограничение на кол-во символов, а их кол-во резко увеличивается по сравнению с HEX-кодом, т.к. приходится перед каждым байтом добавлять \x.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Задача понятна. Цель какая?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Ciber SLasH
Сообщения: 209
Зарегистрирован: Сб авг 20, 2005 21:41
Откуда: С.-Петербург

Сообщение Ciber SLasH »

Цель: поиск из папок FOUND.XXXX, которые оставляет за собой чекдиск, в файлах *.CHK известных HEX-последовательностей, которые идентифицируют тип файла. Для дальнейшего переименования расширения CHK в известное расширение, соответствующее структуре файла.

И не только... есть программы, которые выдают на выходе файлы без расширений, а дело оператора - определить тип файла и назначить ему соответствующее расширение.
Не все файлы можно идентифицировать по сигнатуре заголовка, т.ч. в каких-то файлах приходится, помимо заголовка, искать HEX-последовательности в теле файла, чтобы определить его тип.
Ответить