Распаковка нестандартно упакованных файлов
Безусловно, термин нестандарно упакованные файлы не удачен, но другого лучшего выражения не придумал, да и в общем то это не суть так важно. А суть в следующем — встречаются файлы, про которые точно знаешь, что они упакованы определенным архиватором, а распаковать их стандартным способом не можешь, или, например, распаковал, а в распакованном файле обнаруживаешь другие упакованные файлы, распаковать которые тоже обычным способом не получается.
Вот о распаковке таких файлов и хочу поделиться опытом с пользователями, которые с этим не знакомы. А чтобы бы понять саму идею распаковки таких файлов, сначала немного поэкспериментируем, а для проведения экспериментов упакуем/заархивируем произвольный простой файл, но сначала создадим его
$ echo ‘Т Е С Т’ > ~/test
Убедимся, что файл создан
$ cat ~/test
Т Е С Т
упакуем этот файл, например, архиватором gzip
$ gzip ~/test
и посмотрим на упакованный файл утилитой hexdump, точнее посмотрим 1-ые 16 байт
$ hexdump -C -n 16 ~/test.gz
00000000 1f 8b 08 08 9e 52 18 59 00 03 74 65 73 74 00 bb |. R.Y..test..|
Первые 3 байта — это так называемая сигнатура (HEX код) архиватора gzip — 1F 8B 08, которая является составной частью упакованного файла (его началом) и присуща только архиватору gzip, что позволяет отличить этот файл от других и, главное, видно, что архиватор, точнее сигнатура начинается с самого начала (с нулевого байта, смещение равно 0).
UPD — если быть точным, то сама сигнатура два байта (0x1f, 0x8b), а 3-ий байт определяет compression method (08 — deflate)
При распаковке этого файла, утилита gzip сначала проверит наличие сигнатуры, присущей gzip, и только после этого примет решение о распаковке.
Проверим это, а для чего изменим сигнатуру файла, точнее, изменим 1-ый байт — вместо 1F запишем 1E (я проделал это в hex редакторе)
$ hexdump -C -n 16 ~/test.gz
00000000 1e 8b 08 08 9e 52 18 59 00 03 74 65 73 74 00 bb |. R.Y..test..|
Ну и попытаемся рапаковать
$ gzip -d ~/test.gz
gzip: ~/test.gz: not in gzip format
И то же самое будет, если сигнатура будет правильная, но начинаться будет не с начала файла (смещение не равно 0) — вернем все на место, но перед сигнатурой запишем 1 байт — 00 (я сохранил этот файл, как test1.gz).
$ hexdump -C -n 16 ~/test1.gz
00000000 00 1f 8b 08 08 9e 52 18 59 00 03 74 65 73 74 00 |. R.Y..test.|
$ gzip -d ~/test1.gz
gzip: ~/test1.gz: not in gzip format
И значит распаковывать такие файлы нужно по-другому, а именно, нужно указать при распаковке смещение, откуда начинать, т.е. где начинается сигнатура.
Самый простой вариант — удалить байты до сигнатуры, но это не этично, да и иногда это выливается в мегабайты и десятки мегабайт.
Лучше поступить грамотно — указать утилите смещение, с которго начинать распаковку (делаем пропуск с помощью dd в 1 байт прежде чем начать распаковку)
$ dd if=~/test1.gz skip=1 bs=1 | gzip -d > test1
Проверим, что мы получили
$ cat ~/test1
Т Е С Т
То есть распаковали успешно и получили исходный файл.
И так на простом файле показал суть и сам принцип распаковки таких нестандартно упакованных файлов.
Но в жизни все сложнее, но когда понимаешь суть, то можно распаковать и более сложные файлы.
Попробуем сейчас опробовать наши знания на ядре Archlinux — пример неудачный, но полезный для обучения.
Справка — ядро, как правило, находится в сжатом виде, но, главное, сжатое ядро представляет собой загрузчик и распаковщик, за которым следует собственно сжатый алгоритмом zlib vmlinux, а потому сначала необходимо отделить сжатое ядро от загрузчика.
Сначала используя утилиты hexdump и file попробуем выяснить, что же это такое, наше ядро
# hexdump -C -n 16 /boot/vmlinuz-linux
00000000 4d 5a ea 07 00 c0 07 8c c8 8e d8 8e c0 8e d0 31 |MZ. 1|
Судя по сигнатуре 4d 5a (MZ) перед нами стандартный исполняемый формат (исполняемый DOS файл), сигнатура которого 4D 5A (MZ) составлена из инициалов одного из создателей MS-DOS Марка Збиковски.
$ file /boot/vmlinuz-linux
/boot/vmlinuz-linux: Linux kernel x86 boot executable bzImage, version 4.7.6-1-ARCH (builduser@tobias) #1 SMP PREEMPT Fri Sep 30 19:46, RO-rootFS, swap_dev 0x4, Normal VGA
И в итоге подтверждается сказанное выше, что сжатое ядро представляет собой загрузчик + распаковщик + само ядро сжатое алгоритмом zlib архиватора gzip с распаковкой в процессе загрузки.
Но нам, главное, понятно (по 1-ой части), чтобы распаковать ядро, нам нужно отделить сжатое ядро от загрузчика.
Как нам уже известно, gzip имеет сигнатуру 1f 8b 08 — вот и найдем его начало.
Перечислю способы, которыми можно это сделать.
1. Используя hex-редактор, например, bless — определяем, что 1f 8b 08 начинается с адреса 0х4501 или в 10 системе — 17665
UPD — делал и писал давно (обучал молодежь), так что число 17665 уже будет другое.
2. Используя утилиту od
od -A d -t x1 vmlinuz-linux | grep «1f 8b 08»
0017664 e0 1f 8b 08 00 00 00 00 00 02 03 ec 5a 7b 74 53
и получаем опять 17665
3. Очень хорошую утилиту binwalk
binwalk vmlinuz-linux
DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 0 0x0 Microsoft executable, portable (PE) 17665 0x4501 gzip compressed data, maximum compression, from Unix, NULL date (1970-01-01 00:00:00) .
Как видим совпадает во всех случаях — 17665
Остается только извлечь из vmlinuz сжатое ядро и распаковать его:
dd if=vmlinuz-linux skip=17665 bs=1 | gzip -d > vmlinux
gzip: stdin: decompression OK, trailing garbage ignored
Желающие могут снова применить binwalk — binwalk vmlinux
и увидят уже названия файлов, правда вытащить их просто так уже не получится.
Вот и все.
binwalk также удобно использовать для определения архиватора, в случае если есть сомнения. Утилита включает большую базу сигнатур известных архиваторов. Но, разумеется, база базой, но лучше всегда перепроверить ручками, использую hex-редактор.
Ну и бонус на посошок любителям паролей — можно не вешать никакие пароли на сжимаемый файл, а просто ручками добавить в начало несколько байтов, но ЛУЧШЕ изменить сигнатуру и никто этот файл не распакует.
Конечно, эти изменения должны быть постоянны и легко запоминаемы.
Ошибки не исчезают с опытом — они просто умнеют
Как распаковать архив или упаковать файлы. Сравнение скорости 3 архиваторов
Сравнение скорости будет в конце, в виде таблицы. А пока, если не в курсе, почитайте, как разархивировать файлы 7z, RAR и других форматов.
Что такое заархивированный файл?
Архивные файлы появились на заре эпохи компьютеризации, когда жесткие диски и съемные накопители были маленькими, и пользователям часто было сложно впихнуть на комп всю необходимую информацию. Решить проблему какое-то время помогали программы-архиваторы.
В последние годы емкости винчестеров растут медленно, места для файлов большинству пользователей хватает, а еще появилась возможность держать фотки, документы и прочую инфу в облаке. Архиваторы отчасти утратили актуальность, но они по-прежнему востребованы для:
- пересылки папок и многочисленных мелких файликов по электронной почте;
- хранения информации под паролем;
- размещения данных на небольших флешках;
- использования на смартфонах, в которых куда чаще наблюдается дефицит свободного пространства.
Файл-архив — это контейнер, в котором хранятся файлы и/или папки в сжатом состоянии. Чтобы подкорректировать, например, архивный документ, нужно знать, как разархивировать упакованный файл. Для этого используют программы-упаковщики или средства Windows. Правка заархивированных файлов чревата потерей изменений.
Как распаковать архив на ПК
Пользователям Windows необязательно заморачиваться с установкой программ-архиваторов, поскольку в систему встроен упаковщик, который работает с ZIP-архивами. Однако многие по привычке пользуются утилитой WinRAR. Также в топе востребованных решений приложение 7-Zip, обеспечивающее впечатляющую плотность сжатия. Рассмотрим вкратце, как упаковывать и распаковывать архивы, пользоваться дополнительными возможностями популярных приложений.
Софт для просмотра фильмов: Топ 10 видеоплееров на ПК для Windows
Архивы формата ZIP
Зиповский формат поддерживают Windows и MacOS. Эти операционки знают, как распаковать архив с расширением ZIP без помощи сторонних программ. Также они умеют упаковать информацию. Для этого:
- выделяем в проводнике то, что хотим заархивировать;
- клацаем правой по выделенному, в меню выбираем — отправить в сжатую зиповскую папку;
- называем свое творение.

Разархивировать файл ZIP можно как с помощью контекстного меню проводника, так и путем использования популярных утилит: WinRAR, 7-Zip и прочего. Формат ZIP удобен тем, что пользователи без опаски отправляют упакованную инфу друзьям и коллегам. Получатель откроет «посылку» без проблем, у него не возникнет потребность устанавливать архиватор. По этой причине присутствие на ПК более продвинутого софта, например, 7-Zip, не обессмысливает использование традиционного формата.
Архивы RAR
Еще один популярный мультиплатформенный формат. На компах под Windows обычно его юзают после установки условно-бесплатной приложухи WinRAR. Программа предоставляет широкий спектр возможностей.
Приложуха может не только сжать или распаковать архив RAR, как предусмотрено алгоритмами разработчика. К услугам юзеров функционал, который разработчик распределил на несколько вкладок:
- создание непрерывных, многотомных архивов;
- установка пароля на архив со скрытием его содержимого;
- создание самораспаковывающегося архива, именуемого SFX;
- восстановление поврежденных файлов в контейнере и прочее.
Последняя функция реализуется путем использования меню архиватора. Нужен клик по «Операциям», а затем выбор пункта «Восстановить архив». Если после этого распаковать архив WinRAR не выйдет как положено, можно будет извлечь хотя бы файлы, которые уцелели после сбоя винчестера.
Архивы 7z
7-Zip — бесплатная программа без всяких «условно». Формат сжатия 7z дает 5-25% экономии дискового пространства по сравнению с классическим ZIP-форматом. Архиватор 7-Zip умеет распаковывать контейнеры ISO и RAR, полноценно работает с ZIP-форматом.
Рассмотрим, как распаковать 7z архив на ПК. Первым делом клацаем правой по упакованному файлу и выбираем 7-Zip. Далее клацаем на один из пунктов, который начинается со слова «Открыть» или «Распаковать». Если хотите извлечь инфу в отдельную папку — выберите пункт с именем архива.
Со сжатием информации тоже проблем не возникает. Когда клацаем правой кнопкой по обычной папке, высвечиваются только варианты, связанные с упаковкой. Можно выбрать формат 7z или ZIP. Если выбрать «Добавить к архиву…», нарисуется окно с настройками. В нем пользователь может изменить:
- имя архива, его формат;
- место сохранения;
- плотность и алгоритм сжатия.

