Я пытаюсь защитить приложение, чтобы только работать от определенного диска USB. У меня есть код для получения порядкового номера от устройства, но единственный способ, которым я могу заставить это проложить себе путь, я хочу, должен вручную кодировать порядковый номер в двоичный файл. Существует ли способ, которым я мог подать тупиковую заявку, которая изменит существующий двоичный файл для вставки порядкового номера в него после того, как он будет скомпилирован? Я видел сделанный в C++ в прошлом, но это было давным-давно, и я не могу вполне помнить, как мы сделали это тогда.
Хранение в сборке - плохая идея. Вот что я бы сделал (и делал подобное в прошлом):
Очевидно, что вы не поставляете свой закрытый ключ, поэтому, если приложению необходимо сгенерировать сам конфигурационный файл XML (а не файл, который вы поставляете пользователю), вам потребуется реализовать веб-сервис.
.Не знаю, но это не помешало мне ответить раньше.
Может быть, выяснить, где вы хотите хранить SN в исполняемом файле (это должно быть только одно место, верно?) и просто относиться к исполняемому файлу как к гигантскому бинарному блоку, и использовать программу stub, чтобы вставить его туда, куда нужно?
.Возможно, вы захотите получить отдельный лицензионный USB-ключ, как эти:
http://www.bhphotovideo.com/c/buy/USB-License-Keys/ci/12454/N/4294550039
??
.] Зачем кому-то сохранять что-то внутри исполняемого файла. Если вы планируете подписывать исполняемый файл для распространения, изменение исполняемого файла каким-то образом нарушит подписание, и сохранение чего-либо в двоичном файле в исполняемый файл не помешает кому-либо извлечь значение из исполняемого файла. [
] [] Лучшее, что вы можете сделать, это сохранить серийный номер в файле, реестре или другом месте, а затем зашифровать значение, чтобы его нельзя было изменить, не взломав его. Я использую библиотеку, которая поставляется с License Vault от довольно новой компании под названием SpearmanTech. Вы можете использовать их библиотеку для хранения зашифрованных значений в файле .NET machine.config в зашифрованном виде, чтобы его нельзя было взломать. Таким образом, вы можете извлечь информацию из файла .config при запуске приложения. [
] []Вы хорошо пишете .NET-приложение на C++ или родном C++, так или иначе, вы должны иметь возможность взаимодействовать с .NET-фреймворком, чтобы это решение работало.[
] []Я бы посмотрел их продукт по адресу []http://www.spearmantech.com[]. Надеюсь, это сработает для вас.[
].