Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Спрятать бинарный файл в jpg картинке


Автор: komsomolec 7.8.2013, 17:35
Друзья, стоит интересная задача:

Есть бинарный файл и есть картинка. Надо слить эти 2 файла и чтоб картинка открывалась как jpg, но в ней присутсвовали скрытые байты. И только специальная программа умела достать эти байты с картинки (по номеру байта или как-то еще)

Подскажите возможно ли такое, есть для этого какой-то софт или решения, укажите направления куда двигаться... 

Автор: Akina 7.8.2013, 17:42
Курим гугль по слову "стеганография"

Автор: nworm 7.8.2013, 18:04
Самый простой способ - пишите бинарник прямо в хвост файла с картинкой.

Автор: _Y_ 7.8.2013, 20:43
Это, как понимаю, способ посылки скрытых сообщений. Про jpg не знаю. Он сжатый - надо копаться как формат устроен. Но, в принципе, прятать сообщения в картинки довольно просто. 

Берется картинка пестренькая такая, скажем RGB - три цвета на пиксель. Каждый цвет кодируется 16 битами. При этом, если на картинке пестрота всех цветов, никто никогда не сможет определить если, скажем, младшие 6, а то и 8 бит не соответствуют оригиналу, а несут текстовую информацию.

Если надо не только спрятать, но и закодировать - используются младшие биты не каждого цвета в каждом пикселе, а только выбранные в соответствии с каким-то ключом или, лучше, картой.

При этом, чем меньший процент бит картинки используется для переноса сообщения, тем лучше оно спрятано. Но, соответственно, тем большая картинка нужна.

ЗЫ: Репродукцию самой известной картины Малевича не берите - сразу попалитесь smile 

Автор: Alexeis 7.8.2013, 22:18
 jpg жмется так что потеряется инфа. С жепегом да, концовочку можно фигачить. Парсер видит финализирующий тег и дальше не читает. Известный способ. 

Автор: Akina 7.8.2013, 22:40
Цитата(Alexeis @  7.8.2013,  23:18 Найти цитируемый пост)
jpg жмется так что потеряется инфа.

http://steghide.sourceforge.net/

Автор: Alexeis 7.8.2013, 22:45
Не ну, есть конечно избыточные коды. Можно добавлять до 50% информации для восстановления, потом кодировать эту инфу и затем исправлять ошибки. 

Автор: _Y_ 9.8.2013, 08:02
Цитата(Alexeis @  7.8.2013,  22:18 Найти цитируемый пост)
jpg жмется так что потеряется инфа.

Дык я об этом и думал когда писал, но выразился в очень уж неявном виде smile  В общем, надо разбираться с алгоритмом сжатия и искать как подсунуть в него измененные биты. Думаю, головная боль будет еще та.


komsomolec, а обязательно jpeg? Нельзя пользовать какой-нибудь формат, не теряющий информацию?

Автор: dm9 12.8.2013, 12:52
Готовый сервис для выполнения задачи + исходники:
http://darkjpeg.github.io/

Статья с подробным описанием этого сервиса:
http://habrahabr.ru/post/187402/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)