Чтобы обеспечить некоторый уровень защиты от обратного инжиниринга или декомпиляции, я решил переместить важные части моего приложения на C #, включая несколько ресурсов XML, в собственный файл DLL C ++ на основе описанного метода. Вот для использования ресурсов в программах на C ++ и ОПЫТ1 а также practice2 для использования C ++ DLL файлов в приложениях C #. Теперь у меня есть два вопроса:
Обновить:
Я пропускаю второй вопрос, так как это может быть вопрос кодирования, а первый вопрос касается практики.
Размещение текстовых ресурсов в DLL — это метод сокрытия ресурсов, а не их защиты. Если цель состоит в том, чтобы защитить ваши ресурсы от реверс-инжиниринга, этот метод будет квалифицироваться только как самый низкий и наименее эффективный показатель «безопасность по неизвестности», который не обеспечивает никакой защиты от кого-либо с минимальной решимостью взломать ваши ресурсы.
Для любой степени реальной защиты вам необходимо использовать шифрование, потому что шифрование ваших ресурсов с помощью специального ключа потребует гораздо более высокой степени сложности от любого, кто попытается выполнить реинжиниринг вашей системы. Это не сделало бы абсолютно невозможным реинжиниринг вашей системы, но этого было бы достаточно, чтобы отговорить хакеров с ограниченными знаниями возиться с вашим кодом.
Других решений пока нет …