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?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.