Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стеганография, Нужны материалы 
:(
    Опции темы
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   Вверх
Monty
Дата 18.4.2004, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


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

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



sergej.z, дело в том что я их легко обнаружу smile.gif .... на многих программах у которых есть CRC проверка своего кода, пишут его в конец biggrin.gif ...... можно записать в другое место, в серединку ;) .... вот что я имел ввиду .... а про то что там нет джампов я и сам знаю smile.gif .... так же работают SFX модули архиваторов smile.gif ....... глупо так стенографироваться smile.gif ..... стенография превращается в криптографию, так как задача спрятать инфу так чтобы ее не выцарапали не выполняется smile.gif ........
Добавлено @ 04:55
а если прятаемая инфа не шифруется, то это хренография smile.gif


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


Un salsero
Group Icon


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

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



2Monty
Всё ясно! Мне просто был интересен сам факт добавления информации. Конечно стеганографией здесь и не пахнет. biggrin.gif
"От криптографии стеганография отличается тем, что с помощью криптографии можно скрыть содержание сообщения, а, пользуясь стеганографией, можно скрыть само существование сообщения."

Ну в конец ехе, можно вписывать не только техт, но и графику. Задача обнаружения информации сводится к обнаружению таковой в графическом файле. При этом наличе "хвоста" ещё не будет говорить о наличии секретной информации.

2Urod
Ну если для диплома такой вариант исключить то возможно тебе поможет то факт, что в 32- битных приложениях можно заменять ресурсы(иконки, картинки итд) при помощи той же http://www.users.on.net/johnson/resourcehacker/.
Заменяй пожалуйста иконки на "стеганографированные".

Опять же универсально (для любого рода исполняемых файлов) эта задача ИМХО не может быть решена(кроме как записи в хвост). Возможно же написать свой компилер, создающий приложения без ресурсов.

Ещё к дипломной работе: Очень легко обнаружить добавленную информацию в ехе. Достаточно сравнить два файла побитно.







--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Urod
Дата 20.4.2004, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sergej @ 19.4.2004, 21:19)
в 32- битных приложениях можно заменять ресурсы(иконки, картинки итд) при помощи той же http://www.users.on.net/johnson/resourcehacker/.
Заменяй пожалуйста иконки на "стеганографированные"

Что за приложения? Похоже, я уже ни фига не опнимаю...
Речь идет о замене только части исполняемого файла (картинок, включенных в него)? Если да, то это оопять же сводится к графике (а это уже не то).

PM MAIL   Вверх
Urod
Дата 23.4.2004, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какие-нибудь работы Куна кто-то может подсказать?
PM MAIL   Вверх
sergejzr
Дата 23.4.2004, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


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

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



Цитата
Urod
Что за приложения?

32-битные приложения это ехе файлы. Они могут содержать рессурсы(картинки), но если тебе графика всё равно не подойдёт, то выкинем это из головы.

Ещё раз по твоей дипломной:
Наличие информации в картинке не возможно доказать, если копии оригинала не существует.
Ну например я сфотал лес, закодил в фотку послание, а оригинал удалил. Кто сможет восстановить оригинал? Ведь никто этот лес так же сфотать не сможет.
Другое дело, если я возьму картинку из интернета, и запишу туда инфу. "Злоумышленник" без проблем определит наличие информации, если сравнит эти две картинки.

Примем во внимание теоретическую возможность применения стеганографии на ехе.
Получатся два пути:
  • Первый: ехе создаёшь ты сама, модифицируешь, а оригинал удаляешь.
    В этом случае информацию можно было закодить до компиляции в исходном коде. Потом только сообщить её позицию в ехе файле.
  • Второй:
    Ты берёшь существующий ехе, модифицируешь. Вот тут то от стеганографии остаётся только криптография, поскольку будет очень легко "выудить" посредством сравнения оригинала и твоего файла побитно. А о доказательства наличии инфы и говорить не приходится.

