Стеганография etc

Было нечего делать, решил написать какую-нибудь необычную софтину. В голову пришла идея создания программки, которая могла бы прятать внутри картинок какие-либо данные. Такой подход сокрытия данных называется Стеганографией. Выбрал я самый простой формат картинок - BMP. В изображениях формата BMP (24- или 32-битных, несжатых) цветовые данные хранятся в виде отдельных байтов, поэтому можно модифицировать их младшие биты и без видимых изменений заныкать в картинку некоторый объем информации.

Я набросал консольную программу на C++ и GUI-интерфейс к ней на C#. Вот краткие возможности этого софта:
[+] Возможность прятать в 24- и 32-битные картинки BMP-формата без сжатия данные.
[+] Возможность использовать 1/2/4 младших бита картинки для сохранения информации.
[+] Можно также просто зашифровать файл и сохранить его в виде 24-битной картинки (это уже нельзя назвать стеганографией).
[+] Программа при упаковке файла сохраняет не только его данные, но и имя, а также CRC32, это все используется при распаковке.

Файлы распаковываются в директорию с программой.

Скриншоты:


Во второй - фото Kaimi с его подругой:

Скачать программу: ZIP
Исходники самой консольной утилиты, шифрующей и расшифровывающей данные: shitty_encoder.zip

Стеганография etc: 49 комментариев

  1. Может я что-то неправильно делаю, но у меня постоянно ошибка "Some error ocurred revealing data". Упаковывается только с включенным "Dont use base imege, non-tenograpfic". И упакованный файл распокавать не получается.

    1. Я въехал, нужно чтобы "You can hide up" значение было больше чем "size of selected file" Как тут - http://clip2net.com/clip/m94825/1319110165-clip-2kb.png?nocache=1

      Автор! Респектище! Идея шикарная. А можно запилить так, чтоб если файл не влезет - об этом было бы написано каким-нить красным шрифтом? Не для себя прошу) Только кнопку неактивной не надо делать. Туда хоть кусок файла влезает. Не знаю нафига он нужен, но мне нравится этот эффект.

  2. Мне очень нравится читать подобные статьи.
    Огромная волна умиления связана с тем головокружением от успехов, что не позволяет автору критически оценить свое произведение.
    Написать LSB алгоритм здорово, но использовать его в программе с подобным интерфейсом что раздавать воробьев, непойманных в клетку.
    Алгоритм = 10-25% работы и успеха, остальное = интерфейс.
    Изо всех программ на эту тему самая симпатичная, ИМХО, Stegnote, впрочем познакомиться с ней и ей подобным трудно, Google доступен не всем.

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

  3. Уведомление: Что у нас новенького
    1. Без разницы какие данные засовывать внутрь, главное чтобы в пределах допустимого размера для выбранного изображения.

      1. Ясно. Я вот попробывал другими аналогичными прогами пооткрывать картинку,запакованную в вашей, не вышло. хм

  4. "Если ты думаешь, что я планировал сделать идеальную многофункциональную программу с обалденным интерфейсом, свистелками-перделками, то ты ошибся"
    Так что, слабо? Не умеешь делать перделки? только умные вещи, а свистелки не можешь?
    Нет, здесь я не ошибся. Если ты писал её для себя, так и радуйся сам. Если хочешь похвастаться творчеством перед другими(а не для этого ли ты вообще здесь?), то покажи достойный восхищения код или красивый результат в виде готовой программы, написанные хоть на Бейсике. Пользоваться картоном, когда знаешь про туалетную бумагу, совсем не хочется,-это про интерфейс. Не надо розовой с запахом лаванды, достаточно чего-то помягче. Что касается идеальности, что таких не бывает, в учебниках про это уже написано. Что касается многофункциональности, то хватит решения одной задачи, исполненной ясно и просто. Ждемс.

    1. Мы свистелки делать не умеем, да и мягкую туалетную бумагу тоже. Так что извини, братюнь, ничего не изменится в контексте данного сайта.

    2. А ты полистай блог, полистай, вот как разберешься со всем, что у нас тут лежит, так и пиши. Со всеми исходниками, методиками, описаниями и т.д. А то увидел кусочек шарпа и сразу негодование, да? Исходники я выложил, кстати.
      А свистелки делать умею, но ты мне не указ, поэтому обойдешься без них, извини.

  5. Народ вы хоть обьясните как пользоваться прогой!
    Я Зашифровываю картинку, и каждый раз при расшифровке картинки у меня выскакивает окно с ошибкой что тут видители нету шифра!
    Чё за херь?

  6. Дружище, я в программировании очень слаб, но не мог бы ты выложить код графической части приложения, которую ты написал на C#?
    Очень надо, плиз.

    1. есть же .NET Reflector или как там его для шарпа, им можно декомпилировать и посмотреть сорцы (судя из постов Kaimi, сам не пробовал, ибо нах не надо).

    2. Попробую найти, если найду, то выложу. Пока что можешь посмотреть код в рефлекторе, он не обфусцирован)

  7. Я вот не знаю, может, я такой тупой, что вообще не понял, как мне расшифровать изображение... И, кстати, зачем интерфейс делать на англ. языке? О_о Мы же тут не Англичане?!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *