27 октября 2013 27.10.13 22 3423

Конспирация (или прячем секреты в картинках)

+27

В предыдущем посте друже BepBolff в коментах подкинул идею, что в картинках можно прятать информацию.
Итак, кружка чая, температура 37.5. Наркомания продолжается.

Но, прежде чем продолжить, позвольте задать вам вопрос. Чем отличаются следующие два квадрата:

Правильный ответ: цветом(правый чуть темнее).
Хотя, не зная, что они отличаются можно с полной уверенностью сказать, что они одинаковые.
На этом эффекте и основана техника сокрытия информации.

Как же нам это поможет скрыть что-либо?
Сейчас объясню. Дело в том, что мы с вами уже знаем из предыдущего поста, что BMP-файл состоит из 2-х частей:

Именно манипулируя данными о цвете мы можем скрывать что либо. При этом размер картинки не изменится.

Происходит это следующим образом.
Каждая точка в картинке описана 3-мя байтами. А как практически все из нас знают(или узнают на уроках информатики) байт состоит из 8-ми бит(бит может быть равен 1 или 0).
Учитывая эффект двух квадратов, описанный выше, мы можем сказать, что изменив каждый 8-й бит на 1 или 0 картинка изменится не сильно.
Звучит, конечно, хорошо, но, слабо верится. Поэтому я решил проверить.
Берем картинку(Украина, Крым, Коктебель, если кому интересно):

Берем текстовый файл:

Немного программерской магии и вуаля! Мы можем положить в картинку текст при этом картинка сама на первый взгляд не меняется.
И тут мне пришла в голову новая идея. А что если таким же методом спрятать картинку в картинке? Ничего не поменяв в коде я попробовал:

И снова результирующую картинку от оригинала не отличить. Хотя если открыть оригинал и результат в фотошопе и наложить друг на друга в режиме Difference, — мы сможем увидеть едва заметный шум. Это и есть наша Джессика Альба.

На картинке я специально увеличил шум во много раз. На самом деле он едва заметен.
Таким образом можно передавать архивы, видео и прочие вещи. При желании программа может быть модифицирована на хранение не в одной картинке, а в целой папке с картинками.
Программерская магия
В архиве исходники 2-х программ а также программы в готовом к исполнению виде(папочка bin\Debug).
HideInBmp — позволяет прятать файлы.
Запускаем. Выбираем исходный файл, затем файл который прячем(его размер должен быть меньше в 8 раз от исходного файла), сохраняем результат.
DataFromBitmap — позволяет извлекать спрятанные данные.
Запускаем, выбираем откуда достать, затем куда сохранить.


Лучшие комментарии

Вот это я называю энтузиазм!
Эмм. Про жесткий диск я один слышал чтоль? Гораздо удобней и может хранить не только картинки и текст :3
Вот это я называю энтузиазм!
Вот этo я называю энтузиазм!

Вoт это я понимаю Internet Explorer :3
Я тогда был в деревне и читал этот пост про деление на ноль.Суть не помню, но заставило задуматься.
Ты так говоришь, как будто он это для захвата мира использовать пытается.
Просто интересно человеку, вот и ковыряет.
Вот это я называю энтузиазм!

Вот это я понимаю Internet Explorer :3
Эмм. Про rarjpeg я один слышал чтоль? Гораздо удобней и может хранить не только картинки и текст.
Ничего тут нового нет. Это всем давно известно. Многие вирусописатели таким образом прячут вредоносный код…
Также в картинки можно прятать архивы и прочую ересь. Такое celebrion когда-то использовал в одном из своих детективных марафонов.
Давным-давно в детском журнале Каламбур видел статейку как в картинке спрятать файл.
Простуда двигатель прогресса. Я вот на ноль поделил когда у меня было 38 температура от солнечного удара.
Читай также