1.png31 Кб, 645x480
Стеганография. Скрытие информации в изображении. Исходники и готовая программа. /stegano/ Александр # OP 40717 В конец треда | Веб
Всем привет. Решил всё-таки выложить исходники программы по стеганографии. Приложение 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
2 40719
>>0717 (OP)
Где exe скочать?
4 40836
>>0717 (OP)
Это что-то вроде 10^-9 доски (название автобанят)?
5 40924
>>0836
Да,то, что нельзя называть, также использует стеганографию
6 41163
>>0924
А в чем тогда смысл?
7 41390
>>1163
с помощью программы можешь запустить под виндой,взять картинку,туда инфу закинуть,другу передать,а он расшифрует
8 41533
>>0836
наноборда?
9 41573
>>0717 (OP)
Просто оставлю это здесь: https://username1565.github.io/js-jpeg-steg/
10 41574
>>1573
В отличие от PNG и BMG, здесь - JPEG.
11 41575
>>0721
Chrome заблокировал файл как вредоносный...
Настройки -> загрузки -> скачать вредоносный файл...
Пытаюсь запустить... Двойной клик по exe...
INFINPIC не является приложением win32

Вырежте сигнатуры вирусные... И чем компилировать?
12 42407
>>1575
странно...
visualstudio,не помню,2015,кажется
13 42410
>>2407
Попытался перекомпилировать:

>диск:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe INFINPIC.sln


Софтина сбилдилась, и прога запустилась на win32, но дальше она просит .NET Framework 4.5...

Framework 4.5 на ХР не поставится!
Если на XP не запускается, значит нет обратной совместимости...
14 42562
>>1533
нанаборода теперь - на лунных oпioп-доменах: https://github.com/username1565/nanoboard/issues/2
15 43966
>>1533
>>2562
Я принёс в этот тред бамп!
16 45009
>>1533
>>3966
Наноборда теперь доступна через TOR, на onion-домене (временно, чисто для теста): http://nboardn46ay6ycdi.onion/
Открыть ссылку можно через TorBrowser.
17 45035
>>0717 (OP)
Я просто оставлю здесь "OpenPuff"
1573949883822.jpg169 Кб, 700x350
18 45057
ШУЕ ШПШ ППШ БЕБ.
1535706672194.jpg169 Кб, 700x350
19 45058
ШУЕ ШПШ ППШ БЕБ.
20 45103
>>0717 (OP)
А desudesutalk еще жив?
21 45104
>>5103
https://github.com/desudesutalk/desudesutalk
Последний коммит - 15 месяцев назад.
22 45144
Ну и как это билдить?
23 45145
А, под шиндовс. Ненужно.
INFINPIC.PNG89 Кб, 1204x489
24 45156

>45145


Как это не нужно? Как это, блядь, не нужно? Значит надо, чтобы было нужно!
>>5144

>Ну и как это билдить?


Выше, уже была описана - строчка для компиляции:
>>2410

>диск:\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. Судя по тестам - софтина работает без выебонов. Пикрил.
INFINPIC.PNG89 Кб, 1204x489
24 45156

>45145


Как это не нужно? Как это, блядь, не нужно? Значит надо, чтобы было нужно!
>>5144

>Ну и как это билдить?


Выше, уже была описана - строчка для компиляции:
>>2410

>диск:\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. Судя по тестам - софтина работает без выебонов. Пикрил.
25 45157
>>5156

>Судя по тестам - софтина работает без выебонов. Пикрил.


Всё-же медленно пашет. Ключи простые - легко подобрать.
Вот эти вот папки, ебучие, с датами - каскадом, бля, создаются, одна внутри другой - что загромождает 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)));


>}

26 45158
>>5157
Заебенил свой standalone зашумлятор PNG-шек, в одном ".cs"-файле.
Конпелируется при помощи csc.exe.
Вот код, если кому надо: https://rextester.com/USHMS79060
Обновить тред
« /crypt/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее