Це досить просто, вам просто потрібно запустити MD5 або SHA256 на власному виконуваному файлі, тоді, коли ви виявите, що підпис змінився з того, що ви жорстко закодували у бінарний файл після того, як ви створили остаточний реліз, тоді його зрозуміло хтось зламав ваш виконуваний файл. Тоді більшість компаній більше не показують спливаюче вікно (це було раніше), де говориться про "зламане ПЕ" або "виявлений вірус", а потім виходять з гри, тому що це буде дуже швидко протидіяти хакерам. Оскільки гра призупинена в циклі повідомлень діалогового вікна, то миттєво побачимо, через яку гілку діалогове вікно з'явилося, і просто обійти гілку, змінивши код при перевірці умови.
Сьогодні компанії використовують дуже тонкі зміни в геймплеї, як, наприклад, примножують життя монстрів, щоб зробити гру неможливою або неймовірно спритно інтегрованою в цю гру управління, де ви керуєте ігровою компанією і втрачаєте врешті-решт, тому що занадто багато гравців пірати вашу гру. Приємна місія в цій справі. Іноді це просто отримує червоний прапор, завантажений на сервери компанії, і коли ви хочете зателефонувати їм на підтримку, ви отримаєте промову або потрапите в розкриття своєї особи.
але це все в темі, техніка хеширования. і ці перевірки можна проводити в багатьох місцях бінарного файлу, так що якщо хакери знайдуть його і очистять, його недостатньо.
EDIT: Якщо ви просто скопіюєте гру такою, якою є, вона може спрацювати, якщо в грі взагалі немає заходів проти піратства. Він працював із дуже старими іграми, до епохи записувачів компакт-дисків. Ось чому більшу частину часу гру потрібно встановлювати, а не просто копіювати папку інсталяції. Це включає приховані файли, поміщені трохи скрізь у системі, та ключі реєстру. Гра перевіряє наявність цих речей, які може створити тільки інсталятор. І інсталятор може бути запущений лише з компакт-диска, який не підлягає копіюванню через помилкові біти, які не поважають систему коду виправлення помилок у перших байтах диска, що вбиває більшість драйверів програвачів CD. Деякі програмні засоби для копіювання, як-от nero of alkohol, пропонують вам ігнорувати помилки, але те, що вони спалюють, - це виправлена копія, інсталятор виявляє це і там ви переходите знову.
EDIT2:
Питання: як хеш-файл, а потім вставити хеш у файл, який змінює хеш?
@ Byte56: Чорт забираємо, ми тут отримуємо розумні коментарі :) Так, це парадокс, і його неможливо вирішити. Тому хеш повинен бути зроблений на тій частині двійкового файлу, яка не містить хеш. І контрольний код повинен це знати, щоб виключити цю зону, коли хешить самоперевірку. Я бачив людей, що використовують теги, наприклад, ~~ #### [ставлять сюди хеш] #### ~~, щоб укласти свій хеш і зробити виключення. Але у нього є недолік, що його легко помітити для хакерів, тому хеш повинен бути зашифрований і розпорошений в декількох місцях. Навіть зашифрований, чому б і ні, та сама операція маскування йде для зберігання приватного ключа.