Re[2]: Рассуждения на тему защиты программ
От: OlegV Украина  
Дата: 23.09.03 15:34
Оценка: 29 (3)
В тех программах, которые я разрабатывал, и которые продаются уже 3 года, реализована защита, основанная на психологии взломщика. Суть ее следующая. Проверка подлинности ключа имеет два алгоритма. Ложный и истинный. Код простроен так, что ложный обнаружить при отладке очень-очень легко, а истинный сложнее. Взломщик легко находит ложный алгоритм, делает на основании его KeyGen. При ложной регистрации программа полностью имитирует регистрацию, и переходит в полнофункциональный режим. После ложной регистрации включается дополнительный счетчик, котрый после например 50 запусков или 30 дней, переходит в demo режим и блокирует ввод другого регистрационного кода, что позволяет затруднить повторный анализ алгоритма после обратного перехода в demo версию.
Защита основана на том, что программы ломают чаще всего на заказ, и после очень легкого взлома, никому и в голову не приходит запустить прогу раз этак 50.

Что получилось в результате, программы конечно взломали, KeyGen (для ложной регистрации) можно найти сгрузить без труда. А для истинной еще не находил (может плохо искал . Набралось уже около двух десятков человек, которые после ложной регистрации купили программу и получили истинный регистрационный код.
Я специально не указываю, какие это программы где их можно сгрузить, так как хочется, чтобы покупки после ложной геристрации продолжались
Re[14]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 17.09.03 08:17
Оценка: +1 :)
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Flamer, Вы писали:


F>>Где правильно работающий ключ? Или кейген? Какая надпись появляется? Дайте мне ответы, плз... И прошу учесть, что это только демонстрация защиты, а не сама защита Есть еще много хороших мыслей...


UGN>Ну, что? Хоть кто-нибудь до конца добил?


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

З.Ы. В общем — пока не сломана...
Re[3]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 05:48
Оценка: 18 (1)
Здравствуйте, CyberDemon, Вы писали:

CD>Здравствуйте, Слава, Вы писали:


С>>Здравствуйте, Flamer, Вы писали:


CD>Если можно, мне — интересно почитать


CD>supered[собака]mail.ru


Отправлял, но вернулось обратно
Спасибо за внимание
Re: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 10.09.03 07:55
Оценка: 9 (1)
Здравствуйте, Flamer, Вы писали:

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


Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой. Могу выслать на мыло в формате doc и с хреновым качеством
Спасибо за внимание
Re[3]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 06:17
Оценка: 9 (1)
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Слава, Вы писали:


UGN>Почему же отстой? Для недорогого продукта вполне приемлемая защита, особенно нестандартно реализованная.


Во-первых это мнение Касперского, во-вторых его мнение можно понять, из того-же SoftIce можно сделать дамп расшифрованной проги ( она же сама себя расшифровывает) да и дизасемблером IDA можно легко расшифровать , в третьих это уже стандартная реализация.

UGN>Многие достойные программы имеют очень слабую защиту, практически никакую.


И это очень плохо

UGN>Ставишь бряк на вызов MessageBox( hWnd, "Не угадал!", "Ввод кода", MB_OK );


UGN>Потом смотришь что было выше.


UGN>Иногда прямо в отладчике видно сравнение открытым текстом "Фигня, которую я ввел вместо кода" c "Единственно верный код от разработчика".


Это я знаю но очень часто этого мало, кстати даже если шифруешь код, а потом вот так проверяешь пароль, то что ты сделал своей шифровкой ?

UGN>Бывает, конечно, что сравнение замороченное (я забиваю на все, что сложнее XOR ) но при этом результат top_secret_validate_fn() тупо сравнивается с нулем...


UGN>Можно подумать, что подправить сравнение очень сложно (или лучше саму функцию, чтобы всегда определенное значение возвращала)...


UGN>На фоне таких шедевров, шифрование кода, имхо, очень неплохой ход.


UGN>По крайней мере отсеет массу любопытных личностей с зудящим отладчиком.


Нет , если личность действительно любопытная.

UGN>А серьезные товарищи, имхо, этим заниматься не будут. У них интерес материальный.


UGN>Зачем им недорогая программа, на которой потеряешь время, а много не заработаешь?



UGN>У них есть более выгодные проекты.


UGN>Так что, считаю, что шифрование кода рано списывать со счета.



UGN>ЗЫ: Я ни в чем не виноват, никого не трогал, ничего не ломал.


UGN>А если что и делал, то только в общеобразовательных целях.


Да ладно чё уж там. Цитирую из упомянутой книги:

Мелким кракингом занимаются все.


ИМХО Это даже полезно, потому что налицо видны чужие ошибки.

Я после взлома ( если он удался ) удаляю прогу со своего компа.
И SofICE и IDAPro у меня установлены

А теперь хочу посоветовать один не очень честный метод тестирования своей защиты:

Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.

ИМХО на отрытом форуме, как этот не стоит обсуждать защитние механизмы своих прог.

ЗЫ я не взломщик, и до почётного звания хакер мне ещё очень далеко, просто как и все я озабочен защитой от компьютерных вандалов, называющих себя хакерами.
Спасибо за внимание
Re[8]: Рассуждения на тему защиты программ
От: retalik www.airbandits.com/
Дата: 11.09.03 12:50
Оценка: +1
Здравствуйте, Слава, Вы писали:

С>Кстати, а может всё-таки разрешить на RSDN такие щекотливые темы, как кракинг в чистом виде — это будет полезно.

Сам же говоришь — темы щекотливые...
Вопросы противодействия взлому программ здесь обсуждать вполне уместно. А противоположная сторона пусть заседает на crack.ru и тому подобных сайтах.
Успехов,
Виталий.
Re[12]: Рассуждения на тему защиты программ
От: TK Лес кывт.рф
Дата: 12.09.03 12:29
Оценка: +1
Здравствуйте, CyberDemon, Вы писали:

CD>Как я и обещал, я своему знакомому профи подкинул задачку. Не знаю, сколько он с ней возился (не долго, может, полчаса — не знаю), но потом он сказал, что защиты там, собственно и нету ;) Не знаю, как понимать эти слова. Вероятно, он просто привык копать профессиональные защиты :xz:


Вроде как ожидалось, что он скажет, какая надпись там появляется ;)
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[12]: Рассуждения на тему защиты программ
От: UGN  
Дата: 12.09.03 12:37
Оценка: +1
Здравствуйте, CyberDemon, Вы писали:

CD>Как я и обещал, я своему знакомому профи подкинул задачку. Не знаю, сколько он с ней возился (не долго, может, полчаса — не знаю), но потом он сказал, что защиты там, собственно и нету Не знаю, как понимать эти слова. Вероятно, он просто привык копать профессиональные защиты


Правильный рег код в студию!
Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 08.09.03 15:25
Оценка:
По сабжу хочется разобраться. Сижу, думаю, как поправильней поступить (кроме покупки ASProtect ). Надумалось, после прочтения нескольких профильных статей, что один из методов, затрудняющий жизнь взломщику — это шифрование кода (например, для скрытия работы алгоритма проверки введенных данных). Собственно, надумал пока нечто вроде нижеследующего (несмотря на то, что привожу код, считаю данный форум наиболее подходящим):

Пример шифрования тела функции:


// функция, которая будет шифроваться
void __fastcall MyMessageBox(const char* Message)
{
_asm
 {
  JMP @@11
  DB '376A0AFFA00A433790EBB7BFDADD452A'
  @@11:
 }

   // куча рабочего кода...

   ::MessageBox(NULL,Message,NULL,MB_OK);

_asm
 {
  JMP @@22
  DB '562C28E05F14462392124CB378149193'
  @@22:
 }

}
//---------------------------------------------------------------------------

// а это проверка :))

void __fastcall TForm1::Button3Click(TObject *Sender)
{
try
 {
  DWORD dwOld;
  VirtualProtect(MyMessageBox,4096,PAGE_READWRITE,&dwOld);

  BYTE* bMess = (BYTE*) MyMessageBox;
  for(; ;)
   {
     if(memcmp(bMess,"376A0AFFA00A433790EBB7BFDADD452A",32) == 0)
      break;
      bMess++;
   }

  bMess += 32; // обходим первую метку

   for(; ;)
    {
      // расшифровываем все до начала второй метки...
      if(memcmp(bMess,"562C28E05F14462392124CB378149193",32) == 0)
        break;

       *bMess ^= 0x12;
       bMess++;
    }


   MyMessageBox("Hello!");
 }
 catch(...) {}
}
//---------------------------------------------------------------------------


Собственно, все хорошо. Достаточно в получившемся exe проксорить (ну или другой алгоритм, для эксперимента не суть) кусок кода с 0х12 и все будет работать.

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

Вот только, естественно, если я вынесу АСМовые меточки за пределы функции, то опаньки, не срастется... Как бы это решить?
Re: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 08.09.03 16:20
Оценка:
Здравствуйте, Flamer, Вы писали:

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


Из достоверных источников известно, что наиболее всего затрудняет жизнь взломщику обилие левых даных и кода + шифровка (это как разновидность "обилия"). По-другому (пример) — создаем класс, на его основе (виртуальные методы) создается штук 10 _практически_ идентичных классов, отличающихся практически незаметной мелочью (константа), из-за которой этот класс не будет работать корректно (желательно, не сразу). Код, который получает нужный экземпляр, шифруется каким-нить симметричным методом. Плюс, в самом коде логика должна быть настолько разбросана по всему коду, что связи между кусками должны быть минимальны. Например, вычисление определенной констаны в алгоритме сжатия jpeg Плюс, не должно быть никаких явных проверок. Один из вариантов, сильно затрудняющих реверс кода (для начинающих — точно), это заключение шифрованного кода в exception handler "скобки" То есть, явной проверки нет, если код выполняется некорректно, происходит exception на уровне системы — гемора хацкер наберет неплохое количество

Ну и в добавок... Хакеру по барабану (в простейшем случае), как работает защита — ему надо найти точку, где она _уже_ отработала. Соотвественно, 2 вывода — защита обязательно должна быть очень сильно завязана с логикой софтины и эта точка (точки) должны быть очень сложно получаемы.

вот-с...
Re: Рассуждения на тему защиты программ
От: OlegSv2 Россия  
Дата: 09.09.03 07:10
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Вот только, естественно, если я вынесу АСМовые меточки за пределы функции, то опаньки, не срастется... Как бы это решить?


Вообще тема интересная, жаль что совсем нет времени с этим поэкспериментировать.
А что если вкратце не срастается ?
Вообще для дешифрации, кажется, метки искать не обязательно, адреса вычислимы.

PS: Как раз недавно делал защиту (правда с эл.ключом), в абсолютном цейтноте.
Шифровал таблицу со всякими важными данными и косвенными вызовами функций.
Предполагаю менять подход как время немножко появится, надеюсь тогда поэкспериментировать.

PSS: Вот кстати не знаю, скажем VC6, может менять порядок функций относительно того как они определены в CPP ? Если не меняет, тогда пожалуй дело решаемо, только перенос функции по другому адресу пожалуй нетривиален.
... << RSDN@Home 1.0 beta 6a >>
Re[2]: Re: 10х.
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 09.09.03 08:09
Оценка:
Здравствуйте, OlegSv2, Вы писали:

OS>Здравствуйте, Flamer, Вы писали:


F>>Вот только, естественно, если я вынесу АСМовые меточки за пределы функции, то опаньки, не срастется... Как бы это решить?


OS>Вообще тема интересная, жаль что совсем нет времени с этим поэкспериментировать.

OS>А что если вкратце не срастается ?

Да умный компилер вынесет все мои асмовые меточки в сегмент данных, вот и все Я смотрел на BCB 5.0 — такая там фигня... А если в теле функции — то все ок. Единственное, что пока вижу — это применять __declspec(naked) и ручками писать пролог/эпилог).

OS>Вообще для дешифрации, кажется, метки искать не обязательно, адреса вычислимы.


Если функция будет зашифрована полностью и "снаружи" — какие такие адреса? Не будет таких. На месте функции будет кусок мусора, грубо говоря. Вот этот-то кусок мусора надо сперва расшифровать, а уж потом выполнить... Так что меточки, по моему разумению, все-таки нужны...
Re[3]: Re: 10х.
От: OlegSv2 Россия  
Дата: 09.09.03 08:57
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Да умный компилер вынесет все мои асмовые меточки в сегмент данных, вот и все Я смотрел на BCB 5.0 — такая там фигня... А если в теле функции — то все ок. Единственное, что пока вижу — это применять __declspec(naked) и ручками писать пролог/эпилог).


Я подразумевал небольшие функции с асмовыми вставками(метками) до и после шифруемой функции (но я не уверен, что функции в exe будут точно в том порядке, что в CPP). Вероятно также потребуется сделать их ложные вызовы, чтоб оптимизатор их не снес. Но не пробовал.

OS>>Вообще для дешифрации, кажется, метки искать не обязательно, адреса вычислимы.


F>Если функция будет зашифрована полностью и "снаружи" — какие такие адреса? Не будет таких. На месте функции будет кусок мусора, грубо говоря. Вот этот-то кусок мусора надо сперва расшифровать, а уж потом выполнить... Так что меточки, по моему разумению, все-таки нужны...


Меточки определенно пригодятся для поиска по exe. ИМХО если если шифровать не полностью, как в твоем примере, то можно сделать самодешифрируемую функцию, внутри нее адреса меток 11 и 22 известны (или вызов функции дешифратора с этими адресами как параметры).
Если полностью зашифрована, то адрес самой функции известен. Длину участка можно считать при обработке exe (и скорректировать где-то в exe). Однако если будут некие функции "ограничители" с метками до и после шифруемой функции, то адрес фунцкции после шифруемой известен и это есть ограничитель.

Скажем:
void BeginGuard()
{
//asm
}
void Func()
{
}
void EndGuard()
{
// asm
}

void Decode()
{
// decode from Func to EndGuard
}


PS:
Также может стоит попробовать без Guarda что-то подобное ( если оптимизатор не снесет ):

void Func()
{
// body
return;
// asm lebel after last return
}
... << RSDN@Home 1.0 beta 6a >>
Re[4]: Re: 10х.
От: OlegSv2 Россия  
Дата: 09.09.03 17:31
Оценка:
Мда, сегодня чуть повозился с этим. Не все так просто, как хотелось бы
На MSVC даже твой пример может и не работать, т.к. взятие адреса для нестатической функции:
BYTE* bMess = (BYTE*) MyMessageBox;
не дает адрес кода, а адрес другого места с jmp-ом.
Порядок функций на MSVC может меняться в зависимости от static или нет функция.

Вообщем как сделать всю функцию шифруемой целиком не знаю

Удачи. Олег.
... << RSDN@Home 1.0 beta 6a >>
Re: Рассуждения на тему защиты программ
От: TK Лес кывт.рф
Дата: 10.09.03 05:38
Оценка:
Hello, "Flamer"
> По сабжу хочется разобраться. Сижу, думаю, как поправильней поступить (кроме покупки ASProtect ). Надумалось, после прочтения нескольких профильных статей, что один из методов, затрудняющий жизнь взломщику — это шифрование кода (например, для скрытия работы алгоритма проверки введенных данных). Собственно, надумал пока нечто вроде нижеследующего (несмотря на то, что привожу код, считаю данный форум наиболее подходящим):
>

Можно еще сделать две (n) одинаковые функций которые будут отличаться небольшими нюансами (+ на — поменять, == на != и т.п.) а итоговую функцию собирать на их основе — найти точки различий и используя ключ выбрать правильные. Как плюс — код готов после компиляции.
Posted via RSDN NNTP Server 1.6
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Рассуждения на тему защиты программ
От: peterbes Россия  
Дата: 10.09.03 06:35
Оценка:
Здравствуйте, Flamer, Вы писали:

F>По сабжу хочется разобраться. Сижу, думаю, как поправильней поступить (кроме покупки ASProtect ). Надумалось, после прочтения нескольких профильных статей, что один из методов, затрудняющий жизнь



Посмотри в http://www.rsdn.ru/Forum/Message.aspx?mid=184388&amp;only=1
Автор: peterbes
Дата: 29.01.03
, можеть быть там что полезное для себя найдешь.
Re[2]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 10.09.03 07:12
Оценка:
Здравствуйте, TK, Вы писали:

TK>Можно еще сделать две (n) одинаковые функций которые будут отличаться небольшими нюансами (+ на — поменять, == на != и т.п.) а итоговую функцию собирать на их основе — найти точки различий и используя ключ выбрать правильные. Как плюс — код готов после компиляции.


