информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
И это не лечится 02.10.01 15:32  Число просмотров: 1571
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Это все равно что задатся вопросом: вот мы гоним криптованые даные, а пользователь их получил, раскриптовал и читает. А тут за спиной стоит зло умышленик и читает этот текст через плечо. Как этого избежат ? НИКАК ! Только пользователь сам заинтересован в том, что бы его данные ни кто не прочел, а в твоем случае ты заинтересован в том, что бы результаты твоего скрипта прочли.
Дело в том, что с шифрацией экзешника все предельно ясно: процессор не примет криптованый код, поэтому рано или позно его придется расскрыть, НО сделать это сможет только тот кто знает СЕКРЕТНЫЙ ключ (вернее пароль). Ну а те кто покупает одну копию и продает 1000 уже не наша юриздикция, это уже пусть закон ими занимается.
В твоем же скрипте ничего секретного нет. ЛЮБОЙ может прогнать его через достаточно большой текст и получить таблицу перекодировки.
<theory>
Нужна прога шифрования EXE-шника! Присоветуйте plz! 01.10.01 17:28  
Автор: Максим_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нужна прога шифрования EXE-шника! Присоветуйте plz!
Откровенно говоря написал я небольшую программу Wizual FoxPre
хочется НЕМНОГО защитить от ReFoxa
пусть люди помучаются :)
Нужна прога шифрования EXE-шника! Присоветуйте plz! 01.10.01 17:32  
Автор: Максим_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нужна прога шифрования EXE-шника! Присоветуйте plz!
Откровенно говоря написал я небольшую программу Wizual FoxPre
хочется НЕМНОГО защитить от ReFoxa
пусть люди помучаются :)
Большая просьба ответить на mail edward@newmail.ru
Спасибо
Их валом... 04.10.01 09:44  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
http://212.14.34.87/~fkiepski/szyfratorye.html
http://mud.sz.jsinfo.net/per/aaron/protectors.htm

Выбирай какой нравится.... Но! учти что нет такого пакера который бы защитил тебя на 100%
open source forever!! 02.10.01 16:06  
Автор: zelych Статус: Member
<"чистая" ссылка>
Пришла в голову идея, оцените 02.10.01 11:56  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Итак, у человека есть .exe файл, необходимо его зашифровать.
Вспоминаем как работают вирусы, дописываем дешифратор в конец файла, так, что бы на него передовалось управление при запуске. Сам дешифратор знает некий хеш (например MD5). При запуске проги запрашивается пароль. Делается хеш и сравнивается с извесным.
Если не совпадает, то выход, если совпадает... Создаются по введеному пользователем паролю другой хеш (в нашем примере отличный от MD5), который используется как ключ для декрипта самой программы.
По моему, такую защиту можно сломать только перебором. Ведь даже если в дебагере ввести уже нужный хеш (на авторизацию), то ключ на декрипт будет все равно не известен...
Есть идея, оцените 02.10.01 13:27  
Автор: paganoid Статус: Member
Отредактировано 02.10.01 13:56  Количество правок: 3
<"чистая" ссылка>
Идея хорошая, токма не очень свежая.

Когда ехехешник будет расшифрован, уже можно драть код.
Т.е. это защита от первого запуска.
Негодяи... 02.10.01 13:36  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
> Идея хорошая, токма не очень свежая.
Не успел придумать, уже сперли :)

> Когда ехехешник будет расшифрован, уже можно драть код.
> Т.е. это защита от первого запуска.
Ессно...
другая идея 02.10.01 13:50  
Автор: paganoid Статус: Member
<"чистая" ссылка>
вот мне больше нравится другое применение этого алгоритма.

допустим, есть скрипт для перевода транслита в русские буквы.
Это не простая замена s -> с , f->ф, sh->ш и т.п., как это может показаться.
Пример: слово "схематичный" -> "shematisсhnij" -> "шематичний". Т.е. существуют некоторые наборы символов, коие надо обрабатывать специфически (а их очень много, поверьте...)

Допустим, что скрипт должен поставляться с открытыми исходниками, но не должен открывать нюансов своей работы.

