Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/350: Рейтинг темы: голосов - 350, средняя оценка - 4.60
S9
Волшебник
649 / 252 / 87
Регистрация: 18.12.2010
Сообщений: 541
05.04.2012, 21:37  [ТС] 21
Цитата Сообщение от aidoqa Посмотреть сообщение
готовый вариант по jpeg и bmp
тут на самом деле никакого кодирования напрямую в jpeg нетупросто jpeg картинка кодируется в bmp и обрабатывается уже как bmp (этот формат изображений наиболее просто спрятать инфу стеганографическим способом)
Думаю, можно по аналогии, перекодировать png в bmp и обрабатывать такжедаже код особо менять не придется
Естественно, это приемлемо и для других форматов изображений, смысл прост: переводим в bmp и работаем с ним

P.S. Это я пока только изложил кратко свои мысличуть попозже выложу все в виде отдельной статьиЕсли кто это хочет сделать вместо меня - я только за

P.P.S.
Цитата Сообщение от aidoqa Посмотреть сообщение
сам я в дельфи плохо разбираюсь)
Я тоже не очень
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 21:37
Ответы с готовыми решениями:

Стеганография
Доброго времени суток. Я начал изучать основы стеганографии и столкнулся с...

Стеганография
Доброй ночи! У меня большая проблема. Я не могу найти ошибку в программе. Она...

Стеганография.Шифрование текста в картинку
Задали курсовую Стеганография, нужно чтобы текст шифровался в картинку jpeg....

Стеганография LSB BMP
Такой вопрос: мне нужно из едита побитно запихнуть в байты цвета...

стеганография
в общем понадобилось скрыть текст в картинке средствами php. написал...

