Здравствуйте, TarasCo, Вы писали:
TC>1) Обычно отладчики "используемые для взлома" "контроллируют" все процессы системы и могут влезть в любое адресное пространство — например SoftIce
TC>2) И в любом случае, если пользователь имеет привелегию на отладку, он может отлаживать любой процесс, к которому имеет доступ. Этого можно избежать подправив список доступа, но это не спасает от п.1
TC>Стратегий защиты может быть две:
TC>1) Усложнение дизассемблирования и патча кода ( это всякие сжимальщики, путальщики, шифровальщики — вариантов много )
TC>2) Обнаружение присутствия отладчиков типа SoftIce и борьба с ними. Это несколько задержит взломщиков.
TC>Общие советы:
TC>Защититься от взлома невозможно. Если цель — защититься от нелегального распротстранения, это мало реально
. Если целью стоит защита алгоритма — смотрите в сторону средств, затрудняющих реверс кода. Расковырять весь алгоритм гораздо сложнее, чем взломать "проверялку ключа" и трудоемкость этого процесса отпугнет потенциальных злодеев
.
у меня недавно появилась следующая идея по защите своих продуктов:
В ресурсы основной программы затолкнуть ЕХЕ-шник (назову его Checker), который будет проверять правильность введенного серийного кода. То есть основная программа пишет в разделяюмую память введенный серийник и после этого запускает Checker, который считывает данные из этой разделяемой памяти, проверяет информацию на валидность, пишет результат проверки в эту же память, спокойно завершается, а основная программа может читать результаты из разделяемой памяти. Конечно, идеально защиты не существует, это и не есть моей целью, но можно стараться сделать ее как можно лучше (запутанее). Вот только при отсутствии опыта взлома программ мне очень тяжело оценить, видерживает данная схема хоть какую-нибудь критику, или же взломщику будет все это по барабану? Прошу высказать свое мнение по этому поводу.