CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум C++ > Форум C++ Builder

Ответ Создать новую тему
 
Старый 12.05.2011, 08:06   #51
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 
Аватар для Deviaphan
 
Регистрация: 22.03.2011
Адрес: http://coin3d-ru.lj.ru
Сообщений: 3,288
Репутация: 1010 (976)
По умолчанию Re: Стеганография в BMP. Полное руководство.

Говорить о способах реализации и необходимости не хочу сейчас. Лучше расскажу сказку:
Жил был дедушка Ленин. И вот "сидел" он за политические преступления и писал молоком на краях страницы свои писания. И никто "не знал" об этом, кроме тех, кто умел держать страницы над свечкой, чтобы текст проявился. А потом царя убили...
Воть.
Если бы он свои планы и агитации и т.п. шифровал в виде абра-кадабры, у него и могло бы ничего не выйти, охранники бы его шифровки могли и не передавать. А так они даже и не знали о передачи информации.
Со стеганографией то же самое, делаешь невинные глаза и всё.
Йа картинко!
Deviaphan вне форума
Старый 12.05.2011, 08:56   #52
taras atavin
Нарушитель
 
Регистрация: 24.11.2009
Адрес: Где то в сетке
Сообщений: 11,931
Репутация: 1080 (736)
По умолчанию Re: Стеганография в BMP. Полное руководство.

Цитата Сообщение от Deviaphan Посмотреть сообщение
Если бы он свои планы и агитации и т.п. шифровал в виде абра-кадабры, у него и могло бы ничего не выйти, охранники бы его шифровки могли и не передавать. А так они даже и не знали о передачтаи информации.
Во-первых, о наличии в книгах печатного текста, то есть информации, они как раз знали, но считали всю иноформацию разрешённой, так как не знали о наличии ещё одного текста, а чистые листы они бы точно не передали. А во-вторых я сам указал на спецслужбу в качестве возможного применения стеганы при передаче. Ты руководишь убийством Медведева, или служишь в МОССАДе? Если же содержание не преступно, то не имеет значения, будет ли кто нибудь знать о факте передачи и хранения информации, важно только защититься от её подделки и несанкционированного чтения. А сделаешь ты это криптой, или стеганой - вопрос выбора.

Добавлено через 16 минут
Герберт Шилдт:
Зашифруйте два разных файла в один так, чтоб при расшифровкке одним способом читался один текст, а другим способом - другой.
А теперь от себя: выдайте всё это за экзотичный формат, приложите один декодер со вшитым ключом, читающий не секретную информацию. Только как в этом случае обосновать создание формата? И если опубликовать спецификацию, то как скрыть наличие второго кода? Вот здесь то и выплывает графика с кучей смещений для всех палитр, массивов цветности, спектров плоскостей и подчинённых заголовков. Поди потом разбери, зачем в действительности предусмотрены смещения, особенно если они на самом деле имеют ещё какое то назначение, зачем увеличена разрядность, изменена цветовая модель и нафига специфицирована поляризация.
taras atavin вне форума
Старый 12.05.2011, 09:17   #53
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 
Аватар для Deviaphan
 
Регистрация: 22.03.2011
Адрес: http://coin3d-ru.lj.ru
Сообщений: 3,288
Репутация: 1010 (976)
По умолчанию Re: Стеганография в BMP. Полное руководство.

Опять двадцать-пять. Уже же сказали, смысл этого действа, чтобы никто и НЕ ДОГАДЫВАЛСЯ о передаче некой информации.
Зачем ты так про Медведева, тебя же по IP вычислят... Пичалька будет.
Коммерческие тайны никто не отменял, всем хочется знать секреты переговоров, даты встречи и т.п. Разумеется, для этого другие средства используются, но почему бы и нет. Порой, даже сам факт встречи может быть крайне секретен. Ладно, надоело уже. Я тему апнул только из-за ошибки в нумерации бит, а тут такое...
Deviaphan вне форума
Старый 12.04.2012, 13:34   #54
S_hmel
Новичок
 
Аватар для S_hmel
 
Регистрация: 14.02.2012
Сообщений: 75
Репутация: 2 (2)
По умолчанию

Цитата Сообщение от Erravielle Посмотреть сообщение
СТЕГАНОГРАФИЯ в BMP ИЗОБРАЖЕНИЯХ
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
BYTE ReadBitToByte (int Bit, BYTE B)
/* Записывает в байт B на последнюю позицию бит Bit */
{
  BYTE A = 00000001;
  BYTE Result = B;
  if (Bit == GetBitValue(B,8)) return B;
  else if (Bit == 1)
    return Result = Result|A;
  else if (Bit == 0)
    return B - A;
  return NULL;
}
Erravielle, в данном случае А - это маска, при помощи которой которой мы меняем байт изображения?

Добавлено через 34 минуты
А, да, уже прочитал пост выше...

Цитата Сообщение от Erravielle Посмотреть сообщение
I
Код C++
1
2
MAGE_SIZE = WIDTH*HEIGHT;
MAX_TEXT_SIZE = IMAGE_SIZE/8;
Вычисляется количество пикселей. Но ведь на один пиксель приходится 3 сэмпла - 3 цветовых канала. В каждом сэмпле - 8 бит. Я к тому, что может быть надо так сделать:

Код C++
1
IMAGE_SIZE = WIDTH*HEIGHT*3
Иля что-то путаю?
Тем более, что при открытии файла BMP ставятся настройки - 24 бита на пиксель.

Судя по коду в шапке темы, информация вносится только в канал красного цвета. А если со все каналы по одному биту вносить???

Могу предложить функцию для замены первых двух бит в сэмпле пиксела:

Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
BYTE WriteTwoBitsToByte(int Bit1, int Bit2, BYTE B)
/* Записывает в байт B на первые две позиции биты Bit1 и Bit2 */ {
    BYTE A1 = 00000011;
    BYTE A2 = 00000010;    //маски возможных ситуаций
    BYTE A3 = 00000001;
    BYTE Result = B;
*       
       //если биты уже в нужном состоянии, то оставить
    if ((Bit1 == GetBitValue(B, 8)) && (Bit2 == GetBitValue(B, 7))) {               
        return B;
    }
 
    //иначе, если 11 - логическое ИЛИ с соответствующей маской
        else if ((Bit1 == 1) &&(Bit2 == 1)) {                                                    
            return Result | A1;
         }
 
        //иначе, если 10 - вычесть соответствующую маску 
    else if ((Bit1 == 1)&& (Bit2 == 0)) {                                                    
            return Result - A2;
         }
 
        //иначе, если 01 - вычесть соответствующую маску
    else if ((Bit1 == 0) &&(Bit2 == 1)) {                                                       
             return Result - A3;
         }
 
        //иначе, если 00 - вычесть  маску A1
    else if ((Bit1 == 0) && (Bit2 == 0)) {                                                     
             return Result - A1;
         }   
    
    return NULL;
}
 
Но насчет варианта 00 не совсем уверен. Если неправильно, то поправьте меня, пожалуйста.

Последний раз редактировалось LK; 21.04.2012 в 22:14.
S_hmel вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 15.05.2012, 15:47   #55
LK
Модератор
 
Аватар для LK
 
Регистрация: 09.04.2010
Сообщений: 9,548
Репутация: 6295 (3791)
По умолчанию Re: Стеганография в BMP. Полное руководство.

Прячем данные в данных
Стеганография. Скрытие информации в изображениях
LK вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
Delphi для начинающих СТЕГАНОГРАФИЯ
Основы и методы защиты информации Для некоторых скрытие текста методами стеганографии вызывает некоторые трудности, поэтому я решил написать небольшую статью где подробно изложу ход выполнения практических заданий. Если кому-нибудь это покажется банально просто то просьба не читать, эта статья...
S9
Обучение и сертификация упражнения к книге Шилдта C# Полное руководство
Читаю книгу Герберта Шилдта Полное руководство C# 4.0 Читать не сложно и разжевывается все вполне хорошо и доступно, но вот хотелось-бы еще практикой закреплять, помимо приведенных примеров в книге. Имеется-ли что-то такое ? Возможно, упражнения, задачник ну или какая-то дополнительная литературу...
ArniLand
C# для начинающих Где найти задачи по Шилдту "Полное руководство С# 4.0"
Добрый день всем программистам и не только! Подскажите пожалуйста ответ на такой вопрос: Читаю книгу Герберта Шилдта Полное руководство C# 4.0 Читать не сложно и разжевывается все вполне хорошо и доступно, но вот хотелось-бы еще практикой закреплять, помимо приведенных примеров в книге. ...
TheShestov
C# для начинающих Джейсон, П.П. Visual C#.NET Полное руководство(где найти)
простите, если не туда. ищу эту книгу в электронном виде. нашел на одном сайте, но не могу скачать адрес удален если у кого-то есть или знает откуда можно скачать, дайте пожалуйста, ссылку
power12
Опции темы

Текущее время: 00:24. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru Яндекс.Метрика