2010-11-28 2 views
10

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

Я думал о шифровании соединения либо с помощью ssl, либо с помощью другого алгоритма, поэтому не так просто определить протокол, просто обнюхивая трафик между клиентом и сервером.

Теперь единственное, что я могу думать о том, что пираты будут использовать, - это декомпилировать программу, удалить шифрование и попытаться увидеть протокол «обычного текста», чтобы перепроектировать его.

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

+2

Это не обязательно, чтобы сделать невозможным взломать, вы просто хотите сделать это достаточно сложным, чтобы это стоило дороже, чем покупать. – 2010-11-28 12:22:14

+2

@Matthieu: Вы покупаете много копий, но трескаетесь только один раз. – ybungalobill 2010-11-28 12:58:26

ответ

1

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

Вот некоторые хорошие советы о написании хорошей защиты: http://www.inner-smile.com/nocrack.phtml

3

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

И для протокола-обфускации не использовать SSL. Для злоумышленника тривиально перехватывать открытый текст, когда вы вызываете Send с открытым текстом. Используйте SSL для обеспечения соединения и обфускации данных перед их отправкой. Алгоритм обфускации не требует криптографической защиты.

Смежные вопросы