Описание методов регистрации программ и их защита от отладчиков

Тема в разделе "WASM.SOFTWARE", создана пользователем zuze, 5 дек 2009.

  1. zuze

    zuze New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2008
    Сообщения:
    18
    Описание методов регистрации программ:
    1. Задание пароля как константы в коде программы и сравнивание её со введённым значением.
    2. На основании имени пользователя, а иногда и фирмы специальная функция создаёт регистрационный номер.
    3. Регистрационный номер выдаётся при покупки программного обеспечения и проверяется в он-лайн режиме.

    Вроде там был ещё методы защиты как у программ 3D Studio MAX и BPWin или ERWin, а может и ещё какие методы есть, но я к сожалению не знаю как их правильно написать.

    Не могли бы Вы дописать список или сказать, где это можно почитать?

    Описание защиты этих методов от отладчиков:
    1. Ключевую информацию передавать в виде аргумента функции (защита размывается по всему коду).
    2. А ещё лучше если переменные которые раньше хранили ключевую информацию в дальнейшем используются для
    хранения служебных данных, обращения к которым максимально частое (это не позволит быстро отделить защитный
    механизм от прикладного кода).
    3. Поменять первые четыре байта ключа (Заглушка), обращение к которым либо вовсе не происходит, либо
    производится имитатором защиты.
    4. Шифрование критическую часть кода (При выходе в каждую функцию она расшифровывается, а при выходе
    зашифровывается вновь).
    5. Защита от точек останова:
    5.1 Вызвать стандартные функции из NTDLL.DLL или обратиться напрямую к ядру вызовом прерывания INT 0x2Eh, а ещё
    лучше это прерывание положить в блок _try, а также это исключение можно использовать для взаимодействия
    компонентов (Тогда будут затруднения в определении межу защитным механизмом и прикладным кодом).
    5.2 Защита функций из модулей USER и GDI.
    5.3 Скопировать системные функции в свой собственный стек и передать на них управление.

    Правильно ли я описал защиту, если нет подправьте меня и если что то не указал дополните пожалуйста?