Есть возможность нарезки архива, установки пароля, активации параметра самораспаковки.
Как распаковать архив на Андроид
На смартфонах и прочих Android-устройствах можно пользоваться, например, архиватором RAR. Технология мало отличается от той, что мы применяем на компьютерах. Интерфейс другой, но смысл тот же. Распаковка производится следующим образом:
- Напротив файла с расширением RAR нажимаем кнопку «Открыть».
- Тапаем на приложение RAR.
- В архиве выделяем файлы, которые собираемся извлечь.
- Жмем на значок со стрелкой вверх.
- Выбираем папку для сохранения.
- Пару раз соглашаемся с помощью ОК.
Распаковать архив на Андроид можно как Раром, так и Винзипом. Эти проги поддерживают большинство актуальных форматов.
Напоследок небольшой тест на скорость компьютерных архиваторов. Для эксперимента использовали 10 непустых папок и 10 файлов общим размером 500 мегабайт. Время упаковки и распаковки измеряли в секундах.
Архиватор Windows отказался работать с документами, в названиях которых были многоточия, тире, буквы языков, не установленных на ПК. Функционал, который встроен в систему, по своим возможностям уступает специализированным решениям.
Создание архива данных, Извлечение данных из архива
Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного использования. Администрация сайта не проверяет возможные ошибки, которые могут встретиться в тестах.
Создание архива данных, Извлечение данных из архива. Тест для студентов СПО 1 курс, Система оценивания — 5-балльная
Система оценки: 5 балльная
Список вопросов теста
Вопрос 1
Варианты ответов
- сжатие одного или более файлов с целью экономии памяти и размещения сжатых данных в одном архивном файле
- процесс, позволяющий создать резервные копии наиболее важных файлов на случай непредвиденных ситуации
- процесс, позволяющий увеличить объем свободного дискового пространства на жестком диске за счет неиспользуемых файлов
Вопрос 2
Какие программы используют для уменьшения объема файлов?
Варианты ответов
- программы-архиваторы
- программы резервного копирования файлов
- программы-трансляторы
Вопрос 3
Величина, показывающая, на сколько сильно упакован выходной поток характеризует
Варианты ответов
- степень сжатия
- скорость сжатия
- качество сжатия
Вопрос 4
Что такое архив?
Варианты ответов
- набор данных определенной длины, имеющий имя, дату создания, дату изменения и последнего использования
- системный файл
- набор файлов, папок и других данных, сжатых и сохраненных в одном файле
Вопрос 5
Преобразование входных данных, при котором можно получить только более или менее близкую к оригиналу копию является …
Варианты ответов
- обратимым
- не обратимым
- разовым
Вопрос 6
Сжатый файл представляет собой …
Варианты ответов
- файл, защищенный от копирования
- файл, упакованный с помощью архиватора
- файл, защищенный от несанкционированного доступ
Вопрос 7
Сжатый (архивированный) файл отличается от исходного тем, что …
Варианты ответов
- доступ к нему занимает меньше времени
- он легче защищается от несанкционированного доступа
- он занимает меньше места
Вопрос 8
Отношение объемов исходного и результирующего потоков
Варианты ответов
- степень сжатия
- скорость сжатия
- качество сжатия
Что можно проделать с упакованным файлом 1 вариант
Возможности современной цифровой техники позволяют любому пользователю, независимо от опыта и образования, создавать видеоролики вполне приличного качества. Даже начинающие режиссёры знают, что существуют разные форматы видеофайлов. Однако многие новички, пытаясь выяснить, какой из форматов лучший, испытывают трудности с терминологией. В этой статье мы разберёмся, как правильно выбирать формат видео, что такое кодек и зачем нужен контейнер.
Чем кодек отличается от контейнера
Цифровое видео и аудио в несжатом виде чрезвычайно ресурсозатратны. К примеру, часовой фильм, снятый в формате высокой чёткости 1080i, занял бы до 410 гигабайт. Подавляющее большинство электронных устройств просто не обладает достаточным объемом памяти для хранения подобных монстров. Пропускной способности интернет-канала не хватило бы для просмотра такого фильма онлайн. Тем, что видео практически любой длины можно без проблем создавать, передавать и хранить с помощью различных гаджетов, мы обязаны использованию технологии компрессии и декомпресии.
Принцип компрессии и декомпрессии заключается в том, что при записи медиаданные особым образом сжимаются (упаковываются), а при воспроизведении – распаковываются. Для выполнения этих операций специальное программное обеспечение использует инструменты, называемые кодеками. Что такое кодек? Слово codec представляет собой аббревиатуру, которая расшифровывается как COmpressor + DECompressor, по другой версии – COder + DECcoder (шифратор + дешифратор). Кодеки отличаются друг от друга алгоритмами кодировки (сжатия).
Стандартный видеоролик – это структурированный комплекс медиаданных, включающий видео- и аудиопотоки, синхронизируемые с ними субтитры. Все эти данные в сжатом виде сохраняются в файлах с особой структурой – контейнерах. Каждому типу контейнеров соответствует перечень кодеков, способных упаковывать и распаковывать медиаданные в нужных форматах. Так, видео в контейнере AVI может быть сжато кодеками DivX, MPEG-2, MPEG- 4.
Тип медиаконтейнера легко определить по расширению видеофайла. В обиходе тип медиаконтейнера часто называют форматом видеофайла. Известные примеры контейнеров – AVI, MKV, ASF, MP4, FLV. Данные, сжатые при помощи одного и того же кодека, могут храниться в контейнерах разных типов. К примеру, кодек MPEG-4 применяется для сжатия видеопотока в контейнерах типа MP4, MKV, MXF, OGG и QuickTime(MOV).
Как определить формат видео и используемый видеокодек
Было бы крайне неудобно для воспроизведения каждого конкретного файла подбирать нужный кодек. Чтобы пользователю не приходилось зря тратить время, кодеки объединены в пакеты, один из самых популярных – K-Lite Codec Pack.
Но иногда пользователю нужно получить полную информацию о медиафайле: узнать, каким кодеком и в каком формате записаны данные в контейнере, определить битрейт, разрешение. Существует несколько способов извлечь из контейнера эту информацию.
Проигрыватель VLC
Чтобы получить служебную информацию, следует сначала скачать программу на свой компьютер, установить ее и открыть файл в проигрывателе. Затем выбрать опции Вид, Плейлист, навести мышь на название файла, нажать правую клавишу. В выпадающем меню необходимо выбрать пункт Информация. Данные о кодеках содержатся во вкладке Кодеки.
Программа Movavi Video Converter
Программа Movavi Video Converter с интерфейсом на русском языке предназначена для преобразования содержимого одного контейнера в формат другого. Загрузив файл в эту программу, можно посмотреть полную информацию о содержащихся в нём медиаданных.
Особенно удобно, что есть версии Movavi Video Converter для Windows и macOS.
Какой формат видео самый маленький
Выбор кодека и контейнера – это почти всегда компромисс между итоговым размером файла и качеством видео. Чем выше качество видео- и аудиопотоков, тем больше размер файла и тем острее стоит проблема сжатия данных до приемлемого размера. При поиске кодека, наиболее компактно записывающего медиаданные в контейнер, следует учитывать, каким образом будет просматриваться результирующий файл. Например, великолепно себя зарекомендовал кодек H.265 (HEVC), использующий высокоэффективные алгоритмы сжатия без потери качества. С его помощью упаковывают видео стандарта 8K. Но этот кодек поддерживают далеко не все популярные браузеры. Файл, упакованный кодеком H.265, можно просмотреть далеко не на каждом устройстве. К тому же за использование H.265 взимается лицензионный сбор.
Оптимальный вариант для видеофильмов со средним качеством, размещаемых в Сети, – открытый (бесплатный) видеокодеки H.264, VP8 и его преемник VP9 в сочетании с форматом контейнера WebM.
Популярные форматы видео
Пользователь, который собирается снимать видеоролики, должен ориентироваться в их форматах, заранее учитывать достоинства и недостатки.
Наиболее часто встречающиеся форматы видео:
MP4 (полностью – MPEG-4 Part 14) – формат, совместимый с большинством браузеров и поддерживаемый сайтами потокового видео, в частности, YouTube. Видео и аудиодорожки сжимаются раздельно. Видео упаковывается кодеком MPEG-4. При сжатии обеспечивается высокое качество видео (HD) при относительно небольшом размере файла.
M4P (iTunes Music Store Audio File), M4V (iTunes Video File) – форматы, разработанные компанией Apple и схожие с MP4. Данные могут быть защищены системой DRM. Чтобы воспроизвести файл, необходимо авторизовать компьютер в iTunes Apple. Для воспроизведения на устройствах под управлением Windows необходимо конвертировать файл в формат MP4.
AVI (Audio Video Interleave) – старый формат, разработанный Microsoft. Поддерживается большинством популярных браузеров, работающих в системах Windows, Macintosh и Linux. Сжатие данных меньше, чем в MP4.
MPG, MPEG, MP2, MPE, MPV – форматы, характеризующиеся низким уровнем сжатия. Качество невысокое, а при редактировании и сохранении готового файла может ухудшиться. В этих форматах обычно записывают видео, которые впоследствии не нужно будет редактировать.
MOV – формат, разработанный Apple. Видео сохраняется в хорошем качестве, но файл занимает много места. Файлы воспроизводятся с помощью проигрывателя QuickTime Player, есть версии этой программы для macOS и Windows.
MKV – формат, позволяющий записать в один файл несколько звуковых дорожек и субтитров. Файлы можно смотреть как на компьютере, так и на мобильных устройствах.
WebM – формат, позволяющий получать видео небольшого размера среднего качества. Видео в таком формате подходят для YouTube и других сайтов потокового видео на платформе HTML5.
OGG – формат файлов потоковой передачи через интернет-каналы. Качество видео и звука лучше, чем у файлов WebM, но скорость передачи ниже.
FLV – формат флэш-видео, возможна как потоковая, так и прогрессивная загрузка файлов. Но Flash Player не поддерживается устройствами, работающими под управлением iOS.
WMV (Windows Media Video) – формат файлов для потоковой передачи и электронной почты. Уровень сжатия очень высокий, файлы компактные, но из-за этого сильно страдает качество.
Как выбрать лучший формат
Абстрактного лучшего формата видеофайлов просто не существует. Выбор формата зависит от того, что создатель фильма или ролика собирается с ним сделать: переслать по электронной почте, разместить в социальных сетях или на «Ютубе», просто хранить на диске. К примеру, качество видео в формате WMV оставляет желать лучшего, поэтому в Интернете их размещают редко. Зато, благодаря компактности, файлы в таком формате очень удобно отсылать электронной почтой.
Форматы файлов, предпочтительные для различных ресурсов: