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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> "спрятать предложение" в файле формата bmp, (стеганография)
Тёмный Эльф
сообщение 16.05.2007 22:18
Сообщение #1


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

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

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


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

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

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



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 17.05.2007 1:51
Сообщение #2


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

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

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


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

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

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


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


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

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

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


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


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

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

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


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

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

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


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


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

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

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


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

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

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


code warrior
****

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

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


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

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

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

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


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


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


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

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

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


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

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


Гость






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


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

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

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


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

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


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


Пионер
**

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

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


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


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


Профи
****

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

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


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


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


code warrior
****

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

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


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

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


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


Пионер
**

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

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


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

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

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

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


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


Гость






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


Пионер
**

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

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


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


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


code warrior
****

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

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


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

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


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


Пионер
**

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

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


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

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

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


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 13.12.2007 20:10
Сообщение #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 
 К началу страницы 
+ Ответить 
andriano
сообщение 13.12.2007 20:36
Сообщение #19


Гуру
*****

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

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


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

А как к этому дополнительному 8-битному каналу можно получить доступ в Билдере? Как его можно изменить?
Что значит "доступ"?
У тебя есть один лишний байт на пиксель. Что хочешь с ним, то и делаешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hardcase
сообщение 13.12.2007 21:27
Сообщение #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

 



- Текстовая версия 8.06.2024 11:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"