70
deathNC
1892 / 1005 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
06.04.2012, 03:54 22
Цитата Сообщение от S9 Посмотреть сообщение
картинка кодируется в bmp и обрабатывается уже как bmp
Это шутка?
1
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
06.04.2012, 04:41 23
Цитата Сообщение от S9 Посмотреть сообщение
чуть попозже выложу все в виде отдельной статьи
будем ждать с нетерпением)
p.s.- а то на следующей ннедели нужно сдавать уже отчет)
1
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
08.04.2012, 13:33 24
ни как ни могу переделать данную программу, под формат PNG((
1
Erkosha
56 / 9 / 0
Регистрация: 10.02.2011
Сообщений: 88
08.04.2012, 13:34 25
Здравствуйте!!! У меня та же самая проблема, мне нужно сделать программу для формата TGA! Помогите пожалуйста для решения данной задачки..
1
Lirrk
Заблокирован
08.04.2012, 17:49 26
aidoqa,
Ничего сложного нет. Любая картинка открывается и с ней проделевыются все манипуляции. А потом просто сохранить в PNG и всё. Надо всего лишь подключить модуль PNG

Erkosha,
Это вообще формат наподобие BMP. В него можно шифровать просто загрузив его в поток.
В чём собственно проблема? Или мне написать? Но мне кажется, писать подобные вещи удобнее в KOL . Там великолепные инструменты для работы с картинками.
3
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
08.04.2012, 17:54 27
Lirrk,
Цитата Сообщение от Lirrk Посмотреть сообщение
Надо всего лишь подключить модуль PNG
как это сдлеать или переделать данную программу http://www.cyberforum.ru/post2871218.html


Цитата Сообщение от Lirrk Посмотреть сообщение
вещи удобнее в KOL
что такое KOL?
2
Lirrk
Заблокирован
08.04.2012, 19:00 28
aidoqa,
Kol Это библиотека для Делфи ФрееПаскаль и Лазарус для написания маленьких по размеру приложений. Размер пустого окна от 15 до 42K Зависит где её используют.
Имеет визуальные компоненты. Впрочем всё здесь. http://kolmck.net/rindex.htm
Там есть книга про эту библиотеку. Там всё изложено

Добавлено через 1 минуту
aidoqa,
Да, программу надо написать заново
Вообще самый простой способоб загрузить любой формат или в поток, изменить пиксели, а потом сохранить или в бмп или в PNG
Можно даже вписывать информацию в индексные картинки. Да хотябы в смайлики.
3
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
08.04.2012, 19:02 29
Lirrk, может там что нибудь испавить подправить) мне ее во вторник сдавать надо я без понятия что нужно сделать.
2
Lirrk
Заблокирован
08.04.2012, 19:10 30
aidoqa,
Я не совсем понял что вам надо. Или загружать PNG или сохранять в PNG?
Это курсовая или что? Как надо сделать, загрузить и показать картинку, или показывать её не надо.
2
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
08.04.2012, 19:15 31
Lirrk, первоначально у меня была программа она кодировала и прятала текстовый файл в картинку потом ее можно было раскодировать и у нас появлялся текстовый файл http://www.cyberforum.ru/post2871218.html - в этой программе можно было сделать с форматами jpeg and bmp , мне надо ее переделать под PNG, тоесть спрятать и закодировать текст в картинку и раскодировать ее.
1
Lirrk
Заблокирован
08.04.2012, 19:23 32
aidoqa,
в jpeg ничего не скроешь. Это формат с потерей информации. самый лучший это PNG
Другое дело, если открыть картинку любого формата, а сжимать её в PNG или оставить в BMP
2
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
09.04.2012, 17:00 33
как можно это реализовать к примеру картинку PNG скрыть в ней текстовый документ и сохранить как PNG? помогите пожалуйста до делать программу)
1
Lirrk
Заблокирован
09.04.2012, 22:10 34
Вот состряпал. Прячет только один текстовый файл. Для всего прочего надо разрабатывать заголовки и прочую лабуду.
Кушает BMP PNG TGA
На выходе BMP PNG TGA
Другие форматы добавляйте сами. Это очень просто.
Надеюсь, с тем, что я там наворотил разберётесь.
2
Вложения
Тип файла: rar steg.rar (324.9 Кб, 254 просмотров)
Lirrk
Заблокирован
10.04.2012, 12:55 35
Ну вот. Никому не нужно. Зря старался.
2
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
10.04.2012, 16:10 36
Lirrk, Большое СПАСИБО!!!!Выручили!!!!
Теперь осталось во всем этом разобраться и все)(можно уточнить как там происходит кодирование?)
можете объяснить насчетконтейнера что та происходит?
1
Lirrk
Заблокирован
10.04.2012, 16:31 37
aidoqa,
там происходит "финт ушами"
Файл любого формата попадает на обычный битмап. Но с битмапом работать не совсем удобно. Поэтому делается его линейная копия в памяти, а сам битмап уничтожается за ненадобностью.
А копия это набор пикселов, с котрыми можно сделать всё что угодно. В данном случае всё сводится к тому, что младший бит каждого байта играет роль контейнера.
Для чтения и записи байта скрываемой информации использованы вставки на ассемблере. посколько именно на ассемблере проще всего обрабатывать байты.
Ну а с программой работать проще простого. Сначала верхней кнопкой выбираете картинку, это Котейнер. Второй кнопкой текст для скрытя, третьей - куда будет сохранён результат.
Запуск и всё готово.
Включаем режим распаковки. верхенй кнопкой выбираем файл с спрятанным текстом. второй файл. где будет распакованный текст
Запуск и всё готово.
2
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
10.04.2012, 16:35 38
Lirrk, СПасибо еще раз большое)) Просто с перва мне нужно рассказать про формат PNG , потом подробно объяснить программу и как происходит кодирование)
1
Lirrk
Заблокирован
10.04.2012, 17:35 39
aidoqa,
В смысле про формат png?
Графический формат. Использует сжатие без потерь. Может содержать альфа-канал.
Для работы с ним нужна библиотека. Она есть в архиве. Всё сводится к созданию обьекта PNG и работы с ним.

Добавлено через 10 минут
В разделе uses подключается pngimage

А это блок загрузки картинки PNG
Delphi
1
2
3
4
5
6
7
8
9
10
if OD1.FilterIndex = 2 then begin
                            png := TPNGObject.Create; // ñîçäГ*ГҐГ¬
                            png.LoadFromFile(OD1.FileName);
                            WW:= png.Width;
                            HH:= png.Height;
                            _B_.Width:=WW;
                            _B_.Height:=HH;
                            _B_.Canvas.Draw(0, 0, png); // âûâîäèì
                            png.Free; // ÎñâîáîæäГ*ГҐГ¬
                           end;
Добавлено через 3 минуты
png := TPNGObject.Create; // создаем
png.LoadFromFile(OD1.FileName);
WW:= png.Width;
HH:= png.Height;
_B_.Width:=WW;
_B_.Height:=HH;
Создаётся объект TPNGObject
Грузим рисунок
png.LoadFromFile(OD1.FileName);
Получаем его размеры
WW:= png.Width;
HH:= png.Height;
Делаем битмап того же размера
_B_.Width:=WW;
_B_.Height:=HH;

Добавлено через 1 минуту
Переносим на битмап
_B_.Canvas.Draw(0, 0, png); // выводим
Уничтожаем обьект PNG
png.Free; // Освобождаем

Всё рисунок распакован

Добавлено через 1 минуту
Далее делаем копию битмапа в виде сплошного потока байтов

Добавлено через 1 минуту
Ну а потом открываем файл текста и берём с него байт за байтом и добавляем его биты к пикселям

Добавлено через 40 секунд
То есть к каждому байту копии битапа

Добавлено через 1 минуту
А происходит это в процедуре

Delphi
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
Procedure Write_Byte(_dat:Byte); //Г‡Г*ГЇГЁГ±Гј ГЎГ*éòГ* Гў ëèГ*ГҐГ©Г*ГіГѕ áèòîâóþ ГЄГ*ðòó
var
Px_:byte;
ind_:byte;
Poz:Dword;
dat_:byte;
 
begin
dat_:= _dat;
 
for ind_:=1 to 8 do begin
Poz:= BM1.Position;
BM1.Read(Px_,1);//Г—ГЁГІГ*ГҐГ¬ Г¤Г*Г*Г*ûå ГЁГ§ ïîòîêГ*
 
asm
 push BX
 mov BH, Px_
 mov BL, dat_
 ror BH, 1
 rol BX, 1
 mov Px_, BH
 mov dat_, BL
 pop BX
end;
 
BM1.Position:= Poz;
BM1.Write(Px_,1);//ГЏГЁГёГҐГ¬ Г¤Г*Г*Г*ûå Гў ïîòîê
                end;
end;
Добавлено через 1 минуту
Procedure Write_Byte(_dat:Byte);
(_dat:Byte); Это байт текста

Добавлено через 1 минуту
for ind_:=1 to 8 do begin

поскольку в байте 8 битов то записываем байт текста в 8 байтов потока копии битмапа

Добавлено через 1 минуту
вот мы прочитали байт из потока копии битмапа и внедряем его бит

Добавлено через 46 секунд
Но тут нужно иметь представление об ассемблере и о регистрах процессора

Добавлено через 5 минут
но постараюсь обьяснить смысл.

вот байт. Это 8 бит
хххххххх

а слово состоит из двух байт

хххххххххххххххх

BH и BL Это регистры процессора, способные хранить байт.
Вместе они представляют 16 разрядный регистр BX для хранеия слова

Добавлено через 3 минуты
предположим текст это латинская буква A. код $41
или в двоичной 00101001

Добавлено через 24 секунды
Он в регистре BL

Добавлено через 5 минут
а в картинке пиксель код 00000011
Он занесён в регистр BH
В нём будет менятся младший бит. Поэтому поготовим место. Мы сдвигаем этот регистр на один разряд вправо. получаем 10000001

Добавлено через 2 минуты
а в регистре BL 00101001

Следовательно в BX теперь
1000000100101001

Добавлено через 38 секунд
Сдвигаем теперь все 16 бит влево

Добавлено через 1 минуту
0000001001010011

Добавлено через 3 минуты
в BH
00000010
B BL
01010011

Добавлено через 4 минуты
в BH Нужный готовй байт. В нём младший бит изменён на ноль
в BL остался бате буквы но сдвинутый на один разряд влево. То есть в старшем разряде второй бит
При следующем обороте цикла этот бит заменит младший бит байта каринки, а на его место встанет 3 бит.
И так дале...
Другими словами байт буквы побитно наползает на подготовленный байт картинки
3
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
10.04.2012, 18:18 40
Lirrk, Cпасибо за подробное объяснение)
1
10.04.2012, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 18:18

стеганография
дали изображение, сказали пароль 0x48k, что бы это значило? Попытался...

Стеганография
Доброго времени суток! Прочитал эту тему, и решил побаловаться с этими...

Стеганография
Здаствуйте. Может кто нибудь помочь мне. Мне нужно в формате Мpeg2 встроить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru