Как стать автором
Обновить

Комментарии 24

Дык все тут начали писать, что Хабр уже не торт, технических статей нет, попса да обзоры. Ну вот вам, кушайте, не обляпайтесь тортом)
Это Assembler, не надо так удивляться…
Название тимы очень смахивает на название нашей тимы, к чему бы это?
Ох, здрасьте! У вас папка _private_ все еще пустая?
За почти 8 лет существования tPORt эта папка достаточно хорошо наполнилась. Если тут есть представитель TPoDT, хотел бы услышать, когда была организована эта команда.
Я не от них, но тиме уже более года. По первой всё время читал их название как тпорт.
Тема очень интересная, но как справедливо было подмечено автором, в случае такой защиты гораздо проще сделать crack, а не keygen. Интересно было бы почитать статью про более «изощеренные» методы защиты, которую не обрушишь, сменив пару байт.
Этож keygenme, в них редко делают защиту от крэков.
Отлюбителей патчи писать только одна зашита — использовать результаты проверки и временные значения при вычислениях в дальнейшей работе программы. Чем обильней все это будет размазано во времени возникновения и по коду, тем больше шансов что крякеру будет не охота этим заниматься. Интереса тут никакого, разве что коммерческие цели.

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

А вот crc годно, но опять же надо использовать несколько агоритмов, и распределить их проверки равномерно по всему приложению.

А вообще в последнее время лучшая защита приложения, это когда его стоимость меньше затрат на взлом.
Все можно проанализировать, другое дело насколько сложно это становится, ведь патчи как правило редко когда профи пишут, скорее это люди с небольшим багажем знаний.
Если же говорить например про виндоус, где таймеры в программах редкое явление и ежесекундно не появляются десятками участки кода по нему работающие (как например в мак ос), то можно использовать счетчики (и не обязательно последовательные) на вызов какой-либо функции/группы функций. Самая большая проблема — завуалировать факт использования результатов работы алгоритма, чтобы не светилась сражу же в листинге какая-нибудь глобальная переменная.
Патчами пользуются в случаи когда нужно как можно больше наклепать релизов, или не заворачиваться с методами взлома, если стоит цель просто убрать ограничения, или же когда ломают за деньги, когда та же цель просто сломать побыстрее и получить свои вмз.
Виртулка типа темиды, и большинство приезжает сразу…
Не спорю, я тоже ее еще не пробовал снимать. Но на сколько мне известно есть Themida RISC decoder. Хотя большинство не заморачиваются и делают inline патчи
Проще взять, выдрать дизассемблером процедуру генерации серийника целиком, и вставить в сишный код, используя встроенный ассемблер, либо целиком на ассемблере простую программку накатать. Разбираться в деталях алгоритма генерации как-то лениво.
Далеко не для каждого алгоритма такое можно сделать. Обычно не применяется схема, когда генерируется верный серийник и сравнивается с введёным, а проверяется на соответствие некоторым признакам без генерации валидного серийника.
Как я уже сказал — если целью является поскорей зарелизить keygen или crack, то такое очень даже подходит. Но я не занимаюсь релизами, и у меня интерес другой — мне интересно узнать именно как устроена защита той или иной проги, или алгоритм генерации ее ключа.
Почему OllyDbg а не Syser? Для ring3 достаточно, но это ведь далеко не всегда бывает…
Потому что Olly я пользуюсь уже более 5 лет, и привык, а Syser'ом только от случая к случаю. Он несколько для других задач. Хотя, как я недавно заметил, у них на сайте появилась версия для отладки только в ring3, но удобством она не отличается. Я не отношусь к old school, которые начинали с softice
Syser применим для всех задач, для которых используется OllyDbg. Другое дело, что это китайское творение не совсем заменило SoftICE, мир праху ему… но се ля ви. Ну я в чем-то согласен, если не нужно лезть слишком глубоко — олли верный и самый простой выбор.
У сисера юзабилити похуже, и если можно обойтись без него, то лучше его не юзать.
Хоть я когда-то и пользовался софтайсом, я с радостью с ним попрощался, когда познакомился с Олли, т.к. лезть за пределы ring3 в большинстве случаев необходимости нет, а по комфорту и эффективности отладки Олли и тогда и сейчас (для меня) — лидер.
Для любителей C я специально сделал комментарии на C-подобном псевдокоде.

Я то думаю, что за волшебный софт у автора =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации