Описание метода RARJpeg

  RARJPEG - это обычная картинка, содержащая дописанный к её файлу архив (сжатый файл) с любой информацией. Оба исходных файла в конечном виде сохраняют свою функциональность: в программе просмотра графики и браузерах будет отображена картинка, а в архиваторе - содержимое сжатого файла. Данный метод востребован в задачах утаивания информации от посторонних глаз и прочих ситуациях.
  Для создания "рарджпегов" и извлечения из них файлов в первую очередь необходимо понимать структуру гибридного файла. Не путайте данный метод со стеганографией, где скрываемая информация кодируется непосредственно в файле изображения, вызывая некоторые искажения картинки. RARJPEG является простым объединением файлов, каждый из которых сохраняет свою целостность и с помощью нормального HEX-редактора вроде "XVI 32" может быть извлечён в исходном своём виде. Принцип функционирования основан на использовании маркеров начала и завершения файлов. Например, изображение (только в форматах JPEG, GIF и PNG) - первая часть RARJPEGа, в тексте своего файла имеет маркер, указывающий программам просмотра на окончание обработки данных. Эта особенность позволяет дописывать в конец файлов указанных форматов любую бинарную информацию без потери возможности просматривать изображения-носители (обычно файл-носитель называют контейнером). Архив (только в форматах RAR, ZIP, 7Z и, теоретически, других, поддерживающих модуль самораспаковки) - вторая часть RARJPEGа, может существовать как автономно (без программы распаковки), так и с SFX-модулем ("self extracting" - самораспаковывающийся архив), который в составе файла всегда расположен перед бинарной частью самого архива. Вот RARJPEG - это и есть архив, в котором на месте модуля распаковки расположен графический файл.
  Таким образом, когда вы открываете RARJPEG-файл в программе просмотра или браузере, конец файла, где записан архив, игнорируется, а архиватор в этом же файле будет искать заголовок одного из поддерживаемых форматов архивов. Например, все RAR-архивы в заголовке имеют текст "Rar!". Если вы откроете файл такого архива, заведомо содержащего SFX-модуль, в программе "AkelPad", с помощью поиска найдете строку заголовка и удалите всю предшествующую ему информацию, а после сохраните файл, то получите обычный RAR-архив, который можно будет распаковать только с помощью архиватора. Таким же образом RARJPEG-файл можно освободить от графической информации (и всё же не рекомендую использовать текстовые редакторы для изменения бинарных файлов!).
  Зная, в какой картинке имеется архив и имея к ней доступ, извлечь скрытую информацию легко. Достаточно изменить расширение файла картинки на расширение архива. Несовершенный проводник "Windows" делает этот тривиальный процесс весьма трудоемким, так как известные расширения по умолчанию скрыты от пользователя. Для изменения расширения я могу порекомендовать программы "Total commander" или "Irfan view". Далее файл архива открывается в архиваторе, но не все программы этого класса способны найти сигнатуру сжатого файла (его заголовок), расположенную после SFX-модуля. В частности, внутренний архиватор "Total commander" выдаёт сообщение о поврежденном архиве. Можно, конечно, удалить SFX, как это было описано выше, но лучше воспользоваться программой "WinRAR", которая без труда детектирует RAR, ZIP, CAB, 7Z и прочие из списка ею поддерживаемых. После извлечения скрытой информации изначальное расширение можно вернуть, снова спрятав архив.
  RARJPEG-файл уязвим перед редактированием. Достаточно внести в изображение правки, чтобы потерять содержимое архива. Зато обновление архива в теории допускается, так как "WinRAR", например, не затрагивает SFX-модуль во время добавления/удаления файлов.
  Теперь, когда вы знаете что такое RARJPEG и как из него извлекать файлы, вас, вероятно, интересует способ создания таких файлов. Операцию записи одного файла в конец другого можно выполнять как через командную строку, так и посредством специальных программ, имеющих функцию объединения. Могу порекомендовать бесплатную программу "Dafftin cryppie", которая помимо функций склейки/разрезания обладает возможностью шифрования. Но если вы любите постучать по кнопкам в любимой DOS, используйте следующую команду:
copy /b <путь к файлу изображения и его полное имя>+<путь к файлу архива и его полное имя> <путь для нового файла и его полное имя (с расширением исходного изображения)>
Пример:
copy /b c:\file01.gif+c:\file02.rar c:\output.gif
  Ключ /b в этой команде обязателен - он означает, что в операции участвуют бинарные данные (в принципе, все файлы являются бинарными, но в DOS почему-то вводится данное различие).
  Самое главное, о чём нужно помнить во время компиляции гибридного файла, это последовательность - архив идёт после картинки, иначе просто ничего не получится.

Сборка RARJPEG под управлением системы "Android"
  Если вам необходимо изготовить RARJPEG, а доступа к компьютеру нет, подойдёт (кроме, возможно, прочего) работающее под управлением операционной системы "Android" устройство. Также понадобится спецсофт:
 - нормальный файловый менеджер, способный менять расширение файлов (например, бесплатная "Android"-версия программы "Total commander" немца Гислера)
 - программа разрезки/объединения файлов (например, бесплатная программа "File splitter" автора Basher Al-Busaidi (BasherLab); изготовление RARJpeg-файла будет рассмотрено на примере использования этой программы)
 - архиватор совместимого с методом формата, если вам ещё нужно изготовить сам архив из файлов (например, бесплатная "Android"-версия программы "RAR" Евгения и Александра Рошалей)
  Если вы не пользуетесь "Гугль маркетом", перечисленные программы можно легко скачать с сайта "ApkPure", некоторые - с официальных сайтов.
  Использовать "RAR" следует с отключённой передачей данных, потому что данная программа не вполне "адвокатно" реагирует на подключение к сети.
  Итак, для изготовления RARJPEG:
1. Создайте новую директорию (папку) для работы.
2. Поместите в созданную директорию файл изображения (контейнер) и файл архива.
3. Измените расширение файла контейнера на ".0", а архива - на ".1"; кроме того, они должны иметь одинаковое имя (например, "rj.0" (бывшая картинка) и "rj.1" (бывший архив)).
4.1. Запустите программу "File splitter".
4.2. Нажмите на кнопку "Join files".
4.3. Нажмите на кнопку "Browse". Здесь вам нужно указать файл с расширением ".0" (для доступа ко внутренней памяти или карте памяти зайдите сначала в директорию "Storage"; для доступа к подключённой флешке зайдите в директорию "Mnt", затем - в "Usbotg").
4.4. Выбрав требуемый файл, нажмите на кнопку "Join". По окончании объединения программа выдаст соответствующее сообщение.
5. Результирующий объединённый файл, собранный программой "File splitter", будет расположен в той же директории, где находятся составляющие его файлы; расширение у него отсутствует. С помощью файлового менеджера вам необходимо присвоить собранному файлу расширение файла-контейнера (другими словами, настоящее расширение файла ".0").

***
  Распространение вирусов с помощью описанного метода в принципе бессмысленно, так как антивирусы находят в RARJPEG-файлах архив так же легко, как и программы-архиваторы, и даже если бы вредоносная программа была записана неупакованной, программа просмотра не стала бы её запускать в случае открытия изображения. Поэтому комнатных вредителей эта статья едва ли заинтересует.
  Остальным читателям желаю успешного освоения этого полезного метода.


Рецензии