IPB
ЛогинПароль:

> "спрятать предложение" в файле формата bmp, (стеганография)
сообщение
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Нужно в bmp файл "засунуть" текстовый файл. Не очень понимаю как это осуществить. Может быть представить два массива. В один считывать инфу из текстового файла ,а в другой из графического? Но можно ли будет потом простым присваиванием заменить байты??

Надо заменой байтов получить скрытое предложение в графическом файле... Я знаю еще, что для скрытия текста можно воспользоваться методом замены наименее значимых бит в глобальной палитре графического файла по алгоритму: в каждом байте палитры записывается в результирующий файл. не совсем ясный алгоритм.
и еще: палитра здесь имеется ввиду,что 256 элементов по 4 байта (из структуры bmp) ?

Есть ли у кого-нибудь есть идеи насчет этого, то напишите пожалуйста.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Тёмный Эльф @ 16.05.2007 23:18) *

в bmp файл "засунуть" текстовый файл

Идея уже высказана тобой.
Ты скажи, сколь велик этот "текстовый файл". Мне кажется, что много тут не упрячешь.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Мне кажется, что текстового файла, состоящего из 10 символов достаточно. Здесь же важно будет посмотреть, сильно ли изменится изображение после замены байтов. А потом можно будет изображение чуть-чуть изменить в какой-нибудь программе, например, переставить пиксели, и в результате после декодирования мы получим уже искаженную строку.
Вроде идея ясна ,но хочется разобраться во всех тонкостях алгоритма.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Тёмный Эльф @ 17.05.2007 3:05) *

но хочется разобраться во всех тонкостях алгоритма.

Ну что ж, желание похвальное, очень Темный Эльф. Я готов помочь, и в качестве первой помощи, вот примерный список, что тебе нужно сделать:
1. Найди полное и точное описание формата BMP. Положи ссылку сюда.
2. Постарайся в нем разобраться. Если что-то неясно - спрашивай тут.
До встречи.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Цитата
1. Найди полное и точное описание формата BMP. Положи ссылку сюда.

http://pascal.sources.ru/articles/099.htm
http://ru.wikipedia.org/wiki/BMP

Вроде неплохие ресурсы. Вечером буду разбираться, что к чему. =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Тёмный Эльф @ 16.05.2007 23:18) *
Нужно в bmp файл "засунуть" текстовый файл.
Велосипеды...... еле его отыскал. За глупое название - не ругать, писал лет сто назад, под blind Guardian.

Идея: Берём битмап с форматом пикселя 32 бита. В каждую компоненту цвета пишем младшим битом бит данных. Т.о. для записи байта нам нужно 2 пикселя.

Прога практического смысла не несёт и лишь иллюстрирует саму идею стеганографии.
В реале стоит использовать JPEG, хотя бы потому как в этом формате изображения в основном и распростараняются. Для записи overlay-данных нужно менять кое какие коеффициенты (нада смотреть формат jpeg) - на глаз разницы никакой, а инфы записать можно очень много (это со слов одного нашего преподавателя).

Сообщение отредактировано: hardcase -


Прикрепленные файлы
Прикрепленный файл  Blind.zip ( 25.05 килобайт ) Кол-во скачиваний: 259


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Цитата
Прога практического смысла не несёт и лишь иллюстрирует саму идею стеганографии.

прога к сожалению не откомпилировалась, но все-равно спасибо.
Кстати,хочу на Си это написать.
Вот примерный алгоритм.
1. проверить формат рисунка. Если не bmp, выход из программы. (искать надо будет по сигнатуре "BM". Так как я с графическими файлами еще не работала, я плохо представляю как это можно сделать. Ладно там строку "BM" найти в текстовом файле, но в графическом..)
2. найти общую информацию о файле (глобальная палитра, размер файла). если палитра не найдена, то выход из программы, иначе узнать размер палитры. (что такое палитра пока плохо понимаю)
3. узнать размер файла, коорый требуется застенографировать. Нужно знать степень упаковки (которая указывает на количество бит , помещаемое в один байт графического изображения) и проанализировать, поместится ли файл в глобальную палитру.
4. занести информацию о типе стеганографируемого файла и его размер в байтах. Затем занести текст.
5. скопировать оставшийся графичекий файл в новый и завершить работу.
(приступила к первому пункту всего-лишь и уже неясности. )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
прога к сожалению не откомпилировалась
blink.gif Очень странно... А чем компилировала? Версия Дельфи, в смысле, какая? D6 скомпилировала без проблем...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Цитата(volvo @ 18.05.2007 1:42) *

blink.gif Очень странно... А чем компилировала? Версия Дельфи, в смысле, какая? D6 скомпилировала без проблем...


Ёлки. wacko.gif Изучить что-ли Дельфи чтобы не спутать в следующий раз с Паскалем!??
(ясно теперь, почему не откомпилировалось...)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


