Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

аналог утилиты file

84 views
Skip to first unread message

Sohin Vyacheslav

unread,
Jan 20, 2016, 7:10:03 AM1/20/16
to
День добрый,


интересно есть аналог утилиты file, который бы не просто отображал тип
файла-бинарник это или данные, но и определял что это за формат файла, к
какому приложению относится на основании содержимого файла?

--
BW,
Сохин Вячеслав

Victor Wagner

unread,
Jan 20, 2016, 7:20:03 AM1/20/16
to
On Wed, 20 Jan 2016 14:02:32 +0200
Sohin Vyacheslav <in....@yandex.ua> wrote:

> День добрый,
>
>
> интересно есть аналог утилиты file, который бы не просто отображал тип
> файла-бинарник это или данные, но и определял что это за формат

Вообще-то утилита file ровно это и делает.

$ file Downloads/Kak\ lyudi\ vidyat.pdf
Downloads/Kak lyudi vidyat.pdf: PDF document, version 1.5
$ file Downloads/tuple-internals.odp
Downloads/tuple-internals.odp: OpenDocument Presentation

Если она говорит "данные" это значит "какой-то неизвестный формат
попался, не могу определить"

> файла, к какому приложению относится на основании содержимого файла?

А вот это - сложнее. Как правило, в системе есть несколько приложений,
которые могут работать с определенным типом файла.

Например тот же PDF можно открыть evince, qpdfview, gv или даже gimp.

Утилита file имеет ключик --mime-type, выдающий MIME-тип файла, по
которому подходящие приложения можно поискать в /etc/mailcap.

Sergey Korobitsin

unread,
Jan 20, 2016, 8:00:04 AM1/20/16
to
Sohin Vyacheslav ☫ → To debian-...@lists.debian.org @ Wed, Jan 20, 2016 14:02 +0200

> День добрый,
>
>
> интересно есть аналог утилиты file, который бы не просто отображал тип
> файла-бинарник это или данные, но и определял что это за формат файла, к
> какому приложению относится на основании содержимого файла?

xdg-mime из пакета xdg-utils:

$ xdg-mime query filetype /tmp/text.png
image/png
$ xdg-mime query default image/png
eog.desktop
$ grep ^Exec `find /usr/share/applications/ -name eog.desktop`
Exec=eog %U

ну и в таком духе.

--
Bright regards, Sergey Korobitsin,
Chief Research Officer
Arta Software, http://arta.kz/
xmpp:under...@jabber.arta.kz

Sohin Vyacheslav

unread,
Jan 20, 2016, 8:10:03 AM1/20/16
to


20.01.2016 14:15, Victor Wagner пишет:
> Утилита file имеет ключик --mime-type, выдающий MIME-тип файла, по
> которому подходящие приложения можно поискать в /etc/mailcap.

интересно...

% file --mime-type file
file: application/octet-stream

% cat /etc/mailcap | grep octet-stream
пусто

--
BW,
Сохин Вячеслав

Victor Wagner

unread,
Jan 20, 2016, 8:40:04 AM1/20/16
to
On Wed, 20 Jan 2016 15:01:29 +0200
Sohin Vyacheslav <in....@yandex.ua> wrote:

> 20.01.2016 14:15, Victor Wagner пишет:
> > Утилита file имеет ключик --mime-type, выдающий MIME-тип файла, по
> > которому подходящие приложения можно поискать в /etc/mailcap.
>
> интересно...
>
> % file --mime-type file
> file: application/octet-stream

Ну так application/octet-stream это то же самое что "данные".
Неопознанный формат файла. Соответственно и приложения для его
обработки не находится.

Oleksandr Gavenko

unread,
Jan 20, 2016, 12:40:04 PM1/20/16
to
On 2016-01-20, Sohin Vyacheslav wrote:

> интересно есть аналог утилиты file, который бы не просто отображал тип
> файла-бинарник это или данные, но и определял что это за формат файла, к
> какому приложению относится на основании содержимого файла?

file(1) этим как раз и заниматся.

Только официальный дистрибутив не обновляют сигнатурами всякой проприетарщины.

Можете создать свою базу, читаем magic(5).

Кстати страничка:

http://www.garykessler.net/library/file_sigs.html
I have found little information on this in a single place, with the
exception of the table in Forensic Computing: A Practitioner's Guide by
T. Sammes & B. Jenkinson (Springer, 2000); that was my inspiration to
start this list in 2002.

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

Там же товарищь ссылается на кучу ресурсов, например:

https://en.wikipedia.org/wiki/List_of_file_signatures

Я пользуюсь еще более специализированой утилитой:

mediainfo

================================================================

Есть основания полагать на наличие проприетарных баз сигнатур для анализа в
секурлабах и у NSA, ФСБ и т.д. Им нужно сканировать потоки данных и изучать
содержимое захваченых хранилищь.

Если нужна такая "полная" база - спрашивайте на варезных ресурсах.

--
http://defun.work/

Alexander Galanin

unread,
Jan 20, 2016, 2:00:03 PM1/20/16
to
On Wed, 20 Jan 2016 14:02:32 +0200
Sohin Vyacheslav <in....@yandex.ua> wrote:

> интересно есть аналог утилиты file, который бы не просто отображал тип
> файла-бинарник это или данные, но и определял что это за формат файла, к
> какому приложению относится на основании содержимого файла?

run-mailcap (и его специализации see, edit, view, compose, print)
запускает соответствующую программу для каждого из четырёх действий на
основании результата определения mime-типа файла.

--
Alexander Galanin

Sohin Vyacheslav

unread,
Jan 21, 2016, 4:30:03 AM1/21/16
to


20.01.2016 19:35, Oleksandr Gavenko пишет:
> Я пользуюсь еще более специализированой утилитой:
>
> mediainfo

но вроде mediainfo только для аудио/видео файлов?

mediainfo выдало такую инфу:
00 3B 58 F0 -- Unknown, filling --
00 3B 58 F0 -- Unknown, finished --

ни на https://en.wikipedia.org/wiki/List_of_file_signatures, ни на
http://www.garykessler.net/library/file_sigs.html нет точного совпадения
с 00 3B 58 F0...



--
BW,
Сохин Вячеслав

Sohin Vyacheslav

unread,
Jan 21, 2016, 4:30:03 AM1/21/16
to


20.01.2016 20:43, Alexander Galanin пишет:
> run-mailcap (и его специализации see, edit, view, compose, print)
> запускает соответствующую программу для каждого из четырёх действий на
> основании результата определения mime-типа файла

% run-mailcap --action=view --debug file.hid
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/run-mailcap line
528.
- parsing parameter "file.hid"
.............................................
- extension "hid" maps to mime-type ""
- file command returned mime-type "application/octet-stream"
- Reading mailcap file "/home/slawa/.mailcap"...
- Reading mailcap file "/etc/mailcap"...
..............................................
Processing file "file.hid" of type "application/octet-stream"
(encoding=none)...
Error: no "view" mailcap rules found for type "application/octet-stream"


% see file.hid
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/see line 528.
Error: no "view" mailcap rules found for type "application/octet-stream"

% edit file.hid
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/edit line 528.
Error: no "edit" mailcap rules found for type "application/octet-stream"

view открыло в редакторе vim в режиме только для чтения-одни
крякозябры... (открыло просто просмотрщик файла по умолчанию)

в пакете mime-support утилиты view нет:
% dpkg -L mime-support | grep view
/usr/lib/mime/debian-view


% compose file.hid
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/compose line 528.
Error: no "compose" mailcap rules found for type "application/octet-stream"

% /usr/bin/print file.hid
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no "print" mailcap rules found for type "application/octet-stream



--
BW,
Сохин Вячеслав

Sohin Vyacheslav

unread,
Jan 21, 2016, 4:40:02 AM1/21/16
to


21.01.2016 11:28, Sohin Vyacheslav пишет:
> ни на https://en.wikipedia.org/wiki/List_of_file_signatures, ни на
> http://www.garykessler.net/library/file_sigs.html нет точного совпадения
> с 00 3B 58 F0...

Единственное, что заметил-на
http://www.garykessler.net/library/file_sigs.html

"GIF Graphics interchange format file
Trailer: 00 3B (.;) "

это оно?

--
BW,
Сохин Вячеслав

Sohin Vyacheslav

unread,
Jan 21, 2016, 10:20:03 AM1/21/16
to


20.01.2016 14:02, Sohin Vyacheslav пишет:
> интересно есть аналог утилиты file, который бы не просто отображал тип
> файла-бинарник это или данные, но и определял что это за формат файла, к
> какому приложению относится на основании содержимого файла?
>

а если файл закодирован-можно как-то узнать с помощью чего?

--
BW,
Сохин Вячеслав

Alexander Galanin

unread,
Jan 21, 2016, 12:00:05 PM1/21/16
to
On Thu, 21 Jan 2016 11:21:33 +0200
Sohin Vyacheslav <in....@yandex.ua> wrote:

