- Регистрация
- 25.01.17
- Сообщения
- 763
- Реакции
- 225
- Репутация
- 292
Вашему вниманию представляется статья нашего активного пользователя rodionov. В этой статье полностью раскрыт один из способов реализации скрытой передачи сообщений с использованием обыкновенных картинок.
Я все-таки думал, что скрытое послание будет найдено, но видимо особого желания просто не было. Ведь метод, по сути, ну очень-очень простой.
Я предлагаю применять его для docx-документов для большей скрытности, т.к. не все все-таки знают, что docx-документ – это zip-архив. Прятать наше послание будем в любой из картинок документа. В качестве примера возьмем тот самый документ, который я вам давал для анализа: файл .
Итак, изначально картинка представляет собой цельный объект:
Мы же хотим сделать из него вот что:
Здесь picture – это обычный код картинки, который мы менять не будем. Inv xored arch – это данные, которые мы хотим спрятать. Signature – сигнатура того, что здесь есть скрытые данные (это нужно для программной реализации). Сигнатура должна знать значения A и B, чтобы можно было извлечь наши данные из файла. Данные мы будем хранить в немного шифрованном виде (а точнее просто проксоренном определенным ключом), чтобы глядя только на код картинки нельзя было понять, что здесь что-то спрятано. Например, чтобы нельзя было увидеть сигнатуру zip-архива. Еще к сигнатуре можно прикрутить и пароль, без которого не прочитать данные, но здесь я опущу эту возможность, т.к. нет необходимости в ней, да и реализовать это просто, тем более, что исходники я предоставлю.
Чтобы таким образом спрятать данные желательно написать программу, автоматизирующую весь процесс, да и вообще сигнатуру к такому файлу писать лучше всего программно. Так я, собственно, и поступил – написал две программы: первая – скрывает данные, вторая – читает скрытые данные.
Обзор первой программы.
Программа имеет такой интерфейс. В верхнее поле мы вводим (выбираем) файл (Docx), в котором есть картинка, в которую мы хотим спрятать данные. В списке будут отображаться все картинки, которые есть в документе, одну из них нужно выбрать. В поле «скрыть файл» указываем файл, который будем прятать:
После нажимаем на кнопку «Скрыть!». Наш файл пакуется, ксорится, присоединяется к картинке и потом пишется сигнатура, после этого файл записывается в архив с документом. В программе уже есть поддержка работы с архивами, поэтому все происходит автоматически, картинки извлекать не надо. Если все выполнено успешно, в статусе вы увидите соответствующее сообщение.
Обзор второй программы.
В верхнее поле нужно ввести (указать) файл документа, в котором предположительно спрятаны данные. В списке снизу будут отображаться картинки документа, в которых возможно есть скрытые данные.
Чтобы определить есть ли скрытые данные, просто выберите нужную картинку из списка, и в статусе будет написана нужная вам информация:
При этом кнопка «получить данные!» стала активна, значит мы может получить то, что спрятано в этой картинке. Нажимаем «Получить данные!», выпадает диалог сохранения файла, указываем файл – сохраняем как zip-архив. Открываем сохраненный архив и видим нужный нам файл
Я все-таки думал, что скрытое послание будет найдено, но видимо особого желания просто не было. Ведь метод, по сути, ну очень-очень простой.
Я предлагаю применять его для docx-документов для большей скрытности, т.к. не все все-таки знают, что docx-документ – это zip-архив. Прятать наше послание будем в любой из картинок документа. В качестве примера возьмем тот самый документ, который я вам давал для анализа: файл .
Итак, изначально картинка представляет собой цельный объект:
Мы же хотим сделать из него вот что:
Здесь picture – это обычный код картинки, который мы менять не будем. Inv xored arch – это данные, которые мы хотим спрятать. Signature – сигнатура того, что здесь есть скрытые данные (это нужно для программной реализации). Сигнатура должна знать значения A и B, чтобы можно было извлечь наши данные из файла. Данные мы будем хранить в немного шифрованном виде (а точнее просто проксоренном определенным ключом), чтобы глядя только на код картинки нельзя было понять, что здесь что-то спрятано. Например, чтобы нельзя было увидеть сигнатуру zip-архива. Еще к сигнатуре можно прикрутить и пароль, без которого не прочитать данные, но здесь я опущу эту возможность, т.к. нет необходимости в ней, да и реализовать это просто, тем более, что исходники я предоставлю.
Чтобы таким образом спрятать данные желательно написать программу, автоматизирующую весь процесс, да и вообще сигнатуру к такому файлу писать лучше всего программно. Так я, собственно, и поступил – написал две программы: первая – скрывает данные, вторая – читает скрытые данные.
Обзор первой программы.
Программа имеет такой интерфейс. В верхнее поле мы вводим (выбираем) файл (Docx), в котором есть картинка, в которую мы хотим спрятать данные. В списке будут отображаться все картинки, которые есть в документе, одну из них нужно выбрать. В поле «скрыть файл» указываем файл, который будем прятать:
После нажимаем на кнопку «Скрыть!». Наш файл пакуется, ксорится, присоединяется к картинке и потом пишется сигнатура, после этого файл записывается в архив с документом. В программе уже есть поддержка работы с архивами, поэтому все происходит автоматически, картинки извлекать не надо. Если все выполнено успешно, в статусе вы увидите соответствующее сообщение.
Обзор второй программы.
В верхнее поле нужно ввести (указать) файл документа, в котором предположительно спрятаны данные. В списке снизу будут отображаться картинки документа, в которых возможно есть скрытые данные.
Чтобы определить есть ли скрытые данные, просто выберите нужную картинку из списка, и в статусе будет написана нужная вам информация:
При этом кнопка «получить данные!» стала активна, значит мы может получить то, что спрятано в этой картинке. Нажимаем «Получить данные!», выпадает диалог сохранения файла, указываем файл – сохраняем как zip-архив. Открываем сохраненный архив и видим нужный нам файл