Это довольно просто, вам просто нужно запустить MD5 или SHA256 на вашем собственном исполняемом файле, а затем, когда вы обнаружите, что сигнатура изменилась по сравнению с тем, что вы жестко закодировали в двоичный файл после того, как вы создали окончательный выпуск, то ясно, что кто-то взломал ваш исполняемый файл. Тогда большинство компаний просто не показывают больше всплывающего окна (как это было раньше), которое говорит «сломанный PE» или «обнаружен вирус», и затем выходит из игры, потому что это будет очень быстро взломано, если хакеры. Поскольку игра приостановлена в цикле сообщений диалогового окна, поэтому сразу видно, из какой ветви выскочил диалог, и просто пропустите ветку, изменив код при проверке состояния.
Сегодня компании используют очень тонкие изменения в игровом процессе, например, умножают жизнь монстров, чтобы сделать игру непригодной для игры или невероятно умно интегрированы в эту игру управления, в которой вы управляете игровой компанией, и в конечном итоге вы проигрываете, потому что слишком много игроков нападают на вашу игру. Хороший Mise En Abyme в этом случае. Иногда он просто загружает красный флажок на серверы компании, и когда вы хотите обратиться к ним за поддержкой, вы получаете речь или попадаете в раскрытие вашей личности.
но это все тема, техника хэширования. и эти проверки могут выполняться во многих местах двоичного файла, так что если хакеры найдут один и очистят его, его недостаточно.
РЕДАКТИРОВАТЬ: Если вы просто скопируете игру как есть, она может сработать, если в игре вообще нет мер по борьбе с пиратством. Это работало с очень старыми играми, до начала записи CD. Вот почему большую часть времени игра должна быть установлена для запуска, а не только скопированная папка установки. Это включает в себя скрытые файлы, помещенные немного повсюду в системе, и ключи реестра. Игра проверяет наличие этих вещей, которые могут быть созданы только установщиком. И установщик может быть запущен только с компакт-диска, который не может быть скопирован из-за ошибочных битов, которые не учитывают систему кодирования с исправлением ошибок в первых байтах диска, что убивает большинство драйверов проигрывателя компакт-дисков. Некоторые программы копирования, такие как nero ofcohol, предлагают вам игнорировать ошибки, но то, что они записывают, является исправленной копией, установщик обнаруживает это, и вы снова идете.
EDIT2:
Q: как хешировать файл, а затем вставить хеш в файл, который меняет хеш?
@ Byte56: Черт, мы получаем здесь разумные комментарии :) Да, это парадокс, и его нельзя решить. Таким образом, хеш должен быть сделан со стороны двоичного файла, который не содержит хеш. И код проверки должен это знать, чтобы исключить эту зону при хешировании для самопроверки. Я видел людей, использующих теги, такие как ~~ #### [вставьте хэш здесь] #### ~~, чтобы заключить их в хэш и сделать исключение. Но у него есть недостаток: его легко обнаружить хакерам, поэтому хеш нужно разбирать и разбрасывать по разным местам. Даже зашифрованный почему бы и нет, и та же самая операция маскировки идет, чтобы сохранить закрытый ключ.