Защита исполняемого файла от исправления - PullRequest
2 голосов
/ 26 августа 2009

Моя логика APT (технология Anti-Paching) следующая ...

1) Сохраните на сервере MSSQL хэш md5 исполняемого файла для защиты.

2) Выполните сравнение md5 (при запуске моего приложения) найденного на сервере хэша с самим исполняемым файлом.

3) Если сравнение не удается, выйдите из приложения без вывода сообщений.

И все вышеперечисленное, прежде чем оно будет окончательно отправлено!

Я имею в виду, как лучше всего защитить файл от исправлений? Без использования готовых инструментов (.net реактор, виртуализатор и т. Д.)

Редактировать: Что-то еще только что пришло мне в голову.

Есть ли способ проверить целостность приложения на стороне сервера? Я имею в виду, что мое приложение работает только онлайн. Могу ли я выполнить на сервере (моем домене) что-нибудь, что могло бы проверить целостность приложения?

Ответы [ 6 ]

5 голосов
/ 26 августа 2009

Дело в том, что взломщик исправит приложение точно на шаге 2, удалив хэш-код проверки.

Так что я бы не назвал это очень эффективным против серьезных взломщиков.

РЕДАКТИРОВАТЬ: я думаю, что ваша лучшая ставка - это глубокая защита, учитывая, что ваше приложение должно быть онлайн, я бы:

  • Требовать аутентификацию: аутентифицировать пользователей, возможно, с помощью криптографического ключа, и требовать проверку ключа для получения / отправки данных.
  • Запутывание: это усложняет взломщикам.
  • Продолжение проверок: Помимо проверки того, кто отправляет данные, проверяйте приложение при каждой отправке запроса.

Это все еще можно обойти, но они усложняют ситуацию и могут отговорить некоторых, если ваше приложение не так много им стоит.

2 голосов
/ 26 августа 2009

Исправленное приложение означает, что «взломщик» имеет полный контроль над машиной, на которой выполняется код (по крайней мере, достаточно контроля для исправления исполняемого файла). Поэтому предотвращение исправлений, каким бы умным оно ни было, работает против потока управления.

Сложного бинарного файла может быть достаточно, чтобы не допустить внесения исправлений, так что обфускаторы, вероятно, - ваш лучший выбор.

2 голосов
/ 26 августа 2009

ты не можешь. если у кого-то еще есть ваш файл, он может делать с ним все, что ему нравится - первым делом можно будет исправить ваш код, запрещающий исправления.

1 голос
/ 26 августа 2009

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

Поскольку ваше приложение, по-видимому, работает в режиме онлайн, вы можете спросить себя , почему вы хотите предотвратить исправления в первую очередь (возможно, для того, чтобы запретить пользователю вводить некоторые неверные значения? Или запретить им видеть некоторые информация, которая присутствует в программе?), а затем создайте свою программу так, чтобы все, что вы хотите скрыть или проверить, происходило на сервере.

Например, если это игра, и вы хотите, чтобы игроки не могли ее взломать, чтобы узнать, где находятся другие игроки: измените сервер так, чтобы он отправлял информацию о координатах только тем игрокам, которых вы уже видите.

Другой пример: если это интернет-магазин, и вы хотите, чтобы пользователи не отправляли заказы на покупку с неверными ценами, проверьте цены на сервере.

Единственное исключение, если вы управляете оборудованием, на котором работает программа. Но даже там очень трудно сделать это правильно (см .: XBox, PS3 и многие другие консоли, которые пытались это сделать и потерпели неудачу). Вероятно, все же лучше использовать архитектуру клиент / сервер, чем делать ставки на «доверенные вычисления».

0 голосов
/ 29 сентября 2009

Все прибили это, вы не можете остановить кого-то, но вы можете сделать это для них сложнее, вы даже можете пойти вглубь и сделать некоторые проверки в памяти, такие как система World Of Warcrafts Warden.

Если вы сообщите нам, на каком языке вы пишете, мы могли бы предложить несколько простых методов запутывания.

0 голосов
/ 21 сентября 2009

Взломщики в настоящее время не беспокоятся о исправлении вашего исполняемого файла; они просто изменяют переменные вашей программы в памяти, чтобы сделать ее поведение более подходящим для их требований. Защищаться от этого очень сложно и достаточно бессмысленно; Защита от взлома большинства игр работает только путем поиска сигнатур известных программ взлома (как это делает AV-движок).

...