Подтвердить что ты не робот

Как развиваются серийные генераторы/трещины?

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

Просто для любопытства.

4b9b3361

Ответ 1

Помимо незаконности, это очень сложная задача.

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

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

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

Чтобы создать кейген, вам нужно понять алгоритм и написать программу, чтобы повторить то же вычисление (я помню старую версию MS Office, чей серийный номер имел очень простое правило, сумма цифр должна была быть кратное 7, поэтому писать кейген был довольно тривиальным).

Оба действия требуют, чтобы вы следили за выполнением приложения в отладчике и пытались выяснить, что происходит. И вам нужно знать API низкого уровня вашей операционной системы.

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

В сущности это нечто, что требует очень глубоких знаний, изобретательности и много времени! О, я упоминал, что это незаконно в большинстве стран?

Если вы хотите узнать больше, Google для + ORC Cracking Tutorials, они очень старые и, вероятно, бесполезны в наши дни, но дадут вам хорошее представление о том, что это значит.

В любом случае, очень хорошая причина знать все это, если вы хотите написать свою собственную схему защиты.

Ответ 2

Плохие парни ищут код проверки ключа с помощью дизассемблера. Это относительно легко, если вы знаете, как это сделать.

Затем вы переводите код проверки ключа на C или на другой язык (этот шаг является необязательным). Реверсирование процесса проверки ключей дает вам генератор ключей.

Если вы знаете ассемблер, для обучения этому нужно примерно выходные, чтобы узнать, как это сделать. Я делал это всего несколько лет назад (никогда не выпускал ничего, это было просто исследование моей работы по разработке игр. Чтобы написать жесткий ключ, вы должны понять, как люди подходят к взлому).

Ответ 3

Nils отправляет сделки с генераторами ключей. Для трещин обычно вы найдете точку ветвления и инвертируете (или удаляете условие) логику. Например, вы проверите, будет ли программное обеспечение зарегистрировано, и тест может вернуть нуль, если это так, а затем соответственно перейти. Вы можете изменить "прыжок, если равен нулю (je)", чтобы "прыгать, если не равен нулю (jne)", изменяя один байт. Или вы можете писать no-операции над различными частями кода, которые делают то, что вы не хотите делать.

Скомпилированные программы могут быть разобраны и с достаточным временем, определенные люди могут разрабатывать двоичные патчи. Трещина - это просто двоичный патч, чтобы заставить программу вести себя по-другому.

Ответ 4

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

Для этого используется несколько методов. Вы можете выполнить код в отладчике, что обычно требует достойного знания сборки. Используя это, вы можете получить представление о том, где в программе вызывается защита от копирования/методы генерации ключей. При этом вы можете использовать дизассемблер, например IDA Pro, чтобы более внимательно проанализировать код и попытаться понять, что происходит, и как вы можете обходите его. Я предварительно взломал бета-версию с ограничением по времени, вставив инструкции NOOP на проверку даты.

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

Ответ 5

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

Другой альтернативой является поиск функций, возвращающих "true", если серийный номер действителен и "false", если это не так, затем создайте двоичный патч, чтобы функция всегда возвращала "true".

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

Ответ 6

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

Что касается взлома, я имел обыкновение проходить через программы на высоком уровне и искать точку, где она перестала работать. Затем вы возвращаетесь к последнему "Звонку", который преуспел, и входите в него, а затем повторяйте. Тогда защита от копирования обычно записывалась на диск и видя, удалось ли выполнить последующее чтение (если это так, защита от копирования не удалась, потому что они использовали для записи части дискеты с помощью лазера, поэтому ее нельзя было записать).

Тогда это был вопрос поиска правильного вызова и жесткого кодирования правильного возвращаемого значения из этого вызова.

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

Ответ 7

Интересно, почему они не просто распространяют персонализированные двоичные файлы, где имя владельца где-то хранится (зашифровано и запутано) в двоичном или лучше распределенном по всему двоичному файлу. AFAIK Apple делает это с файлами музыки из магазина iTunes, однако там слишком легко удалить имя из файлов.

Ответ 8

Я предполагаю, что каждая трещина отличается, но я предполагаю, что в большинстве случаев кто-то проводит много времени в отладчике, отслеживающем рассматриваемое приложение.

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