Существует множество способов скрыть данные в исполняемом файле. Другие здесь опубликовали хорошие решения - некоторые сильнее, чем другие. Я не буду добавлять в этот список.
Просто имейте в виду: это всего лишь игра в кошки-мышки: невозможно ... гарантия , что никто не узнает ваш "секрет".
Независимо от того, сколько шифрования или других уловок вы используете; независимо от того, сколько усилий или денег вы вложите в это. Независимо от того, сколько типов «НАСА / МИТ / ЦРУ / АНБ» вовлечено в его сокрытие.
Все сводится к простой физике:
Если бы любой пользователь не смог бы вытащить ваш секрет из исполняемого файла и «показать» его, то компьютер также не смог бы показать его, и ваша программа не смогла бы его использовать. , Любой умеренно опытный разработчик с достаточным стимулом найдет способ раскрыть секрет.
В тот момент, когда вы передали свой исполняемый файл пользователю, у него есть все, что нужно, чтобы узнать секрет.
Лучшее, на что вы можете надеяться, - это сделать настолько сложным , чтобы раскрыть секрет, что любые выгоды, которые вы можете получить от знания секрета, не будут стоить хлопот.
Итак, все в порядке, чтобы попытаться скрыть данные, если это просто "нехорошо" для того, чтобы они были публичными, или если последствия их обнародования были бы просто "неудобными". Но даже не думайте о том, чтобы скрыть в своей программе «пароль к вашей базе данных главного клиента», личный ключ или какой-то другой критический секрет. Вы просто не можете.
Если у вас есть действительно критически секретная информация, которая понадобится вашей программе, но НИКОГДА не становитесь общедоступной информацией (например, закрытым ключом), вам нужно будет заставить вашу программу общаться с удаленным сервером под вашим контролем, применять соответствующую аутентификацию и элементы управления авторизацией (, то есть убедитесь, что только утвержденные пользователи или компьютеры могут сделать запрос к серверу ), и пусть этот сервер хранит секрет и использует его.