24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Стеганография. Скрытие информации в изображении. Исходники и готовая программа. /stegano/

 Александр OP 25/08/18 Суб 14:30:42 #1 №40717 
1.png
Всем привет. Решил всё-таки выложить исходники программы по стеганографии. Приложение INFINPIC(information in picture) предназначено для стеганографического сокрытия данных в графических файлах форматов BMP, PNG с помощью метода относительной замены величин коэффициентов дискретно-косинусного преобразования.

Приложение кодирует,декодирует информацию в изображения. Также возможны сравнение изображений и "очистка" изображения(если вдруг есть информация закодированная, чтобы она была некорректно раскодирована).

Метод относительной замены величин коэффициентов дискретно-косинусного преобразования (ДКП) (метод Коха и Жао).
Один из наиболее распространенных на сегодня методов сокрытия конфиденциальной информации в частотной области изображения заключается в относительной замене величин коэффициентов ДКП.
На начальном этапе первичное изображение разбивается на блоки размерностью 8×8 пикселей.
ДКП применяется к каждому блоку, в результате чего получают матрицы 8×8 коэффициентов ДКП, которые зачастую обозначают Ωb(υ,ν), где b – номер блока контейнера С, a (υ,ν)– позиция коэффициента в этом блоке. Каждый блок при этом предназначен для сокрытия одного бита данных.
Было предложено две реализации алгоритма: псевдослучайно могут выбираться два или три коэффициента ДКП. Рассмотрим первый вариант.
Во время организации секретного канала абоненты должны предварительно договориться о двух конкретных коэффициентах ДКП из каждого блока, которые будут использоваться для сокрытия данных.
Зададим данные коэффициенты их координатами в массивах коэффициентов ДКП: (υ1, ν1) и (υ2, ν2). Кроме этого, указанные коэффициенты должны отвечать косинус-функциям со средними частотами, что обеспечит скрытость информации в существенных для зрительной системы человека областях сигнала, к тому же информация не будет искажаться при JPEG-компрессии с малым коэффициентом сжатия.
Непосредственно процесс сокрытия начинается со случайного выбора блока Сb изображения, предназначенного для кодирования b-го бита сообщения. Встраивание информации осуществляется таким образом: для передачи бита "0" стремятся, чтобы разница абсолютных значений коэффициентов ДКП превышала некоторую положительную величину, а для передачи бита "1" эта разница делается меньшей по сравнению с некоторой отрицательной величиной.
Таким образом, первичное изображение искажается за счет внесения изменений в коэффициенты ДКП, если их относительная величина не отвечает скрываемому биту. Чем больше значение Р, тем стеганосистема, созданная на основе данного метода, является более стойкой к компрессии, однако качество изображения при этом значительно ухудшается.
После соответствующего внесения коррекции в значения коэффициентов, которые должны удовлетворять неравенству, проводится обратное ДКП.
Для извлечения данных, в декодере выполняется аналогичная процедура выбора коэффициентов, а решение о переданном бите принимается в соответствии со следующим правилом...
Достоинство метода Коха-Жао: устойчивость к большинству известных стеганоатак, в том числе к атаке сжатием, к аффинным преобразованиям, геометрическим атакам.
Недостатки метода:
1) низкая пропускная способность: 64 пикселя; 64 байта контейнера несут 1 бит информации;
2) некоторые блоки 8*8 слабо приспособлены к встраиванию данных, а именно:
- блоки с резкими перепадами яркости содержат большие абсолютные значения в ВЧ области, что может привести к очень большим искажениям при встраивании информации;
- монотонные изображения содержат в НЧ и СЧ области, как правило, нулевые компоненты. Модификация СЧ области приведет к внесению видимых искажений. [6]
Данный метод будем использовать при разработке программы для сокрытия информации в изображениях форматов BMP, PNG, т.к. метод Коха и Жао обладает существенным достоинством, описанным выше. Недостаток низкой пропускной способности метода было решено исправить путем выбора на начальном этапе размерности блоков (осуществим разбиение изображения не только 8×8 пикселей, но и 4×4, 2×2).