Это изложение по-русски моего ответа ?
Re[3]: Рассуждения на тему защиты программ
От: TK Лес кывт.рф
Дата: 10.09.03 07:52
Оценка:
Hello, "CyberDemon"
>
> TK>Можно еще сделать две (n) одинаковые функций которые будут отличаться небольшими нюансами (+ на — поменять, == на != и т.п.) а итоговую функцию собирать на их основе — найти точки различий и используя ключ выбрать правильные. Как плюс — код готов после компиляции.
>
> Это изложение по-русски моего ответа ?

Наверное не совсем
Например, зачем создавать кучу классов? Можно создать один с кучей "лишних" методов и в процессе проверки подправить vtable так, что-бы она указывала на восстановленные методы. Да и в данном случае нет шифрования всего метода — запутываются лишь отдельные фрагменты
Posted via RSDN NNTP Server 1.6
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 10.09.03 08:07
Оценка:
Здравствуйте, Слава, Вы писали:

[]

С>Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой. Могу выслать на мыло в формате doc и с хреновым качеством


Буду признателен: flame@rsdn.ru
Re[4]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 10.09.03 08:14
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello, "CyberDemon"

>>
>> TK>Можно еще сделать две (n) одинаковые функций которые будут отличаться небольшими нюансами (+ на — поменять, == на != и т.п.) а итоговую функцию собирать на их основе — найти точки различий и используя ключ выбрать правильные. Как плюс — код готов после компиляции.
>>
>> Это изложение по-русски моего ответа ?

TK>Наверное не совсем

TK>Например, зачем создавать кучу классов? Можно создать один с кучей "лишних" методов и в процессе проверки подправить vtable так, что-бы она указывала на восстановленные методы. Да и в данном случае нет шифрования всего метода — запутываются лишь отдельные фрагменты

Да, в принципе тоже вариант. Или, по-другому, те же яйца, но в профиль Главное только самому не запутаться
Re[2]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 10.09.03 08:15
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Flamer, Вы писали:


Если можно, мне — интересно почитать

supered[собака]mail.ru
Re[2]: Рассуждения на тему защиты программ
От: UGN  
Дата: 10.09.03 08:33
Оценка:
Здравствуйте, Слава, Вы писали:

С>Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой.


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

Многие достойные программы имеют очень слабую защиту, практически никакую.

Ставишь бряк на вызов MessageBox( hWnd, "Не угадал!", "Ввод кода", MB_OK );

Потом смотришь что было выше.

Иногда прямо в отладчике видно сравнение открытым текстом "Фигня, которую я ввел вместо кода" c "Единственно верный код от разработчика".

Бывает, конечно, что сравнение замороченное (я забиваю на все, что сложнее XOR ) но при этом результат top_secret_validate_fn() тупо сравнивается с нулем...

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

На фоне таких шедевров, шифрование кода, имхо, очень неплохой ход.

По крайней мере отсеет массу любопытных личностей с зудящим отладчиком.

А серьезные товарищи, имхо, этим заниматься не будут. У них интерес материальный.

Зачем им недорогая программа, на которой потеряешь время, а много не заработаешь?

У них есть более выгодные проекты.

Так что, считаю, что шифрование кода рано списывать со счета.


ЗЫ: Я ни в чем не виноват, никого не трогал, ничего не ломал.

А если что и делал, то только в общеобразовательных целях.
Re: Рассуждения на тему защиты программ
От: Евгений Коробко  
Дата: 10.09.03 09:18
Оценка:
Замуровать проверку подлинности — это вопрос техники. А мне вот интереснее другой вопрос.
Допустим, я позволяю скачать прогу, которая работает в демо-режиме, а за деньги — файлик-ключик. Проверка
подлинности ключика зашифрована — не подковаешься. Но вот кто-то прогу купил. Дал переписать знакомому, тот — своему, и
в конце концов ключик оказыватеся на astalavista. Как этому можно помешать?
Первое, что приходит в голову — привязка к железу пользователя. Но это очеень нехорошо. Большинство пользователей очень не любит
подобные вещи (я тоже не люблю), да и проблем очень много.
Делать много версий программы с разными алгоритмами проверки ключа (и разными ключами) — неэффективно, хватит и одной копии
Научить прогу лезть в интернет — тоже не вариант
Ограничивать срок действия дистрибутива/ключа нельзя, т.к. нарушает права пользователя, да и не будет он с таким геморроем возиться.
А что же делать?
Евгений Коробко
Re[2]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 10.09.03 09:36
Оценка:
Здравствуйте, Евгений Коробко, Вы писали:

ЕК>Замуровать проверку подлинности — это вопрос техники. А мне вот интереснее другой вопрос.

ЕК>Допустим, я позволяю скачать прогу, которая работает в демо-режиме, а за деньги — файлик-ключик. Проверка
ЕК>подлинности ключика зашифрована — не подковаешься. Но вот кто-то прогу купил. Дал переписать знакомому, тот — своему, и
ЕК>в конце концов ключик оказыватеся на astalavista. Как этому можно помешать?
ЕК>Первое, что приходит в голову — привязка к железу пользователя. Но это очеень нехорошо. Большинство пользователей очень не любит
ЕК>подобные вещи (я тоже не люблю), да и проблем очень много.
ЕК>Делать много версий программы с разными алгоритмами проверки ключа (и разными ключами) — неэффективно, хватит и одной копии
ЕК>Научить прогу лезть в интернет — тоже не вариант
ЕК>Ограничивать срок действия дистрибутива/ключа нельзя, т.к. нарушает права пользователя, да и не будет он с таким геморроем возиться.
ЕК>А что же делать?

Black-list, который резко будет обновляться в случае проявления ключа. Но это только защита от работы в новых версиях.
Соответственно, версии надо обновлять почаще, чтобы была заинтересованность в закачке новья. А спец, который "поделился" в след. раз подумает хорошо
Re[3]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 05:23
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>Если можно, мне — интересно почитать


CD>supered[собака]mail.ru


Отправил
Спасибо за внимание
Re[4]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 11.09.03 06:35
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, CyberDemon, Вы писали:


CD>>Здравствуйте, Слава, Вы писали:


С>>>Здравствуйте, Flamer, Вы писали:


CD>>Если можно, мне — интересно почитать


CD>>supered[собака]mail.ru


С>Отправлял, но вернулось обратно


Может тогда на cyberdemon[собака]revoltgames.com ?
Re: Рассуждения на тему защиты программ
От: tks Россия  
Дата: 11.09.03 06:58
Оценка:
Здравствуйте, Flamer. Вы предложили интересную идею , правда у нее есть одна слабая сторона --- вызов функции VirtualProtect --- она сразу привлечет внимание хакера в таблице импорта программы --- он поставит на нее брейкпоинт, найдет функцию MyMessageBox --- дальше уже дело техники. Можно обойтись и без функции VirtualProtect, если копировать, расшифровывать и выполнять код функции MyMessageBox в стеке. То есть с начала копируем код функции в стек, затем расшифровываем и выполняем его в стеке --- я думаю это существенно затруднит жизнь хакеру

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

Удачи...
Программист — это не тот, кто пишет программы, а тот, чьи программы работают.
Re[4]: Рассуждения на тему защиты программ
От: UGN  
Дата: 11.09.03 07:03
Оценка:
Здравствуйте, Слава, Вы писали:

С>Во-первых это мнение Касперского, во-вторых его мнение можно понять, из того-же SoftIce можно сделать дамп расшифрованной проги ( она же сама себя расшифровывает) да и дизасемблером IDA можно легко расшифровать , в третьих это уже стандартная реализация.


Не все так просто. А от отладчиков есть защита. (Которая тоже обходится, но доставляем много удовольствия ломателю)

UGN>>Иногда прямо в отладчике видно сравнение открытым текстом "Фигня, которую я ввел вместо кода" c "Единственно верный код от разработчика".


С>Это я знаю но очень часто этого мало, кстати даже если шифруешь код, а потом вот так проверяешь пароль, то что ты сделал своей шифровкой ?


Так нет же! Шифруешь ключом участки кода и нигде коды не сравниваешь!

Если код неверный, то получишь мусор (GIGO?). Дальше exception и привет.

А если правильный ключ — то и код будет нормальный.

Естественно, расшифровывть надо не все сразу, чтобы ломщик замучался дампы делать.

UGN>>По крайней мере отсеет массу любопытных личностей с зудящим отладчиком.


С>Нет , если личность действительно любопытная.


Любопытство и уровень знаний/опыта не всегда коррелируют.



С>А теперь хочу посоветовать один не очень честный метод тестирования своей защиты:


Почему не честный?

С>Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.


Почему подло? Так многие делают -- нормальный способ проверить стойкость защиты.
Re[5]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 08:20
Оценка:
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Слава, Вы писали:


UGN>Не все так просто. А от отладчиков есть защита. (Которая тоже обходится, но доставляем много удовольствия ломателю)


Пока защита не сработала, можно работать ( ой помоему наши сообщения скоро начнут удалять )

С>>Это я знаю но очень часто этого мало, кстати даже если шифруешь код, а потом вот так проверяешь пароль, то что ты сделал своей шифровкой ?


UGN>Так нет же! Шифруешь ключом участки кода и нигде коды не сравниваешь!


Хороший подход, главное не шифровать по XOR, ибо <зашифрованное число>XOR<незашифрованное число>=<ключ>
Криптография рулит, но полной гарантии не даёт, ибо как пишет Касперский, стойкость криптоалгоритма проверяется группой математиков, и когда за определённое время они его не могут реверснуть, то алгоритму присвается та или иная степень стойкости. А существование нереверсируемых алгоритмов математически не доказано (все камни в Касперского )

UGN>Если код неверный, то получишь мусор (GIGO?). Дальше exception и привет.


UGN>А если правильный ключ — то и код будет нормальный.


UGN>Естественно, расшифровывть надо не все сразу, чтобы ломщик замучался дампы делать.


Тогда рулит IDA и его юзерские скрипты.

UGN>>>По крайней мере отсеет массу любопытных личностей с зудящим отладчиком.


С>>Нет , если личность действительно любопытная.


UGN>Любопытство и уровень знаний/опыта не всегда коррелируют.


Если есть любопытсво, то и уровень знаний появится. Кстати знаний, чтобы снять защиту нужно меньше, чем для того, чтобы её поставить.

Умение снять защиту вовсе не означает умения её поставить (С) Крис Касперстий



С>>А теперь хочу посоветовать один не очень честный метод тестирования своей защиты:


UGN>Почему не честный?


С>>Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.


UGN>Почему подло? Так многие делают -- нормальный способ проверить стойкость защиты.


Так давай друг друга выявлять на этих форумах
Спасибо за внимание
Re[3]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 08:34
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, Слава, Вы писали:


F>[]


С>>Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой. Могу выслать на мыло в формате doc и с хреновым качеством


F>Буду признателен: flame@rsdn.ru


Если надо сообщать, то послал.
Спасибо за внимание
Re[6]: Рассуждения на тему защиты программ
От: UGN  
Дата: 11.09.03 08:39
Оценка:
Здравствуйте, Слава, Вы писали:

С>Хороший подход, главное не шифровать по XOR, ибо <зашифрованное число>XOR<незашифрованное число>=<ключ>

А разве кто-то собирался использовать XOR?
здесь
Автор: UGN
Дата: 09.09.03

здесь
Автор: Кодт
Дата: 09.09.03


С>Криптография рулит, но полной гарантии не даёт, ибо как пишет Касперский, стойкость криптоалгоритма проверяется группой математиков, и когда за определённое время они его не могут реверснуть, то алгоритму присвается та или иная степень стойкости. А существование нереверсируемых алгоритмов математически не доказано (все камни в Касперского )


Главный принцип хорошей защиты -- сделать ее взлом невыгодным. (*)
За сколько ты сломаешь некий криптоалгоритм, нереверсируемость которого не доказана?

UGN>>Естественно, расшифровывть надо не все сразу, чтобы ломщик замучался дампы делать.

С>Тогда рулит IDA и его юзерские скрипты.

См. (*)

UGN>>Любопытство и уровень знаний/опыта не всегда коррелируют.

С>Если есть любопытсво, то и уровень знаний появится. Кстати знаний, чтобы снять защиту нужно меньше, чем для того, чтобы её поставить.

Да ну? Сильно сомневаюсь.

С>

С>Умение снять защиту вовсе не означает умения её поставить (С) Крис Касперстий


Конечно, ломать не строить, но если дело не ограничивается заменой условного перехода на безусловный, то дилетанты идут лесом.
Re[5]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 08:42
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>Здравствуйте, Слава, Вы писали:


С>>Здравствуйте, CyberDemon, Вы писали:


CD>>>Здравствуйте, Слава, Вы писали:


С>>>>Здравствуйте, Flamer, Вы писали:


CD>>>Если можно, мне — интересно почитать


CD>>>supered[собака]mail.ru


С>>Отправлял, но вернулось обратно


CD>Может тогда на cyberdemon[собака]revoltgames.com ?


Отправил
Спасибо за внимание
Re[4]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.09.03 08:45
Оценка:
Здравствуйте, Слава, Вы писали:

[]

С>Отправлял, но вернулось обратно


Спасибо, я получил.
Re[4]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.09.03 08:47
Оценка:
Здравствуйте, Слава, Вы писали:

[]

С>Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.


Есть у меня мой CrackMe. Хотите попробовать свои силы?
Re[2]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.09.03 08:48
Оценка:
Здравствуйте, tks, Вы писали:

tks>Здравствуйте, Flamer. Вы предложили интересную идею , правда у нее есть одна слабая сторона --- вызов функции VirtualProtect --- она сразу привлечет внимание хакера в таблице импорта программы --- он поставит на нее брейкпоинт, найдет функцию MyMessageBox --- дальше уже дело техники. Можно обойтись и без функции VirtualProtect, если копировать, расшифровывать и выполнять код функции MyMessageBox в стеке. То есть с начала копируем код функции в стек, затем расшифровываем и выполняем его в стеке --- я думаю это существенно затруднит жизнь хакеру



В принципе, я так и сделал. Схожие проблемы порождают схожие мысли .
Re[7]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 08:55
Оценка:
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Слава, Вы писали:


С>>Хороший подход, главное не шифровать по XOR, ибо <зашифрованное число>XOR<незашифрованное число>=<ключ>

UGN>А разве кто-то собирался использовать XOR?

Просто рассуждения по теме.

UGN>Главный принцип хорошей защиты -- сделать ее взлом невыгодным. (*)

UGN>За сколько ты сломаешь некий криптоалгоритм, нереверсируемость которого не доказана?

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

UGN>>>Любопытство и уровень знаний/опыта не всегда коррелируют.

С>>Если есть любопытсво, то и уровень знаний появится. Кстати знаний, чтобы снять защиту нужно меньше, чем для того, чтобы её поставить.

UGN>Да ну? Сильно сомневаюсь.


см (*)

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


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

Кстати, а может всё-таки разрешить на RSDN такие щекотливые темы, как кракинг в чистом виде — это будет полезно.
Спасибо за внимание
Re[5]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 09:00
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, Слава, Вы писали:


F>[]


С>>Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.


F>Есть у меня мой CrackMe. Хотите попробовать свои силы?


Честно говоря да, только проблема со временем ну и с опытом , потому что стараюсь больше уделять внимания COM, ATL и т.д.
Но если хочешь дать мне поиграться, а не протестировать свои защиты, то шли на мыло в профиле.
Спасибо за внимание
Re[6]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.09.03 09:11
Оценка:
Здравствуйте, Слава, Вы писали:

[]

С>Честно говоря да, только проблема со временем ну и с опытом , потому что стараюсь больше уделять внимания COM, ATL и т.д.

С>Но если хочешь дать мне поиграться, а не протестировать свои защиты, то шли на мыло в профиле.

А с чем там играться? Одна кнопочка с надписью "Crack me!" и окошко ввода рег.кода. С ней не играться надо, а попробовать сломать
Re[7]: Рассуждения на тему защиты программ
От: UGN  
Дата: 11.09.03 09:16
Оценка:
Здравствуйте, Flamer, Вы писали:

F>А с чем там играться? Одна кнопочка с надписью "Crack me!" и окошко ввода рег.кода. С ней не играться надо, а попробовать сломать


Очень интересно, только времени особо нет. Может дома попробую.
А она очень большая? А то загрузи на RSDN, потом потрешь.
И какая цель? KeyGen сделать? Или crack тоже годится?
Re[7]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 09:18
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, Слава, Вы писали:


F>[]


С>>Честно говоря да, только проблема со временем ну и с опытом , потому что стараюсь больше уделять внимания COM, ATL и т.д.

С>>Но если хочешь дать мне поиграться, а не протестировать свои защиты, то шли на мыло в профиле.

F>А с чем там играться? Одна кнопочка с надписью "Crack me!" и окошко ввода рег.кода. С ней не играться надо, а попробовать сломать


Это я имею ввиду, что для меня это не способ зарабатывания, а развлечение с пользой для себя
Спасибо за внимание
Re[6]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 11.09.03 09:27
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, CyberDemon, Вы писали:


CD>>Здравствуйте, Слава, Вы писали:


С>>>Здравствуйте, CyberDemon, Вы писали:


CD>>>>Здравствуйте, Слава, Вы писали:


С>>>>>Здравствуйте, Flamer, Вы писали:


CD>>>>Если можно, мне — интересно почитать


CD>>>>supered[собака]mail.ru


С>>>Отправлял, но вернулось обратно


CD>>Может тогда на cyberdemon[собака]revoltgames.com ?


С>Отправил


Пришло. Спасибо !
Re[5]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 11.09.03 09:28
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, Слава, Вы писали:


F>[]


С>>Зарегистрироваться на хакерском форуме, написать CrackMe и дать его на растерзание, об ошибках узнавать из форума. Согласен, что это подло, но они, обесценивая наш труд поступат ещё подлее.


F>Есть у меня мой CrackMe. Хотите попробовать свои силы?


Свои не попробую, а вот есть спец знакомый — могу ему подкинуть...
Re[5]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 09:41
Оценка:
Здравствуйте, UGN, Вы писали:


UGN>Так нет же! Шифруешь ключом участки кода и нигде коды не сравниваешь!


UGN>Если код неверный, то получишь мусор (GIGO?). Дальше exception и привет.


UGN>А если правильный ключ — то и код будет нормальный.


Прикинь, правильный пользовотель просто ошибается при вводе кода и что, получает exception?
Спасибо за внимание
Re[8]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 11.09.03 09:41
Оценка:
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Flamer, Вы писали:


F>>А с чем там играться? Одна кнопочка с надписью "Crack me!" и окошко ввода рег.кода. С ней не играться надо, а попробовать сломать


UGN>Очень интересно, только времени особо нет. Может дома попробую.

UGN>А она очень большая? А то загрузи на RSDN, потом потрешь.
UGN>И какая цель? KeyGen сделать? Или crack тоже годится?


Загрузил: http://www.rsdn.ru/File/4597/crackme3.zip

Подойдет кейген, крэк или еще что угодно. При правильном взломе должна появляться надпись красного цвета в главном окошке (какая — не скажу ).

З.Ы. То, что взломают — я не сомневаюсь. Мне интересны выводы о слабых местах и пр.
Re[6]: Рассуждения на тему защиты программ
От: UGN  
Дата: 11.09.03 09:49
Оценка:
Здравствуйте, Слава, Вы писали:

С>Прикинь, правильный пользовотель просто ошибается при вводе кода и что, получает exception?


А кто мешает отловить и правильно обработать exception?
Re[7]: Рассуждения на тему защиты программ
От: Слава Израиль  
Дата: 11.09.03 10:40
Оценка:
Здравствуйте, UGN, Вы писали:

UGN>Здравствуйте, Слава, Вы писали:


С>>Прикинь, правильный пользовотель просто ошибается при вводе кода и что, получает exception?


UGN>А кто мешает отловить и правильно обработать exception?


Это рискованно, потому что exception вызвало выполнение мусорной части программы, а вдруг до твоего обработчика просто не дойдёт очередь: бывают случаи, что прога умирает молча, Или гробит систему и тогда перезагрузка. А что может произойти при выполнении мусора ваще тяжело предсказать, особенно, когда распространяешь экземпляры, зашифрованные с разными ключами, а ключи генерируешь и шифруешь экземпляр скриптом, например, когда юзер щёлкает на Download.
Спасибо за внимание
Re[8]: Рассуждения на тему защиты программ
От: UGN  
Дата: 11.09.03 10:54
Оценка:
Здравствуйте, Слава, Вы писали:

С>>>Прикинь, правильный пользовотель просто ошибается при вводе кода и что, получает exception?


UGN>>А кто мешает отловить и правильно обработать exception?


С>Это рискованно, потому что exception вызвало выполнение мусорной части программы, а вдруг до твоего обработчика просто не дойдёт очередь: бывают случаи, что прога умирает молча, Или гробит систему и тогда перезагрузка. А что может произойти при выполнении мусора ваще тяжело предсказать, особенно, когда распространяешь экземпляры, зашифрованные с разными ключами, а ключи генерируешь и шифруешь экземпляр скриптом, например, когда юзер щёлкает на Download.


Ну не надо все так буквально понимать!!!
Можно CRC (или аналог) участка кода посчитать, чтобы откровенную чушь на исполнение не отдавать.
Можно также расшифровывать некоторые значения, используемые в качестве операндов -- т.е. инструкции будут безопасные, а вот их исполнение гарантированно вызовет исключение, если операнды будут неверными.
Re[6]: Рассуждения на тему защиты программ
От: Sergey Россия  
Дата: 11.09.03 11:26
Оценка:
Hello, Слава!
You wrote on Thu, 11 Sep 2003 09:41:32 GMT:

UGN>> А если правильный ключ — то и код будет нормальный.


С> Прикинь, правильный пользовотель просто ошибается при вводе кода и что,

С> получает exception?


Просто защита должна быть многоуровневой. При вводе кода пользователем — простая проверка, откусываемая за 5 минут под отладчиком. Во время работы — периодически должны выполняться более серьезные проверки, приводящие в случае неудачи в том числе и к AV.

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[5]: Рассуждения на тему защиты программ
От: OlegSv2 Россия  
Дата: 11.09.03 18:09
Оценка:
Здравствуйте, UGN, Вы писали:

UGN>Если код неверный, то получишь мусор (GIGO?). Дальше exception и привет.


Ну в реальности проверяется CRC расшифрованного участка, а раз не совпадает,
и выполнять мусор не придется, ну и само сабой привет
... << RSDN@Home 1.0 beta 6a >>
Re[9]: Рассуждения на тему защиты программ
От: UGN  
Дата: 12.09.03 08:45
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Загрузил: http://www.rsdn.ru/File/4597/crackme3.zip


F>Подойдет кейген, крэк или еще что угодно. При правильном взломе должна появляться надпись красного цвета в главном окошке (какая — не скажу ).


За час не сломал. Найденный на полке антиквариат в виде W32dasm не сильно хорош в качестве отладчика.

Так что накопал не много. Но час удовольствия получил. Особенно от периодически возникающей надписи "Блин, ну скока можно байтики менять!".

Очень даже не плохо!
Re[10]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 12:04
Оценка:
Здравствуйте, UGN, Вы писали:

[]

UGN>За час не сломал. Найденный на полке антиквариат в виде W32dasm не сильно хорош в качестве отладчика.


UGN>Так что накопал не много. Но час удовольствия получил. Особенно от периодически возникающей надписи "Блин, ну скока можно байтики менять!".



Здесь пока тоже до конца не сломали... Хотя прошли полпути...


UGN>Очень даже не плохо!


Спасибо, я старался...
Re[11]: Рассуждения на тему защиты программ
От: CyberDemon Россия  
Дата: 12.09.03 12:26
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, UGN, Вы писали:


F>[]


UGN>>За час не сломал. Найденный на полке антиквариат в виде W32dasm не сильно хорош в качестве отладчика.


UGN>>Так что накопал не много. Но час удовольствия получил. Особенно от периодически возникающей надписи "Блин, ну скока можно байтики менять!".



F> Здесь пока тоже до конца не сломали... Хотя прошли полпути...



UGN>>Очень даже не плохо!


F>Спасибо, я старался...


Как я и обещал, я своему знакомому профи подкинул задачку. Не знаю, сколько он с ней возился (не долго, может, полчаса — не знаю), но потом он сказал, что защиты там, собственно и нету Не знаю, как понимать эти слова. Вероятно, он просто привык копать профессиональные защиты
Re[12]: Рассуждения на тему защиты программ
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 12:32
Оценка:
Здравствуйте, CyberDemon, Вы писали:


[]

CD>Как я и обещал, я своему знакомому профи подкинул задачку. Не знаю, сколько он с ней возился (не долго, может, полчаса — не знаю), но потом он сказал, что защиты там, собственно и нету Не знаю, как понимать эти слова. Вероятно, он просто привык копать профессиональные защиты


Где правильно работающий ключ? Или кейген? Какая надпись появляется? Дайте мне ответы, плз... И прошу учесть, что это только демонстрация защиты, а не сама защита Есть еще много хороших мыслей...
Re[13]: Рассуждения на тему защиты программ
От: UGN  
Дата: 17.09.03 07:55
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Где правильно работающий ключ? Или кейген? Какая надпись появляется? Дайте мне ответы, плз... И прошу учесть, что это только демонстрация защиты, а не сама защита Есть еще много хороших мыслей...


Ну, что? Хоть кто-нибудь до конца добил?
Re[15]: Рассуждения на тему защиты программ
От: Аноним  
Дата: 17.09.03 14:03
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, UGN, Вы писали:


UGN>>Здравствуйте, Flamer, Вы писали:


F>>>Где правильно работающий ключ? Или кейген? Какая надпись появляется? Дайте мне ответы, плз... И прошу учесть, что это только демонстрация защиты, а не сама защита Есть еще много хороших мыслей...


UGN>>Ну, что? Хоть кто-нибудь до конца добил?


F>Неа, пока нет таких... Видите-ли, крекерам неинтересно ломать проги по типу крэкме (это мне было сказано на крекерском сайте) Правда, я мыслю, что неинтересно совсем по другой причине


F>З.Ы. В общем — пока не сломана...


А ты в какие крякерские форумы постил-то? Попробуй на www.reversing.net IMHO там очень квалифицированные люди попадаются
Re[2]: Рассуждения на тему защиты программ
От: Зверёк Харьковский  
Дата: 18.09.03 11:59
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Flamer, Вы писали:


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


С>Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой. Могу выслать на мыло в формате doc и с хреновым качеством


ой, а можно и мне ? zverok@kengu.ru
FAQ — це мiй ай-кью!
Re: Рассуждения на тему защиты программ
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 19.09.03 06:32
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Хотелось бы большего: шифровать не тело функции, но саму функцию, т.е. включая ее пролог/эпилог. Для того, хотя бы, чтобы скопировать нужный кусок в память, расшифровать->выполнить->затереть другим куском.


F>Вот только, естественно, если я вынесу АСМовые меточки за пределы функции, то опаньки, не срастется... Как бы это решить?


Я пару лет назад писал статью по поводу шифрования
http://www.delphikingdom.com/mastering/safe/birdmigration.htm
там есть ответ на твой вопрос.

Там же кстати описано как такие защиты ломаются.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[2]: Рассуждения на тему защиты программ
От: Lexey Россия  
Дата: 19.09.03 10:54
Оценка:
Здравствуйте, Слава, Вы писали:

С>Значит так. Чтобы такие вопросы не возникали нужно внимательно и вдумчиво прочитать книгу Касперского "Технологии и механизмы хакерских атак" там подробно описываются методы защиты, а потом методы снятия этой защиты, а потом способы борьбы с этими методами, а потом способы нейтрализации этих способов , а потом..., .... А где-то в середине вскольз упоминается, что шифровать код — это в настоящее время отстой. Могу выслать на мыло в формате doc и с хреновым качеством


Вышли мне тоже, pls. На lexey[глюк]isa.ru.
"Будь достоин победы" (c) 8th Wizard's rule.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.