а каким образом можно реализовать сокрытие информации в текстовом файле? с картинками вроде все понятно... даже прогу начал делать...
А вот что с текстовыми документами делать пока не придумал... можно добавлять нечитаемые символы, подменять кириллические символы на латинские, поизвращаться над пробелами... но что-то мне все это не нравится...


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Ну один из простых способов сместить коды символов на определённую величину N. Можно придумать какую - то формулу по смещению и применить её. Просто в этом случае не надо ничего добавлять в файл, здесь упор на то, что нам известны эти самые коды. Это конечно, если я правильно понял термин "скрыть".


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Судя по вопросу, речь идет о стеганографии.
Цитата(Unknown @ 24.11.2007 0:38) *
а каким образом можно реализовать сокрытие информации в текстовом файле?
Использовать кодовые фразы, как в шпионском боевике. Типа "бабушка пошла за покупками" = "запущена баллистическая ракета". Это сокртыие информации на основе замещения смысла слов. Вставив подобные фразы в безобидный текст позволит спрятать полезную информацию, но для этого фраза должна корректно ложиться на текст и получатель должен знать смысл фраз.

Альтернативный способ - использование БОЛЬШИХ текстов, по 2 Мб например, когда визуально очень трудно заметить полезную информацию в общем потоке. Идея - включить наше сообщение известным обеим сторонам образом в этот большой текст. Например слова открытого текста помещаются в любые места текста-носителя - заметить их можно будет лишь прочитав большую часть текста-носителя. Места вставки можно задавать, например, с помощью какого-нибудь сдвигового регистра (неплохо использовать регистр из алгоритма RC4) также можно использовать генератор псевдослучайных чисел.


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Речь, действительно, идет о стеганографии. Смещение кодов - не то, что нужно.
Шпионские фразы - это да )))
Второй способ не устраивает, т.к. визуально текст все-таки меняется...
В общем, я свой выбор остановил на подмене символов:
смотрим текст, и если какой-то символ можно подменить (к примеру, "о" на "o"), то замененный символ - это 1, незамененный - 0. Каждые восемь символов дают один скрытый символ.
Смущает, правда, что если такой файл открыть каким-нибудь Word'ом, то будут найдены ошибки...

Цитата
Идея: Берём битмап с форматом пикселя 32 бита. В каждую компоненту цвета пишем младшим битом бит данных. Т.о. для записи байта нам нужно 2 пикселя.

А может кто-нибудь объяснить, что за формат пикселя в 32 бита? 24 бита - это RGB? а еще 8 - на что?

Сообщение отредактировано: Unknown -


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Цитата(Википедия)
В реальности 32-битный цвет является 24-битным (Truecolor) с дополнительным 8-битным каналом, который либо заполнен нулями (пустотой), либо представляет Альфа-канал, который задает прозрачность изображения в определенных пикселях.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


А как к этому дополнительному 8-битному каналу можно получить доступ в Билдере? Как его можно изменить?


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(Unknown @ 26.11.2007 10:28) *
А как к этому дополнительному 8-битному каналу можно получить доступ в Билдере? Как его можно изменить?
Аналогично способу в Делфи, посмотри мой код. (Хотя, конечно, работу с битами в нем можно было бы сделать несколько проще.)

Сообщение отредактировано: hardcase -


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Цитата(hardcase @ 26.11.2007 13:17) *

Аналогично способу в Делфи, посмотри мой код. (Хотя, конечно, работу с битами в нем можно было бы сделать несколько проще.)

Честно говоря, ничего не понял )
Я Делфи вообще не знаю ( Хотя бы примерно намекни, плз.


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(hardcase @ 17.05.2007 11:11) *

Велосипеды...... еле его отыскал. За глупое название - не ругать, писал лет сто назад, под blind Guardian.

Идея: Берём битмап с форматом пикселя 32 бита. В каждую компоненту цвета пишем младшим битом бит данных. Т.о. для записи байта нам нужно 2 пикселя.

Прога практического смысла не несёт и лишь иллюстрирует саму идею стеганографии.
В реале стоит использовать JPEG, хотя бы потому как в этом формате изображения в основном и распростараняются. Для записи overlay-данных нужно менять кое какие коеффициенты (нада смотреть формат jpeg) - на глаз разницы никакой, а инфы записать можно очень много (это со слов одного нашего преподавателя).

1. Известно, что "родным" форматом Windows является BMP, причем 32-разрядный BMP она прекрасно понимает и отображает. Увы, этого же нельзя утверждать о всех существующих в природе графических пакетах, поэтому некоторые из них такой файл открывать не будут.
2. Если уж использовать лишний байт на каждый пиксель, (в BMP не предусмотрено хранение прозрачности) то логичнее всего будт использовать именно этот байт целиком, не корежа оригинальное изображение. Тогда для одного байта достаточно одного пикселя.
3. Jpeg - формат сжатия с потерями, поэтому гарантии сохранности информации там нет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Unknown @ 26.11.2007 10:28) *

А как к этому дополнительному 8-битному каналу можно получить доступ в Билдере? Как его можно изменить?
Что значит "доступ"?
У тебя есть один лишний байт на пиксель. Что хочешь с ним, то и делаешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(andriano @ 13.12.2007 20:10) *
3. Jpeg - формат сжатия с потерями, поэтому гарантии сохранности информации там нет.
Jpeg - в первую формат сжатия ИЗОБРАЖЕНИЯ (с потерями). Никто понятное дело не использует исходные изображения для записи скрытой-информации.
С Jpeg все иначе - нужно менять косинусные коеффициенты в самом jpeg-файле.


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.11.2020 18:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name