по мне так эффективность следующая:
- cleo крипторы типа такого как в этом уроке
- клео, в котором особо критичный участок кода криптуется/декриптуется во время выполнения (минус в производительность)
- клео, секретные функции которого вынесены в dll (производительность в плюс, никто не мешает вызывать эту dll, если ты, допустим, копируешь скрипт)
- весь код полностью в длл (придется навешивать хуки на все что движется)
- клео с ассемблерным кодом прямо в функциях (я раньше так делал, но целью я не ставил скрыть код, просто у меня выбора не было особого, пример: https://www.blast.hk/threads/557/)
- длл, которая содержит всю логику, для интеграции с игрой ловит события от функции Scripts::Step, где все скрипты обрабатываются
при этом важно помнить что на добавление защиты уходит драгоценное время (если, конечно, нет автоматических средств)