Как реализовать проверку целостности программы?
1. Обычно считается контрольная сумма секции кода, а эталонная сумма храниться в секции данных.
2. Можно занопить, поэтому используют всякое шифрование кусков кода, а в момент исполнения - расшифровывают.
На самом деле стопроцентной защиты нет и быть не может. Просто стоимость взлома должна быть больше стоимости программы. Никто не будет тратить неделю на взлом программы, которая стоит 50 рублей.
1 момент - допустим мы посчитали хеш файла, но как только мы будем записывать константу в код - сумма файла изменится.
Хеш можно хранить отдельно.