Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стеганография, Нужны материалы 
:(
    Опции темы
Urod
Дата 10.4.2004, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



[color=crimson][/color][size=8][/size]
sad.gif ОЧЕНЬ нужны материлы про стеганографию в исполняемых файлах!!!!!!!!!!! У кого что-то есть (ссылки, проги, статьи), подскажите.
PM MAIL   Вверх
cardinal
Дата 11.4.2004, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Читай здесь:
http://forum.vingrad.ru/index.php?showtopic=17367
(это свое форумское smile.gif)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
chipset
Дата 11.4.2004, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 164



Ещё посмотри на www.mycomp.com.ua
там статья Невидимые чернила в 51 номере за преидущий год, сам не могу посмотреть инет больно тормозит и глючит sad.gif
после того как запрячешь в BMP суй её к EXEшнику как ресурс и будет тебе счастья smile.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Urod
Дата 11.4.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



Спасиб, но мне нужна информация принципиально об исполняемых файлах! Такова моя тема диплома, ничего другого преподы слушать не будут. Если есть что по теме - скиньте. notify.gif hmmm.gif sad.gif
PM MAIL   Вверх
cardinal
Дата 11.4.2004, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Цитата
но мне нужна информация принципиально об исполняемых файлах

ну а стеганография тогда здесь причем?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Urod
Дата 11.4.2004, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



Цитата(cardinal @ 11.4.2004, 14:19)
ну а стеганография тогда здесь причем?

Ну при том, что информацию можно запрятывать не только в графику и тексты, но и программки (и при том, так, чтобы программа нормально функционаровала, ее вес не изменился принципиально и т.п., т.е. чтобы противник ничего не заподозрил). Вот, что мне надо.
Это могут быть самостоятельные наработки или уже какие-то имеющиеся, типа:
Метод незначащих бит
Данный класс алгоритмов весьма интересен и широко используется на практике. Он основан на том факте, что в некоторых форматах файлов (в большинстве случаев - мультимедиа данные) младшие биты значений хотя и присутствуют в файле, но не влияют на восприятие звука или изображения человеком. Кстати, на этом же принципе основано и сжатие с потерями (JPEG, MP3, MP4 и т.п.). Именно в таких "неиспользуемых" местах в файлах можно хранить стегосообщения. Наиболее часто контейнерами служат графические форматы с прямым цветокодированием в 24 и более бит на пиксел (BMP, TIFF). Реже - звуковые файлы с абсолютным кодированием амплитуды аудиосигнала (WAV). При разумном наполнении контейнера исходный файл не отличит от заполненного без специального анализа даже опытный специалист.
Кстати, в цветных графических изображениях заменять младшие биты можно у каждой из составляющих (R, G, B или C, M, Y, K). И еще одно соображение: если вы предполагаете, что кто-то заподозрит в вашем файле стегосообщение - в качестве контейнера нужно выбирать не искусственно созданные картинки (стего в них обманет только неискушенного пользователя), а отсканированные фотоизображения. Только в них присутствуют шумы квантования - случайное заполнение младших бит, под которые и маскируются кусочки стегосообщения. Необходимо избегать фотографий с большими областями очень ярких и черного цветов. На таких картинках большие области в исходном файле имеют цветовые составляющие 255 и 0, соответственно и стегобайты будут характерно выделяться при просмотре файла в кодах своими 254 и 1.
Ниже приведена основная часть алгоритма, записывающего и считывающего стегосообщение. Контейнером служит 24-битный BMP-файл (полный текст программы и рабочий проект с примером стегосообщения можно найти на сайте журнала). В примере в каждом байте используется только 1 младший бит. Длина сообщения записывается не прямым 16-битным кодом, а в два этапа - это позволяет избежать подозрительной последовательности нулей в начале сообщения, если его длина мала. Сначала в 4 битах записывается N - "длина длины" сообщения, затем в N последующих битах собственно длина стего-сообщения в битах (старший (N+1)-ый бит считается установленным). Максимальная длина стегосообщения - 8 килобайт.
procedure AddLSBStego(const ContainerFileName:string; const Stego; BitCnt:integer);
var
Header:TBMPHeader; F:TFileStream;
Buffer:array[0..$103FF] of byte;
Ps,i,x,CntLen,BytesInLine,BytesRead:integer;

procedure AddLeastBit(Bit:integer);
begin
if Header.Width*3 <= Ps mod BytesInLine then
// перепрыгиваем выравнивание BMP-строк по границе dword
inc(Ps,BytesInLine-Header.Width*3);
Buffer[Ps]:=((Buffer[Ps]) and $FE) or (Bit and $01);
inc(Ps)
end;

begin
if (BitCnt<=$FFFF) and FileExists(ContainerFileName) then
begin
F:=TFileStream.Create(ContainerFileName,fmOpenReadWrite or fmShareExclusive);
F.Read(Header,sizeof(TBMPHeader));
if (Header.Signature=$4D42) and (Header.BMOffset=sizeof(TBMPHeader)) and (Header.ColorDepth=24) and (Header.Width*Header.Height*3>BitCnt) then
begin
BytesInLine:=(((Header.Width*3)+3) div 4)*4;
BytesRead:=F.Read(Buffer,sizeof(Buffer)); Ps:=0;
x:=BitCnt; CntLen:=0;
while x>0 do // определяем "длину длины"
begin x:=x shr 1; inc(CntLen) end;
for i:=0 to 3 do // записываем "длину длины"
AddLeastBit(CntLen shr (3-i));
for i:=0 to CntLen-2 do // записываем длину
AddLeastBit(BitCnt shr (CntLen-2-i));
for i:=0 to BitCnt-1 do // записываем саму стеганограмму
AddLeastBit(TByteArray(Stego)[i div 8] shr (7-(i mod 8)));
// возвращаемся и записываем измененный буфер на место
F.Seek(sizeof(TBMPHeader),soFromBeginning);
F.Write(Buffer,BytesRead);
end;
F.Free;
end;
end;

procedure ReadLSBStego(const ContainerFileName:string; var Stego; var BitCnt:integer);
var
Header:TBMPHeader; F:TFileStream;
Buffer:array[0..$103FF] of byte;
Ps,i,x,CntLen,BytesInLine:integer;

function ReadLeastBit:integer;
begin
if Header.Width*3 <= Ps mod BytesInLine then
// перепрыгиваем выравнивание BMP-строк по границе dword
inc(Ps,BytesInLine-Header.Width*3);
Result:=Buffer[Ps] and $01; inc(Ps)
end;

begin
if FileExists(ContainerFileName) then
begin
F:=TFileStream.Create(ContainerFileName,fmOpenRead or fmShareExclusive);
F.Read(Header,sizeof(TBMPHeader));
if (Header.Signature=$4D42) and (Header.BMOffset=sizeof(TBMPHeader)) and (Header.ColorDepth=24) then
begin
BytesInLine:=(((Header.Width*3)+3) div 4)*4;
F.Read(Buffer,sizeof(Buffer)); Ps:=0;
CntLen:=0; // определяем "длину длины"
for i:=0 to 3 do
CntLen:=(CntLen shl 1) or ReadLeastBit;
if CntLen=0 then CntLen:=16;
BitCnt:=1; // определяем длину
for i:=0 to CntLen-2 do
BitCnt:=(BitCnt shl 1) or ReadLeastBit;
x:=0; // считываем стеганограмму
for i:=0 to BitCnt-1 do
begin
x:=(x shl 1) or ReadLeastBit;
if i mod 8 = 7 then
begin TByteArray(Stego)[i div 8]:=x; x:=0 end;
end;
// "досмещение" и запись последнего неполного байта (если он был)
if BitCnt mod 8 <> 0 then
begin
x:=x shl (8-(BitCnt mod 8));
TByteArray(Stego)[BitCnt div 8]:=x;
end
end;
F.Free;
end;
end;

Только про исполянемые файлы. Есть что-нибудь?
PM MAIL   Вверх
cardinal
Дата 12.4.2004, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



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

Извиняюсь... Думал стеганография - это только в картинки, а это оказывается обобщенное название...

Вот тут немного про exe:
http://www.cio-world.ru/bsolutions/e-safety/28763/


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
chipset
Дата 12.4.2004, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 164



Всем понятно что в BMP можно прятать инфу без критических последствий!
Это очень легко на практике осуществить потому как безразлично будет если цвет будет немного(этого зрение не заметит) чуть более краснее!
А вот если в проге какой нибудь jmp замениться на mov ... то будет неприятно, а ведь для полного выведения программы из строя достаточно где нить один битик заменить и все!
Вот только я подумал, если находить граф. изображения в EXEшнике и там в этих изображениях менять всё, а также если кто знает как в тексте без ущерба сохранять, то в EXEшниках текста полным полно...вот только надо как то найти где можно безопасно изменить инфу... без выведения из строя проги



--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Guest
Дата 12.4.2004, 12:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(cardinal @ 12.4.2004, 00:38)
Вот тут немного про exe:
http://www.cio-world.ru/bsolutions/e-safety/28763/

Да, смотрела уже. Тут, конечно, неплохая информация, но МАЛО. sad.gif
  Вверх
Urod
Дата 12.4.2004, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



Цитата(chipset @ 12.4.2004, 00:45)
Вот только я подумал, если находить граф. изображения в EXEшнике и там в этих изображениях менять всё, а также если кто знает как в тексте без ущерба сохранять, то в EXEшниках текста полным полно...вот только надо как то найти где можно безопасно изменить инфу... без выведения из строя проги

Не поняла, т.е. предлагается следующее: брать код проги, которую мы хотим незаметно для противника передать, представлять его в виде граф. изображения, уже граф. изображение прятать в стегоконтейнер. Так? Если так, то изначально идея не та, т.к. суть заключается именно в передаче какого-либо сообщения в проге, именно прога выступает в роли стегоконтейнера.
Надеюсь, я тебя неправильно поняла, и ты мне подскажешь идею...
PM MAIL   Вверх
Mephisto
Дата 13.4.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Просто клеить в конец ехешника. Попробуй, у меня раньше получалось. Только вот нада научится потом вытаскивать!!!
PM   Вверх
Urod
Дата 13.4.2004, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



Ну объясните толком. Что клеить в конец exeшника? И как это графика в exeшнике? Я что-то не понимаю. Можно весь метод описать полностью? bored.gif
PM MAIL   Вверх
Monty
Дата 15.4.2004, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



lol smile.gif

Old.exe + Top.Secret = New.exe smile.gif .... тоесть, то что ты прячешь дописываем в любой exe ...... но это очень плохая идея!


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Urod
Дата 15.4.2004, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 376
Регистрация: 10.4.2004
Где: Москва

Репутация: 1
Всего: -1



Не, очевидно я не точно высказалась. Мне нужно следующее: встраивание информации (секретной) в код программы и при том, чтоб программа не портилась, т.е. нормально функционировала. Чтобы все выглядело мирно: я передаю кому-то программу (в которую запрятала информацию), а злоумышленник ничего не заподозрил, т.к. программа нормально функционирует.
PM MAIL   Вверх
sergejzr
Дата 16.4.2004, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Цитата
Urod
а злоумышленник ничего не заподозрил

Терзают меня смутные сомнения, что злоумышленник это как раз ты. biggrin.gif biggrin.gif

Конечно можно писать в строчку "This programm can not run under DOS mode" (или как там?), но различные компилеры могут создавать разные файлы и универсально внести изменения в прогу без последствий ИМХО не является возможным.

2Monty
Обьясни пожалуйста, почему встраивание информации на конец ехе (kak предлагает Mephisto) плохая идея. По идее никаких джампов туда быть не должно. А ехе, который работает в зависимости от своего размера если и существует, то создать его будет довольно мерзопакостно.. hmmm.gif
  • Насчёт вставки на конец файла:
    Я написал похожую прогу, но для тестирования, можно ли таким образом прицеплять к файлам МЕТА-дата.
    Прёт как танк на ехе,bmp,gif,... По идее проблемы возникнут с файлами - потоками (как wav), в которых используются ВСЕ байты файла.
  • Если кого нибудь интересует, предлагаю открыть проеткт для дальнейшей разработки. Главная проблема, которая должна быть решена таким способом: Скачал ты где нибудь файл, а программа закачки записала в файл, откуда он + сам добавил кое какие даты. Можно например прицеплять HTML-файлы, картинки итп.
  • Скачать версию 0.0 можно здесь.
    UniversalTagger
  • Если кому надо, код u алгоритм распечатаю в этой теме.
  • Специально для "Стенаграфистов" можно добавить опцию, что бы эту информацию кодировать ключом. Тогда "злоумышленник" если и заподозрит изменение файла, (размер оригинала на будет совпадать с размером резултата ровно в N байт добавленной информации и то в explorer'r это не увидишь если информация 100 байт, а размер файла был 3 МБ) то информациu всё равно расшифровать не сможет.












--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.