Практически невозможно по-настоящему запутать код таким образом, чтобы его было невозможно полностью реконструировать.
Если бы это было возможно, то компьютерный вирус был бы абсолютно неостанавливаемым, никто не мог бы знать, как они работают и что они делают. До тех пор, пока мы не сможем запустить зашифрованный код, шифрование в какой-то момент расшифровывается и «читается» (например, кто-то, кто может читать машинный код), прежде чем оно может быть выполнено процессором.
Теперь, имея в виду, вы можете смело предполагать, что дешевая защита отразит дешевых хакеров. Читайте дешево, как в «не хорошо», это совершенно не связано с ценой, которую вы платите. Великая защита отразит великих хакеров, но окончательная защита не существует.
Обычно, чем более коммерчески ваше решение, тем более "хорошо известны" векторы атаки.
Также, пожалуйста, поймите, что такие вещи, как зашифрованные приложения, подразумевают дополнительные издержки и раздражают пользователей. USB-ключи также раздражают пользователей, потому что они должны носить его с собой и обходиться без денег. Таким образом, это также станет компромиссом между тем, что вы счастливы от того, что вы защищены от нескольких хакеров, и со всеми вашими клиентами, которым придется нести помехи, которые несет ваш метод защиты.