В приложении есть некоторые недостатки, но буду рад выслушать Вашу критику,какие-либо пожелания. Если будет у кого-нибудь желание отредактировать,отрефакторить, буду признателен.

Ссылка на гитхаб:
https://github.com/Fyzek/INFINPIC
Аноним 26/08/18 Вск 14:18:19 #2 №40719 
>>40717 (OP)
Где exe скочать?
Аноним 26/08/18 Вск 17:43:46 #3 №40721 
>>40719
https://github.com/Fyzek/INFINPIC/raw/master/KochZhao/bin/Debug/INFINPIC.exe
Аноним 13/09/18 Чтв 15:27:25 #4 №40836 
>>40717 (OP)
Это что-то вроде 10^-9 доски (название автобанят)?
Аноним 21/09/18 Птн 22:02:01 #5 №40924 
>>40836
Да,то, что нельзя называть, также использует стеганографию
Аноним 07/11/18 Срд 22:03:50 #6 №41163 
>>40924
А в чем тогда смысл?
Аноним 30/11/18 Птн 15:43:48 #7 №41390 
>>41163
с помощью программы можешь запустить под виндой,взять картинку,туда инфу закинуть,другу передать,а он расшифрует
Аноним 02/01/19 Срд 21:21:07 #8 №41533 
>>40836
наноборда?
Аноним 07/01/19 Пнд 23:04:38 #9 №41573 
>>40717 (OP)
Просто оставлю это здесь: https://username1565.github.io/js-jpeg-steg/
Аноним 07/01/19 Пнд 23:06:02 #10 №41574 
>>41573
В отличие от PNG и BMG, здесь - JPEG.
Аноним 07/01/19 Пнд 23:11:28 #11 №41575 
>>40721
Chrome заблокировал файл как вредоносный...
Настройки -> загрузки -> скачать вредоносный файл...
Пытаюсь запустить... Двойной клик по exe...
INFINPIC не является приложением win32

Вырежте сигнатуры вирусные... И чем компилировать?
Аноним 17/01/19 Чтв 00:52:31 #12 №42407 
>>41575
странно...
visualstudio,не помню,2015,кажется
Аноним 17/01/19 Чтв 08:44:33 #13 №42410 
>>42407
Попытался перекомпилировать:
>диск:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe INFINPIC.sln
Софтина сбилдилась, и прога запустилась на win32, но дальше она просит .NET Framework 4.5...

