- Как узнать типы файлов в Linux
- Примеры команд файла Linux
- Как найти / определить типы файлов в Linux
- Примеры команд file Linux
- Как определить тип файла файла с помощью Linux
- Найдите тип файла любого файла или группы файлов с помощью команды FILE
- Как работает команда File
- Как использовать команду «Файл»
- Настройте вывод из команды File
- Обработка нескольких файлов
- Сжатые файлы
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Как узнать тип файла без расширения (в Windows и Linux)
- Как определить тип данных, если у файла нет расширения
- Команда file — мгновенное определение типа любого файла
- Аналог команды file для Windows
- 1. Утилита file в Cygwin
- 2. file в WSL
- 3. Скомпилированный file для Windows
- 4. TrID — кроссплатформенная альтернатива file для Windows и Linux
- 5. fil — ещё одна кроссплатформенная альтернатива file
- Альтернативы file
- Detect It Easy
- Binwalk
- Связанные статьи:
- Рекомендуется Вам:
- 2 комментария to Как узнать тип файла без расширения (в Windows и Linux)
Как узнать типы файлов в Linux
Самый простой способ определить тип файла в любой операционной системе — это обычно посмотреть его расширение (например, .xml, .sh, .c, .tar и т. Д.). Что делать, если у файла нет расширения, как определить его тип?
В Linux есть полезная утилита под названием file, которая выполняет некоторые тесты для указанного файла и печатает тип файла после успешного выполнения теста. В этой короткой статье мы объясним примеры полезных файловых команд для определения типа файла в Linux.
Примечание. Чтобы использовать все параметры, описанные в этой статье, у вас должен быть файл версии 5.25 (доступен в репозиториях Ubuntu) или новее. В репозиториях CentOS есть более старая версия команды file (file-5.11), в которой отсутствуют некоторые параметры.
Вы можете запустить следующую команду, чтобы проверить версию файловой утилиты, как показано.
Примеры команд файла Linux
1. Самая простая команда для работы с файлом выглядит следующим образом: вы просто указываете файл, тип которого вы хотите узнать.
2. Вы также можете передать имена файлов для проверки из файла (по одному в каждой строке), которые вы можете указать с помощью флага -f , как показано.
3. Чтобы файл работал быстрее, вы можете исключить тест (допустимые тесты включают apptype, ascii, encoding, tokens, cdf, compress, elf, soft и tar) из списка тестов, сделанных для определения типа файла, используйте -e , как показано.
4. Параметр -s заставляет файл также читать, например, блочные или символьные специальные файлы.
5. Добавление параметров -z указывает файлу искать внутри сжатых файлов.
6. Если вы хотите сообщить информацию только о содержимом, а не о сжатии сжатого файла, используйте флаг -Z .
7. Вы можете указать команде файла выводить строки типа mime вместо более традиционных, удобочитаемых человеком, используя параметр -i .
8. Кроме того, вы можете получить список допустимых расширений, разделенных косой чертой, для найденного типа файла, добавив переключатель –расширение.
Для получения дополнительной информации и опций использования обратитесь к странице руководства файловой команды.
Это все! Команда file — полезная утилита Linux для определения типа файла без расширения. В этой статье мы поделились некоторыми полезными примерами файловых команд. Если у вас есть какие-либо вопросы или мысли, используйте форму обратной связи ниже, чтобы связаться с нами.
Источник
Как найти / определить типы файлов в Linux
Вы можете выполнить следующую команду для проверки версии файловой утилиты, как показано.
Примеры команд file Linux
1. Простейшая команда file следующая, где вы просто предоставляете файл, тип которого вы хотите узнать.
2. Вы также можете передать имена файлов, которые будут проверяться, из файла (по одному на строку), который можно указать с помощью флага -f, как показано ниже:
3. Чтобы ускорить работу file, вы можете исключить тест (допустимые тесты включают apptype, ascii, encoding, token, cdf, compress, эльф, soft и tar) из списка тестов, выполненных для определения типа файла, используйте -e как показано на рисунке.
4. Параметр -s заставляет файл также считывать специальные файлы блоков или символов.
5. Добавление опций -z указывает файл для просмотра сжатых файлов.
6. Если вы хотите сообщить информацию о содержимом, а не сжатие сжатого файла, используйте флаг -Z.
7. Вы можете указать команде file выводить строки типа mime вместо более традиционных для чтения, используя опцию -i.
8. Кроме того, вы можете получить список допустимых расширений с косой чертой для типа файла, найденного добавлением -extension.
Дополнительные сведения и варианты использования см. На странице руководства команды.
Источник
Как определить тип файла файла с помощью Linux
Найдите тип файла любого файла или группы файлов с помощью команды FILE
Большинство людей смотрят на расширение файла, а затем угадывают тип файла с этим расширением. Например, когда вы видите файл с расширением gif, jpg, bmp или png, вы думаете о файле изображения, а когда вы видите файл с расширением zip, вы предполагаете, что файл был сжат с помощью утилиты сжатия zip ,
В действительности, файл может иметь одно расширение, но быть чем-то совершенно другим. В Linux вы узнаете истинный тип файла с помощью команды file .
Как работает команда File
Команда file выполняет три набора тестов для файла:
- Тесты файловой системы
- Магические тесты
- Языковые тесты
Первый набор тестов для возврата правильного ответа приводит к печати типа файла.
Тесты файловой системы проверяют отдачу от системного вызова stat. Программа проверяет, является ли файл пустым и является ли он специальным файлом. Если тип файла найден в системном заголовочном файле, он возвращается как допустимый тип файла.
Магические тесты проверяют содержимое файла и, в частности, несколько байтов в начале, которые помогают определить тип файла. Различные файлы используются, чтобы помочь сопоставить файл с его типом файла, и они хранятся в:
Переопределите эти файлы, поместив файл в вашу домашнюю папку с именем $ HOME/.magic.mgc или $ HOME/.magic.
Финальные тесты – языковые тесты. Файл проверяется, чтобы увидеть, является ли он текстовым файлом. Тестируя первые несколько байтов файла, тест может определить, является ли файл ASCII, UTF-8, UTF-16 или другим форматом, который идентифицирует файл как текстовый файл. Когда выводится набор символов, файл проверяется на разных языках.
Если ни один из тестов не работает, выводом являются данные.
Как использовать команду «Файл»
Команда file может быть использована следующим образом:
Например, представьте, что у вас есть файл с именем file1, и вы запускаете следующую команду:
Вывод примерно такой:
Выходные данные определяют, что file1 – это файл изображения или, точнее, файл переносимой сетевой графики (PNG).
Различные типы файлов дают разные результаты:
- Тип файла ODS : электронная таблица OpenDocument
- Тип файла PDF : документ PDF, версия 1.4
- Тип файла CSV : текст ASCII, с очень длинными строками, с индикаторами строк CRLF
Настройте вывод из команды File
По умолчанию команда file предоставляет имя файла и все детали над файлом. Если вы хотите, чтобы только детали без имени файла повторялись, используйте следующий переключатель:
Вывод примерно такой:
Вы также можете изменить разделитель между именем файла и типом. По умолчанию в качестве разделителя используется двоеточие, но вы можете изменить его на что угодно, например на символ канала, следующим образом:
Вывод примерно такой:
Обработка нескольких файлов
По умолчанию вы используете команду file для одного файла. Однако вы можете указать имя файла, которое содержит список файлов, которые будут обработаны командой file.
Например, откройте файл с именем testfiles с помощью редактора nano и добавьте в него следующие строки:
Сохраните файл и выполните следующую команду:
Результат будет примерно таким:
- /etc/passwd: текст ASCII
- /etc/pam.conf: текст ASCII
- /etc/opt: каталог
Сжатые файлы
По умолчанию, когда вы запускаете команду file для сжатого файла, вы видите что-то вроде этого:
Хотя это говорит о том, что файл является архивом, вы не знаете его содержимого. Вы можете заглянуть внутрь zip-файла, чтобы увидеть типы файлов в сжатом файле. Следующая команда запускает команду file для файлов внутри ZIP-файла:
Вывод теперь показывает типы файлов файлов в архиве.
Большинство людей используют команду file, чтобы найти основной тип файла.Чтобы узнать больше о возможностях, которые предлагает команда file, введите в окне терминала следующее:
Эта команда открывает документацию по программному обеспечению Linux, включенную в систему.
Источник
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как узнать тип файла без расширения (в Windows и Linux)
Если вы попали сюда из поиска и вам нужно просто быстро узнать расширение файла, то к ваших услугам онлайн сервис «Определение типа файла без расширения»: https://suip.biz/ru/?act=file-type. Благодаря ему вам не понадобится устанавливать какие-либо программы, онлайн сервис за секунду определит тип файла, который вы прислали, причём покажет результаты сканирования сразу четырьмя программами, рассмотренными в этой статье. Заодно выведет найденную в файле метаинформацию — часто там есть что-то интересное.
Если вы из тех, кто хочет узнать как работают инструменты указанного сервиса, а также как ими пользоваться на своём компьютере, то продолжайте читать.
Если вам кажется, что проблема с определением типов файлов без расширений надуманная, то это далеко не так! Во-первых, если подумать, это не такая уж простая задача. А с файлом без расширения вы можете столкнуть, например, при декодировании строки из Base64 кодировки.
Во-вторых, у этой статьи будет продолжение, в которой эти же самые инструменты, которые вы изучите на этой странице, будут использоваться для:
1) разбора прошивок (например, роутеров, IP камер) на составные части (первый этап обратной инженерии либо анализа работы устройств для поиска уязвимостей и бэкдоров)
2) поиска файловых систем на дисках и их образах (первый этап криминалистической IT экспертизы)
3) поиска удалённых файлов
Как определить тип данных, если у файла нет расширения
Если у файла нет расширения, то единственным вариантом определения его типа остаётся содержимое этого файла. Можно попробовать добавлять различные расширения к имени файла и пытаться открыть соответствующими для этого расширения программами — этот вариант медленные и неэффективный.
Определённые типы бинарных файлов могут иметь одинаковый набор байтов — по этим байтам можно сопоставить тип файлов. И именно данный метод и применяется программами, предназначенными для определения типа данных. Специфичные байты как правило располагаются не в самом начале файла, поэтому кроме самих байтов, нужно знать смещение от начала, где эти байты должны находиться. Некоторые программы в дополнении к байтам для идентификации ещё имеют список для проверки на ложное срабатывание.
Такие паттерны на английском часто называют magic — это пошло от «magic number» в исполнимых файлах. Эти файлы имеют «магическое число», хранящееся в определённом месте рядом с началом файла, которое сообщает операционной системе UNIX, что файл является двоичным исполняемым файлом и каким именно из нескольких типов. Концепция «магического числа» была применена к другим бинарным файлам. То есть файлы одинакового типа имеют одинаковую последовательность байтов в определённом месте от начала файлов.
Файл с сигнатурами, описывающими какие именно байты, на каком расстоянии от начала файла характерны для файлов того или иного типа, обычно называют magic file.
Чтобы понять количество проделанного труда при поиске уникальных байтов, обязательно присутствующих в тех или иных файлах, посмотрите на магический файл для определения файловых систем https://github.com/file/file/blob/master/magic/Magdir/filesystems
Это только один файл из перечня различных типов файлов: https://github.com/file/file/tree/master/magic/Magdir
Кроме магических чисел могут применяться и другие техники, например, программа file для проведения тестов файловых систем также может использовать системный вызов stat. Тип текстовых файлов определяется по содержащимся в них строкам (например, это может быть PHP код, файл в XML или HTML разметке, JSON и так далее).
Команда file — мгновенное определение типа любого файла
В Linux есть команда file с огромной базой сигнатур, которая очень быстро определяет тип файла:
Чтобы узнать, что за файл без расширения, выполните команду вида:
То есть это текстовый файл офисного пакета Microsoft Office.
Можно указать сразу несколько файлов для проверки или использовать подстановочные символы. Например, следующая команда проверит типы всех файлов в текущей папке:
У программы file имеются опции, подробности о них смотрите в отдельной статье «Инструкция по использованию команды file».
Аналог команды file для Windows
file — это утилита командной строки для Linux, поэтому пользователям Windows нужна какая-то альтернатива. Рассмотрим несколько способов использования file в Windows.
1. Утилита file в Cygwin
Данный способ, на мой взгляд, самый простой. Достаточно скачать Cygwin и вы можете пользоваться большинством утилит Linux. Подробности, в том числе как указывать пути в файловой системе, смотрите в ветке «Как начать знакомство с командами Linux: Cygwin».
2. file в WSL
Подсистема Windows для Linux (WSL) это ещё один способ использовать утилиты Linux в Windows. Подробности о работе с WSL смотрите в справочном материале «WSL (подсистема Windows для Linux): подсказки, инструкции, решения проблем».
3. Скомпилированный file для Windows
На странице https://github.com/julian-r/file-windows/releases вы можете скачать скомпилированные файлы утилиты file (ещё один источник https://github.com/nscaife/file-windows/releases, но там более старая версия).
Файлы различаются архитектурой (64- и 32-битные), а также компилятором.
Скачайте файл, например, file_5.38-build49-vs2019-x64.zip.
Распакуйте скаченный архив. Например, я поместил скаченные файлы в папку C:\Users\MiAl\Downloads\file\.
Откройте командную строку, для этого нажмите Win+x, выберите «Windows PowerShell».
Перейдите в папку с программой:
Для определения расширения файла используйте команду вида:
Вы можете проверить сразу много файлов, для этого перейдите в папку с утилитой file и выполните команду вида:
Например, я хочу проверить все файлы в папке Z:\testfiles\, тогда команда следующая:
4. TrID — кроссплатформенная альтернатива file для Windows и Linux
В утилите TrID довольно много сигнатур и база данных постоянно пополняется новыми образцами. Программа является кроссплатформенной, подробную инструкцию по установке и использованию в Windows и Linux вы найдёте на этой странице: https://kali.tools/?p=2887
Пример анализа файла — обратите внимание, что выведено несколько вариантов с указанием процентной вероятности каждого из них:
Если указать несколько файлов для идентификации, то будет выведен только самый вероятный вариант типа файла:
Установка TrID в Windows
Перейдите на официальный сайт, скачайте архив с исполнимым файлом (mark0.net/download/trid_w32.zip) для Windows, а также архив с базой данных сигнатур (mark0.net/download/triddefs.zip).
Распакуйте оба файла в одну папку.
Распакуйте скаченный архив. Например, я поместил скаченные файлы в папку C:\Users\MiAl\Downloads\trid\.
Откройте командную строку, для этого нажмите Win+x, выберите «Windows PowerShell».
Перейдите в папку с программой:
Для определения расширения файла используйте команду вида:
Подстановочные знаки могут использоваться для сканирования групп файлов, целых папок и так далее.
Кроме того, использование ключа -ae даст команду TrID добавить предполагаемые расширения к именам файлов. Это удобно, например, при работе с файлами, восстановленными программами для восстановления данных. Например:
На этом этапе файлы в папке c:\temp будут выглядеть так:
- FILE0001.CHK.bav
- FILE0002.CHK.ogg
- FILE0003.CHK.doc
- FILE0004.CHK.exe
Вместо предыдущей опции можно использовать -ce, которая изменит расширение файла на новое; если у файла нет расширения, будет добавлено новыъое. Например:
- IAmASoundFile.dat -> IAmASoundFile.wav
- IAmABitmap -> IAmABitmap.bmp
TrID может получить список файлов со стандартного ввода с помощью переключателя -@.
Таким образом, можно работать со всем деревом папок или определенным подмножеством файлов, просто используя вывод какой-либо другой команды через конвейер. Что-то вроде:
Можно указать TrID показывать дополнительную информацию о каждом совпадении (например, тип mime, кто создал эту сигнатуру, сколько файлов было просканировано и так далее); а также можно ограничить количество отображаемых результатов.
Ключ -v активирует подробный режим, а -r:nn указывает максимальное количество совпадений, которое будет отображать TrID. По умолчанию 5 для обычного режима, 2 для подробного, 1 для многофайлового анализа.
Программа TrID обновляется нечасто, но база данных регулярно получает новые сигнатуры, поэтому время от времени обновляйте базу данных.
5. fil — ещё одна кроссплатформенная альтернатива file
Программа fil написана на Go и является кроссплатформенной. Но в программе настолько мало сигнатур, что, на мой взгляд, утилита fil практически бесполезна.
Альтернативы file
Для большинства нужд по определению типа файла без расширения достаточно утилиты file, но есть утилиты со смежным функционалам, которые могут заменить или уточнить информацию от file. Более подробно каждая из этих программ будет рассмотрена в следующей части, сейчас только краткий обзор.
Detect It Easy
Detect It Easy — это кроссплатформенная программа для определения типов файлов. Имеется вариант с графическим интерфейсом, а также интерфейсом командной строки.
Инструкцию по установке программы вы найдёте на её странице https://kali.tools/?p=6788.
Анализ файла /mnt/disk_d/Share/testfiles/file1 с показом результатов в графическом интерфейсе:
Анализ файла без расширения, расположенного по пути /mnt/disk_d/Share/testfiles/file1 для определения типа файла:
Detect It Easy в первую очередь нацелена на анализ исполнимых файлов, поэтому её функции в большей степени относятся к файлам программ, например, определение архитектуры. Но также имеется поддержка других бинарных файлов.
Binwalk
Binwalk это программа для анализа прошивок, но в ней собрано много сигнатур бинарных файлов, поэтому она подходит для определения типа файла. Особенность Binwalk в том, что она нацелена на работу с составными файлами (которыми обычно и являются прошивки), поэтому она может определять тип файла даже если файл находится не в начале.
Использование такое же, как и file, достаточно указать путь до одного или нескольких файлов:
Detect It Easy и Binwalk не столько конкуренты утилиты file, сколько «последний шанс» определить тип данных, если команда file не помогла.
Связанные статьи:
- Анализ и разбивка составных файлов (прошивки, образы дисков) (99.8%)
- Отладка приложения в Windows с Radare2 (50.3%)
- Обратный инжиниринг с использованием Radare2 (Reverse Engineering) (50%)
- Обратный инжиниринг с использованием Radare2 (Reverse Engineering) (часть 2) (50%)
- Анализ трояна Snojan (50%)
- Руководство по Bless (шестнадцатеричный редактор) (RANDOM — 50%)
Рекомендуется Вам:
2 комментария to Как узнать тип файла без расширения (в Windows и Linux)
Иногда бывают полезны такие утилиты, как Scalpel и Foremost, которые позволяют анализировать «сырые» двоичные файлы или неразмеченное простаранство дисков (в т.ч. восстанавливать данные после форматирования).
https://trailofbits.github.io/ctf/forensics/
Приветствую! Да, согласен. Для меня открытием стала Binwalk — отличный помощник в анализе прошивок, образов и просто непонятных данных.
Источник