> 20.01.2016 20:43, Alexander Galanin пишет:
> > run-mailcap (и его специализации see, edit, view, compose, print)
> > запускает соответствующую программу для каждого из четырёх действий на
> > основании результата определения mime-типа файла
>
> % run-mailcap --action=view --debug file.hid
> Unescaped left brace in regex is deprecated, passed through in regex;
> marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/run-mailcap line
> 528.

Это с примером файла хорошо бы смотрелось на http://bugs.debian.org.

--
Alexander Galanin

Oleksandr Gavenko

unread,
Jan 21, 2016, 12:50:03 PM1/21/16
to
On 2016-01-21, Sohin Vyacheslav wrote:

> но вроде mediainfo только для аудио/видео файлов?
>

Это большой клас файлов. Выдает имя/номер кодека и имя контейнера. Битрейты и
частоту дискретизации. Ради этой информации.

> mediainfo выдало такую инфу:
> 00 3B 58 F0 -- Unknown, filling --
> 00 3B 58 F0 -- Unknown, finished --
>

Скорее всего это мусор. Что в файле - можно посмотреть по:

$ hexdump $FILE

> ни на https://en.wikipedia.org/wiki/List_of_file_signatures, ни на
> http://www.garykessler.net/library/file_sigs.html нет точного совпадения
> с 00 3B 58 F0...

Смотрите что в файле, а не вывод ошибки mediainfo

Кстати никто не гарантирует что тип файла определяется специальным саркером.
Или нет гарантии что маркер - с первого байта файла...

--
http://defun.work/

Oleksandr Gavenko

unread,
Jan 21, 2016, 1:40:03 PM1/21/16
to
On 2016-01-21, Sohin Vyacheslav wrote:

> а если файл закодирован-можно как-то узнать с помощью чего?

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

Сообщество максимум что осилило - magic(5).

Я несколько раз пробовал найти волшебную базу. Можете попытать счастья сами:

https://www.google.com.ua/search?q=file+signature+database

Как я и догадывался ниточки ведут в проприетарные базы для целей (ключевые
слова для поиска или вопросов продукта/базы на варезных сайтах, если очень
хочется):

forensic computer examiner

Например попробуйте вступить в:

http://www.filesig.co.uk/ofsdb.html
ONLINE FILE SIGNATURE DATABASE (OFSDB)
How to join?

General Access is free to ISFCE and IACIS members. Please submit
complete/accurate details providing additional information where possible
to ensure quick registration.

Далее поиск бросил на книгу в гуглдокс:

Malware Forensics: Investigating and Analyzing Malicious Code

В главе

8. File identification and profiling.

есть ссылка на проект, может он полнее:

http://mark0.net/soft-trid-e.html
TrID is an utility designed to identify file types from their binary
signatures

Вот какие то курсы:

https://cyfor.engineering.nyu.edu/lessons/file-signature/
File Forensics / File Signature

Т.е. учится, практиковаться надо.

Еще какие то разрочненые потуги в виде:

http://www.thefreelibrary.com/File+Signature+Database.-a0110728886
The File Signature Database (FSDB) from Tripwire Inc. is designed to bring
to market a heterogeneous collection of known-good file data

The FSDB is currently populated with more than 11 million known-good file
signatures

Т.е. тупо хеши от файлов.

Есть команды, запимающиеся разработкой проприетарных баз:

http://www.nationalarchives.gov.uk/documents/information-management/pronom-file-signature-research.pdf
How to research and develop signatures for file format identification

Мне пришлось в своей практике только столкнуться с unpacker для защищенных
исполнимых бинарных PE файлов. Есть проекты - которые собирали воедино
доспупные анпакеры и то ли пробовали подряд до успеха, то ли сами сосавляли
сигнатуры - что бы знать что вызывать.

В конце концов опреледив чем запаковано - пришлось качать некое Delphi
поделие, которое распаковывало нужный файл (инсталятор, коорый требовалось
перепаковать).

--
http://defun.work/

Sohin Vyacheslav

unread,
Jan 22, 2016, 3:10:03 AM1/22/16
to


21.01.2016 20:32, Oleksandr Gavenko пишет:

>
> http://mark0.net/soft-trid-e.html
> TrID is an utility designed to identify file types from their binary
> signatures

вот эту утилиту я попробовал-не определила...
спасибо огромное за исчерпывающую инфу по сабжу!

--
BW,
Сохин Вячеслав
0 new messages