Защита от взлома - в частности, способы сделать программу сложнее декомпилировать

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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