Framework 4.5 на ХР не поставится!
Если на XP не запускается, значит нет обратной совместимости...
Аноним 12/02/19 Втр 04:33:18 #14 №42562 
>>41533
нанаборода теперь - на лунных oпioп-доменах: https://github.com/username1565/nanoboard/issues/2
Аноним 03/10/19 Чтв 14:09:48 #15 №43966 
>>41533
>>42562
Я принёс в этот тред бамп!
Аноним 26/01/20 Вск 03:07:57 #16 №45009 
>>41533
>>43966
Наноборда теперь доступна через TOR, на onion-домене (временно, чисто для теста): http://nboardn46ay6ycdi.onion/
Открыть ссылку можно через TorBrowser.
Аноним 03/02/20 Пнд 07:46:58 #17 №45035 
>>40717 (OP)
Я просто оставлю здесь "OpenPuff"
Аноним 07/02/20 Птн 23:39:58 #18 №45057 
1573949883822.jpg
ШУЕ ШПШ ППШ БЕБ.
Аноним 07/02/20 Птн 23:40:54 #19 №45058 
1535706672194.jpg
ШУЕ ШПШ ППШ БЕБ.
Аноним 21/02/20 Птн 14:15:46 #20 №45103 
>>40717 (OP)
А desudesutalk еще жив?
Аноним 21/02/20 Птн 22:06:54 #21 №45104 
>>45103
https://github.com/desudesutalk/desudesutalk
Последний коммит - 15 месяцев назад.
Аноним 14/03/20 Суб 14:58:31 #22 №45144 
Ну и как это билдить?
Аноним 14/03/20 Суб 14:58:56 #23 №45145 
А, под шиндовс. Ненужно.
Аноним 20/03/20 Птн 02:06:20 #24 №45156 
INFINPIC.PNG
>45145
Как это не нужно? Как это, блядь, не нужно? Значит надо, чтобы было нужно!
>>45144
>Ну и как это билдить?
Выше, уже была описана - строчка для компиляции:
>>42410
>диск:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe INFINPIC.sln
У меня, тогда, не получилось...
Теперь, распишу реально-рабочий способ ко-ко-ко-нпеляции:
1. Программа просит .NET Framework 4.5 и компилируется в x64-версию, которая "не является приложением win32"
2. Но всё-же, я попытаюсь скомпилировать софтину на Windows XP с .NET Framework 4.0, при помощи MSBuild.exe.
3. Качаю исходник с github: https://github.com/Fyzek/INFINPIC -> "Clone or download" -> "download zip"
4. распаковываю zip-архив.
5. Вижу файлы проекта. Основная программа - в папке KochZhao.
Там есть две папки - "bin" и "obj", с уже скомпилированными exe-шниками, которые хуёво пашут на xp, так как являются x64-прогами, а не win32 (x86).
6. Сношу нафиг папку "obj", потому что она не нужна.
7. Сношу нафиг папку "bin/Release" - потому что тоже не нравится чё-т.
8. Вижу в папке "bin/Debug" - какие-то интересные файлы. Решил не сносить её, вдруг там библиотеки?..
9. Вернулся в самое начало, в папку, где лежит INFINPIC.sln. Создал там compile.cmd с текстом:
set fdir=%WINDIR%\Microsoft.NET\Framework
set msbuild=%fdir%\v4.0.30319\msbuild.exe
%msbuild% INFINPIC.sln
pause
10. Сохранил, запустил. Результат:
Предупреждений: 19
Ошибок: 0
Затраченное время: 00:00:06.82

11. Иду в папку "KochZhao". И вижу, что появилась папка "obj" в ней, и папка "Debug", внутри.
12. Открываю её... И вижу... Среди кучи всякого говна какого-то... Рабочий x86, win32 exe-шник INFINPIC.exe!
13. Запускаю... Сразу - появляется 4 папки: "Декодирование", "Кодирование", "Очистка изображений", "Сравнение изображений".
14. Судя по тестам - софтина работает без выебонов. Пикрил.
Аноним 20/03/20 Птн 03:06:10 #25 №45157 
>>45156
>Судя по тестам - софтина работает без выебонов. Пикрил.
Всё-же медленно пашет. Ключи простые - легко подобрать.
Вот эти вот папки, ебучие, с датами - каскадом, бля, создаются, одна внутри другой - что загромождает pathway.
И как же долго вайпается рандомом пикча. Пиздец просто.
Почему бы не потереть инфу - шустрейшим LSB?
Просто один бит, для каждого субпикселя, рандомно,
либо инвертировать, либо не инвертировать,
чтобы эти вот коэффициенты не вычислять по три часа...
Как-то так это можно сделать:
>Random rnd = new Random();
>for(int i = 0; i<10; i++){//for 10 bytes
>    int byte_value = rnd.Next(0,256); //generate random byte
>    //then generate random int in range [0, 1], and XOR byte value on this.
>    Console.WriteLine("byte_value: "+byte_value+", changed: "+(byte_value ^ rnd.Next(0, 2)));
>}
Аноним 20/03/20 Птн 05:01:00 #26 №45158 
>>45157
Заебенил свой standalone зашумлятор PNG-шек, в одном ".cs"-файле.
Конпелируется при помощи csc.exe.
Вот код, если кому надо: https://rextester.com/USHMS79060
comments powered by Disqus

Отзывы и предложения