S9
Волшебник
 Аватар для S9
656 / 259 / 88
Регистрация: 18.12.2010
Сообщений: 545
05.04.2012, 21:37  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от aidoqa Посмотреть сообщение
готовый вариант по jpeg и bmp
тут на самом деле никакого кодирования напрямую в jpeg нетупросто jpeg картинка кодируется в bmp и обрабатывается уже как bmp (этот формат изображений наиболее просто спрятать инфу стеганографическим способом)
Думаю, можно по аналогии, перекодировать png в bmp и обрабатывать такжедаже код особо менять не придется
Естественно, это приемлемо и для других форматов изображений, смысл прост: переводим в bmp и работаем с ним

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

P.P.S.
Цитата Сообщение от aidoqa Посмотреть сообщение
сам я в дельфи плохо разбираюсь)
Я тоже не очень
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2012, 21:37
Ответы с готовыми решениями:

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

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

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

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

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


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

Добавлено через 1 минуту
aidoqa,
Да, программу надо написать заново
Вообще самый простой способоб загрузить любой формат или в поток, изменить пиксели, а потом сохранить или в бмп или в PNG
Можно даже вписывать информацию в индексные картинки. Да хотябы в смайлики.
3
 Аватар для aidoqa
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
08.04.2012, 19:02
Lirrk, может там что нибудь испавить подправить) мне ее во вторник сдавать надо я без понятия что нужно сделать.
2
Заблокирован
08.04.2012, 19:10
aidoqa,
Я не совсем понял что вам надо. Или загружать PNG или сохранять в PNG?
Это курсовая или что? Как надо сделать, загрузить и показать картинку, или показывать её не надо.
2
 Аватар для aidoqa
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
08.04.2012, 19:15
Lirrk, первоначально у меня была программа она кодировала и прятала текстовый файл в картинку потом ее можно было раскодировать и у нас появлялся текстовый файл https://www.cyberforum.ru/post2871218.html - в этой программе можно было сделать с форматами jpeg and bmp , мне надо ее переделать под PNG, тоесть спрятать и закодировать текст в картинку и раскодировать ее.
1
Заблокирован
08.04.2012, 19:23
aidoqa,
в jpeg ничего не скроешь. Это формат с потерей информации. самый лучший это PNG
Другое дело, если открыть картинку любого формата, а сжимать её в PNG или оставить в BMP
2
 Аватар для aidoqa
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
09.04.2012, 17:00
как можно это реализовать к примеру картинку PNG скрыть в ней текстовый документ и сохранить как PNG? помогите пожалуйста до делать программу)
1
Заблокирован
09.04.2012, 22:10
Вот состряпал. Прячет только один текстовый файл. Для всего прочего надо разрабатывать заголовки и прочую лабуду.
Кушает BMP PNG TGA
На выходе BMP PNG TGA
Другие форматы добавляйте сами. Это очень просто.
Надеюсь, с тем, что я там наворотил разберётесь.
Вложения
Тип файла: rar steg.rar (324.9 Кб, 277 просмотров)
2
Заблокирован
10.04.2012, 12:55
Ну вот. Никому не нужно. Зря старался.
2
 Аватар для aidoqa
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
10.04.2012, 16:10
Lirrk, Большое СПАСИБО!!!!Выручили!!!!
Теперь осталось во всем этом разобраться и все)(можно уточнить как там происходит кодирование?)
можете объяснить насчетконтейнера что та происходит?
1
Заблокирован
10.04.2012, 16:31
aidoqa,
там происходит "финт ушами"
Файл любого формата попадает на обычный битмап. Но с битмапом работать не совсем удобно. Поэтому делается его линейная копия в памяти, а сам битмап уничтожается за ненадобностью.
А копия это набор пикселов, с котрыми можно сделать всё что угодно. В данном случае всё сводится к тому, что младший бит каждого байта играет роль контейнера.
Для чтения и записи байта скрываемой информации использованы вставки на ассемблере. посколько именно на ассемблере проще всего обрабатывать байты.
Ну а с программой работать проще простого. Сначала верхней кнопкой выбираете картинку, это Котейнер. Второй кнопкой текст для скрытя, третьей - куда будет сохранён результат.
Запуск и всё готово.
Включаем режим распаковки. верхенй кнопкой выбираем файл с спрятанным текстом. второй файл. где будет распакованный текст
Запуск и всё готово.
2
 Аватар для aidoqa
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
10.04.2012, 16:35
Lirrk, СПасибо еще раз большое)) Просто с перва мне нужно рассказать про формат PNG , потом подробно объяснить программу и как происходит кодирование)
1
Заблокирован
10.04.2012, 17:35
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 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
10.04.2012, 18:18
Lirrk, Cпасибо за подробное объяснение)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2012, 18:18
Помогаю со студенческими работами здесь

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

Стеганография
Всем доброго времени суток, дали задание зашифровать в изображении текст, т.к. времени у меня не так много я отказался от реализации на c и...

Стеганография
какой из существующих алгоритмов стеганографии, а именно электронного водяного знака, наиболее защищен и максимально пригоден для...

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

Стеганография
Здравствуйте,подскажите пожалуйста! Я написал программу которая шифрует пробелами секретную информацию в другой текст. Теперь нужно сделать...


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

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

Новые блоги и статьи
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru