Общий ответ на это заключается в том, что попытка предотвратить это - пустая трата вашего времени.
Почему? Большинство / все люди, которые занимаются пиратством, не будут платить, даже если вы сделали пиратство невозможным. Вы не можете просто принять простой подход: «у нас есть x
количество пиратов, это было бы y
больше денег, если бы мы остановили их от пиратства»
Также сделать пиратство невозможным само по себе невозможно. Проблема в том, что каждый раз, когда вы добавляете какой-либо другой метод проверки, они всегда могут это исправить. Например, допустим, вы добавили проверку квитанции на стороне сервера. Слабым звеном будет:
if serverSaysReciptIsValid { // enable feature }
Все, что нужно будет сделать пирату, это заменить на:
if true { // enable feature }
Вы можете сделать кучу вещей, чтобы им было труднее чтобы найти эту проверку в вашем коде, но это только замедлит их, вероятно, недостаточно, чтобы что-то изменить.