Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как корректно искать .deb в DMDE?  (Прочитано 901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 191
    • Просмотр профиля
Как корректно искать .deb в DMDE?
« : 05 Мая 2025, 19:40:39 »
У меня погиб диск с ext4. Он не перезаписывался, просто слетела вся разметка.
Gparted - gpart после 14 часов работы заявил, что диск пуст.
TestDisk нашел разделы, но не файлы на них.
R-studio нашел разделы и файлы на них, но насмерть завис на просмотре раздела. Похоже, что не хватило памяти. Диск большой файлов очень много.
DMDE нашел разделы и файлы на них. Пробное восстановление пары файлов прошло успешно. Сейчас ищет .png.

Но мне нужно найти .deb. В списке поиска по сигнатурам я их не нашёл (в отличии от R-studio где они есть).


Однако в DMDE можно указать собственные сигнатуры для поиска.
Строго первые 4 байта.

В hexe вижу в .deb это:

!<arch>
debian-binary

получается что нужно вписать

\21\3C\61\72 16-ричного кода

или из область адресов

!<ar
Так ли это?

Не лучше ли указать debi или типа того?

В DMDE можно указать максимальное смещение от начала файла для сигнатур. Но она должна целиком умещаться в 4096 байта.

Онлайн Skif_off

  • Активист
  • *
  • Сообщений: 419
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #1 : 05 Мая 2025, 20:20:37 »
"!<arch>\n", в hex: \x21\x3C\x61\x72\x63\x68\x3E\x0A
Смещение 0.

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 191
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #2 : 05 Мая 2025, 21:20:56 »
или \x21\x3C\x61\x72

в мануале не более 4 знаков

и как читать "!<arch>\n"

в мануале, как пример указаны опять же 4 буквы %PDF

может всё же !<ar

Онлайн Skif_off

  • Активист
  • *
  • Сообщений: 419
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #3 : 06 Мая 2025, 16:04:24 »
в мануале не более 4 знаков
Где там это написано?
в мануале, как пример указаны опять же 4 буквы %PDF
Не очень убедительно, сигнатура PDF - это обычно 4 байта ("%PDF") или 5 байт ("%PDF-").
Жаль, нельзя посмотреть сигнатуры из коробки, у некоторых типов файлов в списке сигнатура больше 4 байт.

Кстати, сигнатура "\x21\x3C\x61\x72\x63\x68\x3E\x0A" сохранилась как "\x21\x3Carch\x3E\x0A", кажется, но я бы всё равно записывал в hex.

P.S. Как вариант - искать сигнатуры упакованных TAR'ов, т.к. формат DEB простой - там в начале сигнатура, смещения и размеры control.tar.* и data.tar.*, явно меньше ограничения в 4096 байт.
P.P.S. Можно с автором связаться.

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 191
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #4 : 08 Мая 2025, 09:37:10 »
После 40 часов работы по сигнатуре \x21\x3C\x61\x72
получено 50000 разных архивов. Как я и опасался с !<arch> начинаются многие архивы вообще.
Не найдены архивы и .deb размером более 4 MB. В роде я ничего не ограничивал, всё в дифаультных настройках.


Нужно получить характерную именно для .deb сигнатуру.  И попытаться ешё раз.


man

Сигнатуры файлов

Сигнатура файла - фиксированная последовательность байтов в начале файла
определённого типа. Например, при открытии любого PDF-файла в
шестнадцатеричном редакторе можно увидеть одну и ту же
последовательность первых 4 байт:

0000:
25 50 44 46 2D 31 2E 33
0A ...
%PDF-1.3...

В этом случае в DMDE можно задать сигнатуру строкой %PDF (или
\x25\x50\x44\x46 с использованием шестнадцатеричных кодов). Для указания
произвольного байта используется знак вопроса (?). Код \mXY обозначает
фиксированную битовую маску предыдущего байта сигнатуры, где XY -
шестнадцатеричное значение маски (например, код \x05\m07 указывает, что
маской 7 = 00000111 (bin) фиксированы только три младших бита значения
5 = 00000101 (bin)).
Если позиция сигнатуры в файле не фиксирована, необходимо указать
минимальное и максимально возможное смещение от начала файла.
Сигнатура должна целиком умещаться в первые 4096 байта.

Если кто знает, то пишите.  Я попробую ещё.

И ещё странность. Ghex из Ubuntu 24.04 показывает начало одного и того же .deb с большим пропуском после !<arch>
А Ghex из Ubuntu 14.04  без пустого места, плотно. Как это понимать?
« Последнее редактирование: 08 Мая 2025, 12:56:57 от ase66 »

Онлайн Skif_off

  • Активист
  • *
  • Сообщений: 419
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #5 : 08 Мая 2025, 22:56:19 »
Странно, сигнатура достаточно специфическая и другая вряд ли возможна, структуру тут можно посмотреть.
Проверил \x21\x3C\x61\x72\x63\x68\x3E\x0A - работает: DMDE нашла 4400 с копейками, ФМ - 3700 с копейками, восстановил с десяток файлов - норм. Правда, всё это на томе NTFS (дефрагментированном).
Большей проблемой будет найти конец файла, бо в DEB нет маркера конца файла, размер высчитывается из заголовка.

Оффлайн ase66

  • Автор темы
  • Участник
  • *
  • Сообщений: 191
    • Просмотр профиля
Re: Как корректно искать .deb в DMDE?
« Ответ #6 : 09 Мая 2025, 12:09:43 »
Программа сама находит .deb, они будут в папке NonameFiles. Но нужно дополнительно провести поиск в найденом по маске DEB. Будет выведен список всех .deb без имён, но зато с датой изменения.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.