За почти 8 лет существования tPORt эта папка достаточно хорошо наполнилась. Если тут есть представитель TPoDT, хотел бы услышать, когда была организована эта команда.
Тема очень интересная, но как справедливо было подмечено автором, в случае такой защиты гораздо проще сделать crack, а не keygen. Интересно было бы почитать статью про более «изощеренные» методы защиты, которую не обрушишь, сменив пару байт.
Отлюбителей патчи писать только одна зашита — использовать результаты проверки и временные значения при вычислениях в дальнейшей работе программы. Чем обильней все это будет размазано во времени возникновения и по коду, тем больше шансов что крякеру будет не охота этим заниматься. Интереса тут никакого, разве что коммерческие цели.
Я собственно так и поступаю, ну еще иногда контролирую код через чексумму. Не так давно кстати ломал программу (исключительно в благих целях продления триала который проворонил), там таких проверок оказалось аж три, друг на дружку. Нужно заметить, это раздражает :)
Проверка временных отсечек не спасет от анализа. Во-первых можно проанализировать и в статике, а во-вторых есть плагины к дебагерам, которые правят ответы rdtsc и других функций получения времени.
А вот crc годно, но опять же надо использовать несколько агоритмов, и распределить их проверки равномерно по всему приложению.
А вообще в последнее время лучшая защита приложения, это когда его стоимость меньше затрат на взлом.
Все можно проанализировать, другое дело насколько сложно это становится, ведь патчи как правило редко когда профи пишут, скорее это люди с небольшим багажем знаний.
Если же говорить например про виндоус, где таймеры в программах редкое явление и ежесекундно не появляются десятками участки кода по нему работающие (как например в мак ос), то можно использовать счетчики (и не обязательно последовательные) на вызов какой-либо функции/группы функций. Самая большая проблема — завуалировать факт использования результатов работы алгоритма, чтобы не светилась сражу же в листинге какая-нибудь глобальная переменная.
Патчами пользуются в случаи когда нужно как можно больше наклепать релизов, или не заворачиваться с методами взлома, если стоит цель просто убрать ограничения, или же когда ломают за деньги, когда та же цель просто сломать побыстрее и получить свои вмз.
Не спорю, я тоже ее еще не пробовал снимать. Но на сколько мне известно есть Themida RISC decoder. Хотя большинство не заморачиваются и делают inline патчи
Проще взять, выдрать дизассемблером процедуру генерации серийника целиком, и вставить в сишный код, используя встроенный ассемблер, либо целиком на ассемблере простую программку накатать. Разбираться в деталях алгоритма генерации как-то лениво.
Далеко не для каждого алгоритма такое можно сделать. Обычно не применяется схема, когда генерируется верный серийник и сравнивается с введёным, а проверяется на соответствие некоторым признакам без генерации валидного серийника.
Как я уже сказал — если целью является поскорей зарелизить keygen или crack, то такое очень даже подходит. Но я не занимаюсь релизами, и у меня интерес другой — мне интересно узнать именно как устроена защита той или иной проги, или алгоритм генерации ее ключа.
Потому что Olly я пользуюсь уже более 5 лет, и привык, а Syser'ом только от случая к случаю. Он несколько для других задач. Хотя, как я недавно заметил, у них на сайте появилась версия для отладки только в ring3, но удобством она не отличается. Я не отношусь к old school, которые начинали с softice
Syser применим для всех задач, для которых используется OllyDbg. Другое дело, что это китайское творение не совсем заменило SoftICE, мир праху ему… но се ля ви. Ну я в чем-то согласен, если не нужно лезть слишком глубоко — олли верный и самый простой выбор.
Хоть я когда-то и пользовался софтайсом, я с радостью с ним попрощался, когда познакомился с Олли, т.к. лезть за пределы ring3 в большинстве случаев необходимости нет, а по комфорту и эффективности отладки Олли и тогда и сейчас (для меня) — лидер.
Анализ keygenme от TPoDT #2