É muito fácil, você só precisa executar um MD5 ou SHA256 em seu próprio executável; quando detectar que a assinatura mudou do que você codificou no binário após criar a versão final, é claro que alguém cortou o seu executável. Então a maioria das empresas não mostra mais apenas um pop-up (era o caso antes) que diz "PE quebrado" ou "vírus detectado" e sai do jogo, porque isso será contra-rachado muito rapidamente, por hackers. Como o jogo está pausado no loop de mensagens da caixa de diálogo, é imediato ver por qual ramificação a caixa de diálogo foi exibida e ignorar a ramificação alterando o código na verificação de condição.
Hoje, as empresas usam mudanças muito sutis na jogabilidade, como multiplicar a vida dos monstros para tornar o jogo impossível de jogar, ou incrivelmente inteligente neste jogo de gerenciamento, onde você administra uma empresa de jogos e acaba perdendo porque muitos jogadores estavam pirateando seu jogo. Nice mise en abyme neste caso. Às vezes, apenas recebe uma bandeira vermelha carregada nos servidores da empresa e, quando você deseja chamá-los para obter suporte, recebe um discurso ou fica preso em revelar sua identidade.
mas isso é tudo tópico, a técnica é hash. e essas verificações podem ser executadas em muitos lugares no binário, de modo que, se os hackers encontrarem uma e a limparem, não será suficiente.
EDIT: Se você apenas copiar o jogo como está, ele poderá funcionar se o jogo não tiver nenhuma medida antipirataria. Ele estava trabalhando com jogos muito antigos, antes da era dos gravadores de CD. É por isso que, na maioria das vezes, o jogo precisa ser instalado para rodar, não apenas a pasta de instalação copiada. Isso envolve arquivos ocultos colocados um pouco em todo lugar no sistema e chaves de registro. O jogo verifica a presença dessas coisas, que só podem ser criadas pelo instalador. E o instalador só pode ser executado a partir do CD, que não é copiável por causa de bits irregulares que não respeitam o sistema de códigos de correção de erros nos primeiros bytes do disco, o que mata a maioria dos drivers de CD player. Alguns softwares de cópia, como o nero de álcool, propõem que você ignore os erros, mas o que eles queimam é uma cópia corrigida, o instalador detecta isso e pronto.
EDIT2:
P: como fazer o hash de um arquivo e depois inseri-lo no arquivo que altera o hash?
@ Byte56: Porra, estamos recebendo comentários inteligentes aqui :) Sim, é um paradoxo e não pode ser resolvido. Portanto, o hash deve ser feito por parte do binário que não contém o hash. E o código de verificação precisa saber disso, para excluir essa zona ao fazer o hash da verificação automática. Vi pessoas usando tags, como ~~ #### [colocar hash aqui] #### ~~ para incluir seu hash e fazer a exclusão. Mas ele tem a falha de ser fácil de detectar para hackers; portanto, o hash precisa ser embaralhado e espalhado em vários locais. Mesmo criptografada, por que não, e a mesma operação de camuflagem vai para armazenar a chave privada.