Не пытайтесь создать систему серийных номеров с нуля без использования криптографии с открытым ключом. Взломать его и создать кейген будет детской игрой, независимо от того, насколько сложным вы считаете свой алгоритм.
Я рекомендую библиотеку Aquatic Prime , которая использует шифрование с открытым ключом. Вы должны использовать версию библиотеки Core Foundation C, а не библиотеку Objective-C, поскольку Obj-C смехотворно легко обойти. Вы также должны статически ссылаться на код, а не использовать отдельную структуру. Обратите внимание, что Aquatic Prime не является законченным решением и не занимается запутыванием проверок лицензии в вашем коде.
Очень важно, чтобы вы не создавали ни одного метода Objective C с именем что-то вроде ‑isRegistered
и возвращали бы BOOL
. Это тривиально, чтобы взломать.
Вместо этого используйте несколько различных функций C (предпочтительно макросов), которые разбросаны по всему коду и проверяют различные аспекты кода регистрации. Например, вы должны проверить, что неверный код не прошел тест на регистрацию, чтобы убедиться, что ваш код не был изменен. Вы также можете создать контрольную сумму бинарного файла вашего приложения и проверить, чтобы оно не было исправлено.
Существует множество других методов, которые можно использовать для повышения надежности кода проверки регистрации. Я рекомендую поискать в архивах MacSB Yahoo group , которые полны информации по этой теме.