Как "спрятать" все такие "патентованные" замены " shem" -> " схем" и им подобные?

Наверное, именно так, как ты говорил.

зашиваем в прогу
val1 = hash(" shem")
также зашиваем
val2 = hash2(" shem") XOR " схем"

ищем в обрабатываемом тексте последовательность символов, хеш от которой совпадает с хешем от " shem" . Если нашли, берем от них hash2 и ксорим с val2 . Заменяем.

Чтобы "вскрыть" такую защиту, надо либо

1) отбрутфорсить для начала первую hash ф-ю.

или

2) в принципе, в скрипте можно узнать исходные строки, только если хеш строки встречается в тексте. Т.е. чтобы узнать все исходные строки, надо прогнать функцию на очень многих вариантах текста. Легче самому скрипт написать, наверное..

Другой вопрос, что в данной задаче перебрать все последовательности относительно легко :((

Может кто-нибудь подскажет решение?

зы. может хоть ктойнить понял, что я тут понаписал :)
другая идея 03.10.01 02:56  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
> зы. может хоть ктойнить понял, что я тут понаписал :)
Нечто такое, только более продвинутое я читал года полтора назад на dore.on.ru
Основная идея: код зашифрован и разбит на много кусков, среди которых много к делу не относящихся. Когда происходит некое событие, то прога этим событием пытается расшифровать все куски, выходит - запускает.
да фигня это всё.. 03.10.01 12:49  
Автор: zelych Статус: Member
<"чистая" ссылка>

> Основная идея: код зашифрован и разбит на много кусков,
> среди которых много к делу не относящихся. Когда происходит
> некое событие, то прога этим событием пытается расшифровать
> все куски, выходит - запускает.

по-моему, всё это всего-лишь запутывает код..
и никакой защиты проги от взлома, основанной на стойкости используемых в ней криптоалгоритмов нету, потому как все ключи в самой же проге и написаны..
да фигня это всё.. 04.10.01 03:11  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
>
> > Основная идея: код зашифрован и разбит на много
> кусков,
> > среди которых много к делу не относящихся. Когда
> происходит
> > некое событие, то прога этим событием пытается
> расшифровать
> > все куски, выходит - запускает.
>
> по-моему, всё это всего-лишь запутывает код..
Представь себе, что каждый кусочек - сервер. Выходит проэктирование в стиле клиент-сервер запутывает код :)

> и никакой защиты проги от взлома, основанной на стойкости
> используемых в ней криптоалгоритмов нету, потому как все
> ключи в самой же проге и написаны..
Во-первых не обязательно они все должны быть там прописаны - может быть внешнее событие.
А во-вторых, ну прописаны - так все ж перебрать нужно, а среди них много левых.
да фигня это всё.. 04.10.01 13:48  
Автор: zelych Статус: Member
<"чистая" ссылка>

> > по-моему, всё это всего-лишь запутывает код..
> Представь себе, что каждый кусочек - сервер. Выходит
> проэктирование в стиле клиент-сервер запутывает код :)

к клиент-серверной архитектуре я отношусь нормально, однако имхо это здесь немного не к месту..

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

ну и что?? ты отлавливаешь ключ в момент его использования..

> А во-вторых, ну прописаны - так все ж перебрать нужно, а
> среди них много левых.

ну сама-то прога как-то отличает левые от правых, а мы чем хуже..
да фигня это всё.. 07.10.01 03:24  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
> > > по-моему, всё это всего-лишь запутывает код..
> > Представь себе, что каждый кусочек - сервер. Выходит
> > проэктирование в стиле клиент-сервер запутывает код :)
> к клиент-серверной архитектуре я отношусь нормально, однако
> имхо это здесь немного не к месту..
Чего ж это? - все сервера зашифрованы, вызываются при наступлении неизвестного крекеру, но известного программе события.

> ну и что?? ты отлавливаешь ключ в момент его
> использования..
Да, это так. Но это придётся делать для каждого зашифрованного куска.
Что для очень большой программы будет очень сложно.

> ну сама-то прога как-то отличает левые от правых, а мы чем
> хуже..
Да, можем, хоть и придётся перебрать все возможные ключи, по всем возможным блокам.
Но: мы при этом теряем связь между разными блоками - её отдельно отслеживать нужно.

Короче всё конечно можно сломать, но это просто очередной способ усложнить жизнь крекеру.
И даже не крекеру, а скорее антивирусописателю. И даже не ему, а тому, кто захочет вирус поизучать.
что-то я тебя маленько недопонимаю.. 08.10.01 12:55  
Автор: zelych Статус: Member
<"чистая" ссылка>
> Чего ж это? - все сервера зашифрованы, вызываются при
> наступлении неизвестного крекеру, но известного программе
> события.
как это "сервера зашифрованы"?? а кто ж их потом расшифровывать будет??
лично я думал что всё немного наоборот:
прога разделена на кусочки, некоторые из которых зашифрованы (возможно каждый со своим ключом)..
существует некий менеджер шифрования (он же "сервер")..
при обращении к зашифрованному блоку (или просто по какому-то событию) управление передаётся этому самому "серверу", а он всё расшифровывает..

> > ну и что?? ты отлавливаешь ключ в момент его
> > использования..
> Да, это так. Но это придётся делать для каждого
> зашифрованного куска.
это если каждый кусок шифруется своим "сервером"..
а так достаточно поставить bp в самом сервере и ловить пароли..

> > ну сама-то прога как-то отличает левые от правых, а мы
> чем
> > хуже..
> Да, можем, хоть и придётся перебрать все возможные ключи,
> по всем возможным блокам.
что-то опять непонятка какая-то, зачем ВСЕ - мы же уже отловили один конкретный ключ..

> Но: мы при этом теряем связь между разными блоками - её
> отдельно отслеживать нужно.
согласен, связь теряется, придётся всё по кусочкам собирать (однако если надо просто крякнуть прогу, что бы всякие cd-key не вводить, например, то достаточно в том самом "сервере" статически прописать ключи)..

> Короче всё конечно можно сломать, но это просто очередной
> способ усложнить жизнь крекеру.
естественно, и прменять шифрование при этом вовсе не обязательно..
да фигня это всё.. 09.10.01 01:50  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> > Чего ж это? - все сервера зашифрованы, вызываются при
> > наступлении неизвестного крекеру, но известного программе
> > события.
> как это "сервера зашифрованы"?? а кто ж их потом расшифровывать
> будет??
> лично я думал что всё немного наоборот:
> прога разделена на кусочки,
Ну не кусочки, скорее всё же серверы, или об'єкты, а то складывается
ощущение, что как граница страницы проходила, так и разрезали, а ведь
они выполняют некоторую, предопределённую автором, цельную задачу.

> некоторые из которых зашифрованы (возможно каждый со своим ключом)..
так и есть - каждый своим ключом.

> существует некий менеджер шифрования (он же "сервер")..
Лучше "менеджер", чтоб не путать, ведь серверов - их может быть много.

> при обращении к зашифрованному блоку (или просто по какому-то
> событию)
по событию, которое сгенерировал другой блок (сервер)

> управление передаётся этому самому "серверу", а он всё
> расшифровывает..

Правильно ты всё думал.
Причём, ключ берётся из события - это основное.

> > > ну и что?? ты отлавливаешь ключ в момент его
> > > использования..
Да, отлавливаю. Но это нужно сделать для всех блоков программы.
А способа узнать их число нет.

> > Да, это так. Но это придётся делать для каждого
> > зашифрованного куска.
> это если каждый кусок шифруется своим "сервером"..
> а так достаточно поставить bp в самом сервере и ловить пароли..
Да ты прав, достаточно поставить bp. Вот только когда остановиться?

> > > ну сама-то прога как-то отличает левые от правых, а мы
> > > чем
> > > хуже..
> > Да, можем, хоть и придётся перебрать все возможные ключи,
> > по всем возможным блокам.
> что-то опять непонятка какая-то, зачем ВСЕ - мы же уже
> отловили один конкретный ключ..
Тут я тебя не совсем понял: "а мы чем хуже" - мы это кто? Если мы
пассивный злоумышленник, то придётся перебирать все события по
всем блокам. А если мы отладчиком отлавливаем - то нужно его
(событие) проверить по всем блокам (или посмотреть что программа
по этому поводу решила).
А перебирать, как я тт для усложнения анализа. А как грамотно к нему
cd-key подвязать - ещё подумать нужно. А с учётом того, что метод для
усложнения анализа, весь смысл прописывания статических ключей
теряется.

> > Короче всё конечно можно сломать, но это просто очередной
> > способ усложнить жизнь крекеру.
> естественно, и прменять шифрование при этом вовсе не обязательно..
Ну нет: за счёт шифрования достигается тот эфект, что во-первых мы не можем
посмотреть код иначе как отладчиком (причём посмотреть вперёд мы не можем),
во-вторых (что самое важное) мы не знаем на что ещё способна программа, пока
не убедимся, что других событий не бывает (а если бывают "случайные проверки",
вызванные до некоторой степени случайными событиями, то вообще
никогда не узнаем).


Итак о чём это я:
Описанный метод придуман для усложнения анализа работы программы.
Его использование позволяет делать "случайные проверки", которые
невозможно обнаружить до их первого возникновения.
что-то я нефига не понял, может растолкуешь поподробее.. 09.10.01 10:45  
Автор: zelych Статус: Member
<"чистая" ссылка>
Короче порылся я у себя и нашёл первоисточник. 09.10.01 20:59  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
Короче порылся я у себя и нашёл первоисточник.
Оказывается даже автор известный… :)
Я так и думал, что я это уже 2,5 года, а не 1,5 назад читал…

Правда, как по мне, то там ещё более мутно, чем я здесь
туго вспоминал. Да ещё и в искусственный интеллект во второй половине текста полезло.

Выкладываю всё, что тогда взял на dore.on.ru (я это о CT.TXT):
www.biasha.al.ru/files/Aticle.zip

http://www.biasha.al.ru/files/Aticle.zip
спасибо, почитал, узнал много интересного.. 10.10.01 13:46  
Автор: zelych Статус: Member
<"чистая" ссылка>
если прогу можно запустить в отладчике, то все проблемы почти сразу решаются..

[здесь сначала написал как всё это дело в отладчике сломать и получить нечто вроде исходников (если каждому обработчику присвоить осмысленное имя), но потом прочитал дальше и передумал..]

вот цитата из этой же статьи:
;Анализ невозможно математически предотвратить. Все, что можно так это
;только затруднить сам анализ путем использования различных оригинальных
;приемов программирования (само-модифицирующийся код, анти-отладочниые
;приемы и т.д.)

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

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

>Итак о чём это я:
>Описанный метод придуман для усложнения анализа работы программы.
>Его использование позволяет делать "случайные проверки", которые
>невозможно обнаружить до их первого возникновения.
это точно.. в этом я с тобой согласен.

короче мой вывод: криптография здесь ни при чём.. есть куча других способов обеспечивающих подобный эффект..
что-то я тебя маленько недопонимаю.. 08.10.01 13:51  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
> лично я думал что всё немного наоборот:
> прога разделена на кусочки, некоторые из которых
> зашифрованы (возможно каждый со своим ключом)..
> существует некий менеджер шифрования (он же "сервер")..
> при обращении к зашифрованному блоку (или просто по
> какому-то событию) управление передаётся этому самому
> "серверу", а он всё расшифровывает..

нечто подобное было в некоторых хасповских енвелопах
код а-ля FFFF расшифровывался через exception 6 handler

проблем особых впрочем не вызывало
Вот и ты попал на "первый раз" 02.10.01 15:17  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Есть текст Т1, прогоняем его через обычную замену, получаем Т2.
После прогоняем Т1 через твой скрипт (не сломаный), получаем Т3.
Сравниваем Т2 и Т3, выковыриваем все то что ты пытался скрыть и пишем такой же скрипт :)
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach