Если приложение запущено на чужом компьютере, вы не можете запретить его исправление. Вы можете сделать это сложнее, но это игра в оболочку: вы не можете выиграть. Независимо от того, насколько сложным вы это сделаете, какой-то парень посчитает это интересным испытанием, чтобы сломать вашу защиту, и он добьется успеха. Тогда всем остальным просто нужно скачать его версию. Самая экстремальная форма защиты от патчей сегодня - это Skype (из тех, что я знаю). Это безумно сложно, и все же оно сломано.
Поскольку ваше приложение, по-видимому, работает в режиме онлайн, вы можете спросить себя , почему вы хотите предотвратить исправления в первую очередь (возможно, для того, чтобы запретить пользователю вводить некоторые неверные значения? Или запретить им видеть некоторые информация, которая присутствует в программе?), а затем создайте свою программу так, чтобы все, что вы хотите скрыть или проверить, происходило на сервере.
Например, если это игра, и вы хотите, чтобы игроки не могли ее взломать, чтобы узнать, где находятся другие игроки: измените сервер так, чтобы он отправлял информацию о координатах только тем игрокам, которых вы уже видите.
Другой пример: если это интернет-магазин, и вы хотите, чтобы пользователи не отправляли заказы на покупку с неверными ценами, проверьте цены на сервере.
Единственное исключение, если вы управляете оборудованием, на котором работает программа. Но даже там очень трудно сделать это правильно (см .: XBox, PS3 и многие другие консоли, которые пытались это сделать и потерпели неудачу). Вероятно, все же лучше использовать архитектуру клиент / сервер, чем делать ставки на «доверенные вычисления».