Почему кто-то хочет сохранить что-нибудь внутри исполняемого файла. Если вы планируете подписать исполняемый файл для распространения, то изменение исполняемого файла каким-либо образом нарушит подпись, и сохранение чего-либо в двоичном виде в исполняемый файл не помешает кому-либо извлечь значение из исполняемого файла.
Лучшее, что вы можете сделать, это сохранить серийный номер в файле, реестре или другом месте, а затем зашифровать значение, чтобы его нельзя было изменить, не взломав. Я использую библиотеку, которая поставляется с License Vault от довольно новой компании под названием SpearmanTech. Вы можете использовать их библиотеку для хранения зашифрованных значений в файле .NET machine.config в зашифрованном виде, чтобы его нельзя было подделать. Таким образом, вы можете извлечь информацию из файла .config при запуске приложения.
Вы пишете .NET-приложение на C ++ или нативном C ++, так или иначе, вы должны иметь возможность общаться с .NET Framework, чтобы это решение работало.
Я бы проверил их продукт на http://www.spearmantech.com. Надеюсь, он вам подходит.