Теоретически можно изменить биты в ехе. Если комманда проверяет на & два константных числа. Можно у этих чисел пару бит поменять. Причём бит, изменяемый в первом числе должен быть изменён и во втором. Да поправят меня ассемблерщики! (кстати на ассемблерском форуме можешь задать такой вопрос. Они лучше в коммандах и ехе разбираются).

Удачи!
Сергей


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Urod
Дата 23.4.2004, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sergej @ 23.4.2004, 14:07)
[ Ты берёшь существующий ехе, модифицируешь. Вот тут то от стеганографии остаётся только криптография, поскольку будет очень легко "выудить" посредством сравнения оригинала и твоего файла побитно. А о доказательства наличии инфы и говорить не приходится.
[/LIST]
Теоретически можно изменить биты в ехе. Если комманда проверяет на & два константных числа. Можно у этих чисел пару бит поменять. Причём бит, изменяемый в первом числе должен быть изменён и во втором. Да поправят меня ассемблерщики! (кстати на ассемблерском форуме можешь задать такой вопрос. Они лучше в коммандах и ехе разбираются).

Удачи!
Сергей

Вот что-то второй способ мне не очень понятен. В exeшнике-то биты надо менять с умом, так, чтобы программа не перестала работать! И как ты предлагаешь это сделать.
И, у тебя нет примера по первому способу: с информацией, запрятанной в коде exe-программы, до и после компиляции. Так, случайно, вдруг ты этим увлекался. wink.gif Было бы здорово!
PM MAIL   Вверх
chipset
Дата 24.4.2004, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Кроме того можно шифровать текст который есть в файле, но таким образом придется как то распозновать что текст а что код, хотя все равно обнаружат по размеру, если оригинал не удалишь...



--------------------
Цитата(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
Дата 24.4.2004, 22:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(chipset @ 24.4.2004, 20:40)
Кроме того можно шифровать текст который есть в файле, но таким образом придется как то распозновать что текст а что код, хотя все равно обнаружат по размеру, если оригинал не удалишь...

Ну оригинал оригиналом - это 2-й аспект. Главное - это полноценное функционирование программы после вшивания в нее информации! Злоумышленник, просмотрев прогу, не должен ничего заподозрить, а если она будет битая, то тут все ясно! Есть ли какой-то конкретный МЕТОД вшивания информации в проги с сохранением функционирования проги? Вот, что мне надо. Типа, как метод незначащих бит у графики...
  Вверх
chipset
Дата 25.4.2004, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



вот здесь кажется то что тебе нужно...


--------------------
Цитата(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
Дата 26.4.2004, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мда, предзащита 7 мая, а у меня не густо по сути диплома sad.gif . Ну да и фиг с ним, думаю, что-нибудь придумается! smile.gif
PM MAIL   Вверх
Urod
Дата 26.4.2004, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



"Более сложный механизм маскировки реализован создателем вируса Win95.CIH. Этот вирус внедряется в *.exe файл, используя особенности формата PE (Portable Executable), принятого в системе Windows начиная с Windows 95. В Windows исполнимый файл *.exe может содержать не только код, но и многочисленные дополнительные данные. Это пиктограммы, различные служебные данные и дополнительная информация, например, об экспортируемых и импортируемых функциях. Каждый вид данных, содержащихся в файле формата РЕ, это отдельный объект. Для хранения всех объектов файл формата РЕ разбивается на ряд секций фиксированного размера. Каждый объект начинается с новой секции. Если объект не занимает всего объема секции, то эта часть секции не используется. Поэтому в файле формата РЕ всегда достаточно свободного места/
Больше всего свободного места в первой секции, в которую записывается только заголовок файла (PE header). В эти свободные места можно упрятать достаточно много информации, и при этом размер файла не изменится и работоспособность файла не нарушится."

Есть ли у кого информация о мерах против таких программ-закладок? notify.gif
PM MAIL   Вверх
sergejzr
Дата 26.4.2004, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


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

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



--------------------------------------------------------------------------------------------------------------------------
Цитата
Вот что-то второй способ мне не очень понятен. В exeшнике-то биты надо менять с умом

Описанием вторго пути я хотел только привести аргумент против стеганографии в ехе файлах, оригиналы которых "злоумышленник" может получить. При этом возможность использования ехе как стегоконтейнера была чисто теоретической. Как я уже говорил извлечение информации это не проблема и осталось бы только "раскодировать" послание.

Добавить информацию на этапе компиляции однако не составит особого труда. Вот пример:
Код

int main()
{
char* stego="Cats don't like dogs. But cats like milk. One cat likes to hunt mouses, another one prefers to drink milk. But no dog likes mousehunting."
return 1;
}

(Я попробовал написать что нибудь толковое по англицкий, даже если это выглядит иначе.)
Скомпилируй сей исходник в ехе. Открой полученный ехе любым текстовым редактором. Как ты видишь массив лежит в файле "открытым текстом".
Теперь слова cats/catзаменяй на 1, а gog/dogs на 0.
Получим 10110 что обозначает число 22 в двоичной системе.
Но я думаю, что ты сама это знаешь.

Теперь по поводу изменения бит в существующем ехе.
Предположим в ехе находится текст (Что весьма вероятно).
Как мы поняли этот текст открытый. То есть функциональность файла при изменении техта в БОЛьШИНСТВЕ случаев не будет нарушена. Как ты изменить техт, тут уже от случая к случаю надо решать. Допустим вариант:
Вставлять орфографические ошибки. Звучиы грубо, но если ты навставляешь/постираешь запятых....
например говоришь, что предложение с одной запятой - 1, а без запятых - 0.
Самое главное, писать можно ТОЛьКО в техт.
-----------------------------------------------------------------------------------------------------------------------------------------------
Цитата
особенности формата PE (Portable Executable), принятого в системе Windows начиная с Windows 95

Как я и говорил, невозможно этого сделать для ЛЮБЫХ ехе/out.
То, что ты описала - частичный случай.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Гость_XpyDi
Дата 27.4.2004, 09:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть несколько методов, которые достаточно сильно меняют внутренности exe файла, но при этом сохраняют его функциональность.
К несчатью, это не соответствует требованию стегонографии, что нехнакомый человек не должен догадаться, что данный обьект является стегоконтейнером.

Самый хороший метод по моему, это использование неявного контроля, для сокрытия части информации.
  Вверх
Гость_XpyDi
Дата 27.4.2004, 09:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот ссылка на неплохой материал с описанием "Неявного самоконтроля" в программах.
  Вверх
Urod
Дата 27.4.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ребята (думаю, не оишиблась), ОГРОМНОЕ вам спасибо! Хотя мой препод сказал, что диплом неплохой, ваша помощь неоценима, т.к. такие штуки я обязательно включу в диплом! adv/76.gif adv/party.gif
PM MAIL   Вверх
Гость_XpyDi
Дата 28.4.2004, 10:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Относительно меня могу сказать, что это была не шутка, т. к. метод который описан в приведенной мною статье подходит не только для защиты программ, но и для сокрытия информации. Если ты сама пишешь программу то данный метод впихнуть намного проще, чем если ты используешь чужую программу в качестве стегоконтейнера.
  Вверх
Urod
Дата 28.4.2004, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, статья неплохая! Но в ней речь идет о скрытом аудите (я бы даже сказала самоаудите) системы, и, каким образом это можно применить к стеганографии, мне что-то не очень понятно.
Может, какой-нибудь пример в контексте данной статьи? wink.gif
PM MAIL   Вверх
XpyDi
Дата 30.4.2004, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да там речь идёт о самоаудите, просто я дал ссылку на эту статью так как в ней описан метод, который можно использовать и для хранения скрытой информации в своих программах. Так, например, для вот такой структуры:
Код

st = Record
buf : array [1..5] of Byte;
Byte1 : Byte;
W : Word;
Byte2 : Byte;
end;

если нигде в программе нет явного обращения к полю byte1, то очень тяжело сказать каков размер массива buf - 5 или 6 байт, при этом если в начале работы программы туда было записано вот такое значение:
$68 $65 $6C $6C $6F (это строка hello), а в байт Byte1 значение 15 (просто часть нашего скрываемого сообщения), то если в ходе работы копировать в него всякую ерунду(т.е. использовать его по назначению) при это не затрагивая байты с нашим стего-сообщением(в данном случае это Byte1), то стего-сообщение можно будет извлечь даже из работающей программы(или её дампа). Можно конечно затереть в ходе работы Byte1, в данном случае становиться намного тяжелее догадаться, что 6 байт в структуре st это часть стего-сообщения, а не просто какая-то служебная информация используемая где-то программой в своих целях.
Также при определенных настройках компилятора в выходном exe файле части структуры st могут оказаться выровнеными на границу 4(хотя возможно и 2) байта, т.е. чтобы увеличить скорость доступа к данным копилятор впихнул в структуру несколько неиспользуемых байт, которые ты можешь использовать по своему усмотрению.
Также чем хороша программа в роли стего-контейнера, т.к. она использует динамически подключаемые библиотеки и ты вполне можешь размазать стего-сообщение по всем файлам необходимым для запуска программы, причем для каждого файла по своему, т.е. часть стего-сообщения в упаковынные файлы, часть в графические, часть в ..., часть в файлы с данных, потом dll и сам exe.
Также я заметил, что очень часто программисты используют тип integer (int - для C) который занимает 4 байта(при компиляции под Win32, практически всех pascal-компиляторов) практически для всх целочисленных переменных, при этом нередко засылаемое значение меньше 10000(а иногда и эта граница намного ниже). Так вот эти старшие байты и можно использовать для своих целей.

Теперь как все это реализовать, если ты не разработчик программы. Только полным или частичным дизассемблированием программы и анализом использоумых в ней структур данных, при этом надо учесть, что в данном случае нет 100%, что файл будет работать после того как ты впихнешь в него своё стего-сообщение. По этой тематике могу посоветовать посмотреть материалы посвященные пермутациям(технология используемая в вирусах для изменения собственного кода, с сохранением функциональности) и реверсирующим вирусам, т.к. там теме дизассемблирования и сборки с сохранением работоспособности уделяется больше внимания, нежели в различных публикациях по дизассемблированию.
Кстати защита от копирования Star-Force 3.0 анализирует исполняемый файл и большую част кода переводит в байт-код своей виртуальной машины, и потом защищенный исполняемый файл работает уже через виртуальную машину. Так что вот наглядный пример автоматического анализа чужой программы.

Я описал пожалуй самый эффективный метод(известный мне) встраивания сообщения в исполняемый файл. Но есть еще несколько от видоизменения кода до использования релоков и других системных структур исполняемого файла.
PM MAIL WWW ICQ   Вверх
Urod
Дата 30.4.2004, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sergej @ 26.4.2004, 23:29)
Открой полученный ехе любым текстовым редактором. Как ты видишь массив лежит в файле "открытым текстом".

Например, через Far посмотреть F3? Об этом идет речь? smile.gif
PM MAIL   Вверх
Urod
Дата 30.4.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(XpyDi @ 30.4.2004, 01:31)
Так, например, для вот такой структуры:
Код

st = Record
buf : array [1..5] of Byte;
Byte1 : Byte;
W : Word;
Byte2 : Byte;
end;

если нигде в программе нет явного обращения к полю byte1, то очень тяжело сказать каков размер массива buf - 5 или 6 байт,

А почему? sad.gif (я про размер массива)
PM MAIL   Вверх
sergejzr
Дата 30.4.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


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

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



Цитата
Например, через Far посмотреть F3

Это ведь вроде текстовый редактор (не встречался..)? Тогда да!

XpyDi Натолкнул на мысль. Такую прикольную, что я возьму свои слова обратно насчёт невозможности изменения сущ. ехе.
Информации туда напихать можно. Предлагаю на рассмотрение след. факты.
Идеи:
  • При декларации переменной в большинстве случаев значение ей не присваивается(в паскале то точно, вообще никогда).
    Код
    int main()
    {
    int a;
    a=3+7;
    cout<<a;
    }
  • Если учесть тот факт, что значение присвоится позже, то мы имеем ячейку для записи своей информации без каких либо изменений функциональности ехе!Больше!
  • Рассмотрим значения, которые принимает функция. В ехе эти ячейки существуют, но релевантными значениями заполнятся только при вызове этой функции. До того момента они могут содержать любую(!) информацию. Почему не нашу?
Решения:
  • Остаётся анализ дизассемблированого кода. Насколько я понимаю, не составит труда выловить такие ячейки.
  • Обязательным условием является то, что присваивание значения ячейке происходит позже в программе(до того, как эта ячейка будет программой использована).
Тут я бы предпочёл передать эту задачу специалистам по ассемблеру, которые возможно опровергнут/подтвердят такую возможность.
В случае позитивного ответа, такой способ действительно будет универсальным для ЛЮБОГО приложения.

Это сообщение отредактировал(а) sergej.z - 30.4.2004, 15:16


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Monty
Дата 30.4.2004, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


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

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



ох ... Запехните скрываемое сообщение в, допустим, calc.exe ... не выйдет и слова я свои не заберу smile.gif ... а вот в свою программу, я _легко_ спрячу скрываемое сообщение smile.gif ......

PS лень расписывать ... все кратко


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


Шустрый
*


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

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



Urod
Просто случай из практики.
Я не имея исходных текстов программы не мог точно сказать, что за стурктура и какой ёе размер пока не увидел конкретных обращений к элементам массива, но с массивом можно работать поэлементно, а можно просто скопировать его в какой-нибудь буфер и работать с ним уже не как с массивом, а как с записью, и вот тут если жо этого все элементы массива были размером байт, то в записи некоторые стали размером 4 байта, некоторые 5 байт, а некоторые так и остались 1 байтовыми. И без анализа кода который с ним работает ничего конкретно сказать нельзя.
sergej.z
Некоторая поправка, если ты не проинициализируешь переменную, то физически в файл она записана не будет. Но все константы указанные в программе записываються в саму программу. Т.е. строка проинициализированная явным образом или массив или структура и т.д.
Monty
Не обижайся, но мне все равно заберешь ты свои слова или нет. Я только хочу сказать, что в где-то 80% случаев это можно сделать для чужой программы. А для своей я думаю, что это самый простой и эффективный способ.
Насчет того реально ли найти такие излишки в программе автоматическом режиме или нет. Думаю что реально, но обязательно нужен потом прогон программы, хотя и он не дает гарантии, что теперь все работает. Так же если данный способ не пройдет то в программе очень много мест в которые можно запихнуть по 1 байту, хотя оно и очень сильно ограниченно поэтому в программу вряд ли удастся запихнуть сообщение представляющее собой хотя бы 50 % размера программы, а может и 25%

P.S. Разделаюсь сессией и попытаюсь впихнуть что-нибудь в calc.exe для демонстрации реальности всего вышеизоложенного.
PM MAIL WWW ICQ   Вверх
Guest
Дата 8.5.2004, 14:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А нельзя ли о встраивании стего в бинарники как-нибудь по-проще? Так сказать на качественном уровне. XpyDi
sergej.z

  Вверх
Urod
Дата 13.5.2004, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



XpyDi
Прокомментируй, пожалуйста, свою идею. notify.gif
PM MAIL   Вверх
XpyDi
Дата 16.5.2004, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
А нельзя ли о встраивании стего в бинарники как-нибудь по-проще? Так сказать на качественном уровне. XpyDi
sergej.z

А чем тебе это не качественный уровен. Дело в том, что все выше описанное, да теперь и ниже в полной мере официально нигде не применяется и если ты ожидал увидеть здесь код который методом copy&paste ты просто откомпилируешь и получишь готовую программу, которыю легко подогнать под собственные нужды, то хочу тебя разачаровать не будет этого по-моему слишком рано выкладывать код, пока не все нюансы описанного метода известны.


Извиняюсь, что долго не отвечал, был занят.
Вообщем так. В чем отличие исполняемого файла от графического? В графическом мы можем незначительно изменять данные и этого никто не увидит, но при этом мы не можем менять структуру файла, т.е. насколько мне известно она достаточно жесткая, т.е. вначале заголовок, потом данные. В отличие от графических файлов, структура исполняемого файла формата PE более свободна, т.е. некоторые таблицы могут быть, а могут не быть, да и расположены они могут быть в различных местах, но в пределах дозволенного.

Так вот самое первое, что приходит на ум, это во первых заполнять своими данными таблицы, которые присутвуют в файле, но не используются(да и такие есть, вот они современные оптимизаторы) например практически во всех файлах генерируемых компилятором Delphi есть талица reloc'ов, но в связи с тем, что exe всегда грузится по фиксированному адресу, то она становится не нужна. Также некоторые таблицы мы можем изменять так, что бы запихнуть туда насколько наших байтов или битов, например: таблица импорта, а точнее название библиотек и функций. Про изменение ресурсов и так сказано уже достаточно. Теперь перейдем к видоизменению кода и данных. ТУт дело обстоит сложнее, т.к. в отличии от графических файлов данные тут приктически никак не изменяются. Но у кода ингда встречаются неспользуемые куски, их можно найти автоматическим дизассемблированием и анализом файла(а иногда они встречаются, но используются динамически, и тогда файлу кранты). Но с кодом мы всегда можем произвести одну простую операцию это его сжать, потом сжать наше стегосообщение и в освободившееся место впихнуть всё что нам нужно. Визуально файл будет работать, как работал(пример того бесчисленное количество пакеров и протекторов для исполняемых файлов), но если заглянуть туда hex-редактором то определить, что он запакован не составит труда(а каким пакором не важно их сейчас столько появилось), правда чтобы определить есть ли там стегосообщение в некоторых случаях потребуеться анализ распаковывающего кода .

Теперь про данные, этот метод я описывал выше. Он основывается на том, что практически всегда оптимизатор увеличивает обьем используемых данных для того, чтобы величить скорость доступа к ним (т.е. из-за выравнивания). Я предлагаю находить эти дырки и записывать туда наши данные, правда количество таких дирок слишком мало, чтобы записать туда что-либо отличное от иконки(да и то для больших программ), так что в данном случае первый кандидат чтобы туда впихнуть это простой ЦВД (т.е. водяной знак). Этот метод больше всего подходит для встраивания каких-либо стегосообшений в свои собственные программы. Т.е. создавая переменные через мекросы, которые потом размажут наше стегосообщение по секции данным мы потом соберем поиском неиспользуемых дырок.

Достаточно кратенько больше лени расписывать, да и нехочеться одну(или несколько) идей заливать водой.

Это сообщение отредактировал(а) XpyDi - 16.5.2004, 08:43
PM MAIL WWW ICQ   Вверх
Urod
Дата 25.5.2004, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



XpyDi
Подитожив способы:
1. Просто писать наше сообщение в незаполненые (или частично заполеннные) таблицы PE-файлов. Например, в их заголовки (там места больше). Или писать в таблицы импорта. При этом функциональность PE-файла не нарушается. Так?

2. Главное - мне понять, что ты подразумеваешь под понятиями код и данные. Т.к. для меня код - это текст программы, видимо наше понимание несколько отличается. Уточни, пож-та.
Так вот: Находим пустые куски в коде дизассемблированием и/или анализом файла и заполняем их своим сообщением. Не поняла, что будет, если пустые куски файла "используются динамически"?
Еще один метод встраивания стего в код - это его сжатие. Но, как я понимаю, сжатый файл наталкивает на размышления. Следовательно, вопрос: под какие случаи такое специальное сжатие файла (чтобы в его освободившиеся места впихнуть стего) можно замаскировать? Так сказать, я это сделал для того, чтобы... Чтобы не возникало у рецензента лишних подозрений и желаний проверить этот сжатый ф-л.

3. Мне непонятно, как, увеличивая объем данных, появляются дырки. Т.е. тоже кол-во данных просто размазывается по увеличенному объему, и соответственно, где-то появлюются дырки? Так? Но эти дырки слишком малы, чтобы вставить в них аообщение, поэтому данный способ подходит в основсном для ЦВЗ.

Скажа, пож-та, правильно ли я тебя поняла. smile.gif

PM MAIL   Вверх
XpyDi
Дата 27.5.2004, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
1. Просто писать наше сообщение в незаполненые (или частично заполеннные) таблицы PE-файлов. Например, в их заголовки (там места больше). Или писать в таблицы импорта. При этом функциональность PE-файла не нарушается. Так?

Да, если редактировать с умом, т.к. иначе можно повредить важную таблицу (или её часть). Тут самое главное то, что можно редактировать все, что не используется загрузчиком, при этом есть несколько минусов:

  • загрузчики Win 9x/Me/NT/2k/XP иногда достаточо сильно отличаются друг от друга, соответвенно у них разные требования к файлу.
  • можно изменить таблицы не используемые загрузчиком, но используемые другими программами, а наличие некоректной таблицы может оказаться подозрительным, хотя это еще не значит файл является стегоконтейнером, существует еще несколько ситуаций, когда в файле находится не совсем корректная информация.


Цитата
Главное - мне понять, что ты подразумеваешь под понятиями код и данные. Т.к. для меня код - это текст программы, видимо наше понимание несколько отличается. Уточни, пож-та.

Код - это те осмысленные инструкции на которые хотя бы один раз в процессе работы программы может исполнится процессором.
Данные же это все остальные байты, т.е. те на которые передав управление программа скорее всего аварийно завершится.
Так, например, если сожмем программу, то полученные после сжатия байты будут данными, но после того как мы ей (программу) распакуем и передадим её управление это будет код. Так и в любой программе есть куски кода (т.е. те которые исполняются) и данные.
Я хотел сказать, что в некоторых случаях одни и теже байты могут быть как данными, так и кодом. Т.е. пока процессор не стал исполнять записанные там инструкции это данные, как только исполнил хоть раз, значит код.
Вроде выразился как мог, надеюсь понятно что я хотел сказать.

Цитата
Так вот: Находим пустые куски в коде дизассемблированием и/или анализом файла и заполняем их своим сообщением. Не поняла, что будет, если пустые куски файла "используются динамически"?

Я написал не пустые, а не используемые. Это несколько разные вещи. Пустые в моем понимании это забитые нулями, а неиспользуемые это остаточная информация от каких-то таблиц, возможно какие-то данные или код, который оптимизитор случайно впихнул из-за своей несовершенности. Проблема в том, что могут найтись такие куски на которые нет явных ссылок, но управление на них передается конструкцией вида:
Код

 mov eax, 15
 lea eax, [eax*2+3]
 call eax

В таком случае очень тяжело в автоматическом режиме определить какой кусок кода выполнится после прогона этого куска (показан достаточно простая конструкция, которую все же можно посчитать автоматически, но если в эту конструкцию впихнуть что-нибудь что читает какие-то байты из памяти и на основе их считает адрес, то автоматический анализ не поможет кроме разве что трасировки да и то не 100% вариант)

Цитата
Еще один метод встраивания стего в код - это его сжатие. Но, как я понимаю, сжатый файл наталкивает на размышления. Следовательно, вопрос: под какие случаи такое специальное сжатие файла (чтобы в его освободившиеся места впихнуть стего) можно замаскировать? Так сказать, я это сделал для того, чтобы... Чтобы не возникало у рецензента лишних подозрений и желаний проверить этот сжатый ф-л.

На самом деле сейчас существует просто бешенное количество программа для сжатия исполняемых файлов, что определить чем и для чего сжат файл иногда просто невозможно. А сжимают файлы по нескольким банальным причинам:

  • Уменьшить место занимаемое программой на диске. Реальный размер программы без распаковки узнать вряд ли удастся. Из-за этого программу можно выдать просто за несколько большую по размерам. Да и рецензент обратит внимание на то что программа сжата, только если залезет в неё дизассемблером или чем-то в этом роде.
  • Просто в сжатому коду был дописан какой-нибудь кусок который защищает его от различные модефикаций его взломщиками.
    Так же можно на самом деле впихнуть в файл подобных трюков байт на 20-30.

Цитата
3. Мне непонятно, как, увеличивая объем данных, появляются дырки. Т.е. тоже кол-во данных просто размазывается по увеличенному объему, и соответственно, где-то появлюются дырки? Так? Но эти дырки слишком малы, чтобы вставить в них аообщение, поэтому данный способ подходит в основсном для ЦВЗ.

Из-за выравнивания. Выравнивание - это дополнение некоторых структур нулевыми байтами, так что-бы все они располагались на границе(по адресу) кратному, например 2 байтам (сейчас чаще можно встретить 4,8 байт),
Из-за того что программист может плохо расположить различные структуры в программе её размер за счет выравнивания может немного увеличиться (относительно размера всей программы 10%-20%). А встраивание ЦВЗ это наиболее подходящий вариант для исполняемых файлов, т.к. что ни говори, а размер свободного места в файле под стегосообщение всеже сильно (по сравнению с музыкальными и графическими файлами) ограничено.
Единственное, что хочу напомнить, так это то, что ты можешь одно стего сообщение размазать по различным местам нашего файла и не только конкретного, но и тех, без которого запуск данной программы просто невозможен.

PM MAIL WWW ICQ   Вверх
Urod
Дата 15.6.2004, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем спасибо! К сожалению нет права поднять репутацию sergej.z и
XpyDi за помощь и поддержку. Если это сделаю модераторы - это будет справедливо!


PM MAIL   Вверх
podval
Дата 15.6.2004, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


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

Репутация: 18
Всего: 62



Цитата(Urod @ 15.6.2004, 14:56)
Всем спасибо! К сожалению нет права поднять репутацию sergej.z и
XpyDi за помощь и поддержку. Если это сделаю модераторы - это будет справедливо!

Сделал smile.gif
PM WWW ICQ   Вверх
Urod
Дата 17.6.2004, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



podval
Замечательно! smile.gif
PM MAIL   Вверх
Marriage
Дата 6.7.2004, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А про Wav может мне кто - либо рассказать интернесного ???
И как можно улучшить этот метод ???

Это сообщение отредактировал(а) Marriage - 6.7.2004, 22:32


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
chipset
Дата 7.7.2004, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А что собссно? Берёшь читаешь спецификацию wav, и записываешь в каждую двухбайтку(одно) инфу, как и с BMP собссна...


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


Опытный
**


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

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



Я спрашивал не как сделать, а как улучшить ...
Вопрос наводящий ...
Можно ли создать файл Wav ручками(я задавал уже этот вопрос в другом разделе, но так ответа конкретного и не дождался sad.gif )
Иожно ли забивать вручную звук в файл ??


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
teRmit
Дата 8.7.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


забытый...
*


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

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



Вручную то можно... но вот что ты в итоге получишь... скорее всего файл с шумами вместо музыки tounge.gif . Или можешь звук снимать с какого-нибудь источника (типа микрофона или line-in) и записывать его в файл.
--------------------
Жизнь не настолько длинна, чтобы можно было долго терпеть...
PM ICQ   Вверх
Marriage
Дата 8.7.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ДА ...
БУдем мудрить и пробовать в ручную ...


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
teRmit
Дата 10.7.2004, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


забытый...
*


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

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



А оно тебе надо? Бери готовые файлы.
--------------------
Жизнь не настолько длинна, чтобы можно было долго терпеть...
PM ICQ   Вверх
Marriage
Дата 10.7.2004, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



НУ как бы сказать ...
Если просто заменять "избыточные" биты просто наабум, или по какому-нить алгоритму, то получиться большая корелляция "1" и "0". Ктому же если на слух заметить разницу не возможно, то ее можно найти с помощью мат.статистики (та же самая корелляция "0" и "1")
ТАк что просто хотелось бы что-то новое привнести ...
Вот ...


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Shutt1
Дата 27.9.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.9.2011

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



Писал дипломную по стеганографии на вижуал студио, есть исходники проги которая скрывает информацию в видео файл AVI. Кому надо пишите на мейл: [email protected]
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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