Товарищи матёрые крякеры, поломавшие одну или несколько программ! Пожалуйста, поделитесь своим опытом об этом нелёгком, но интересном искусстве...
Какие есть подводные камни? Советы?
Спасибо.
Это использование нескоьких потоков, которые будут преобразовывать
полученные данные. Например: пользователь ввёл пароль, твоя прога
его получила, SI это засёк, один поток преобразует пароль (например,
после каждой буквы вставляет число, генерируемое по спец. формуле).
Что сделает SI ? Он может вообще не засечь второго потока. Но
опытный крякер догадается, что где-то происходит изменение данных.
А теперь подумаем: сколько точек останова можно поставить с
использованием отладочных регистров (DR0-DR7; DR0-DR3 - служат для
установки брейкпоинтов; DR4 и DR5 - зарезервироаны, DR6 - частично
зарезервирован; DR7 - задаёт режим работы других регистров,
содержащих точки останова) ? Правильно - четыре. А что тебе мешает
организовать больше четырёх потоков ? Ничего ! И вот тут даже
опытный крякер приплывает. Ты спросишь: "А что мешает крякеру
установить программную точку останова" ? Т.е., почему взломщик не
сможет после каждой команды вызывать "int 01h" без использования
трассировочных регистров (это и есть программная точка останова) ?
А то, что программная точка останова модифицирует код. А то, что
код изменился, можно запросто узнать, подсчитав его контрольную
сумму CRC.
Вернуться в Hacking & Cracking
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2