Запись двоичного файла в Visual Basic с целью нечитаемости - PullRequest
0 голосов
/ 26 мая 2011

Я работаю над программой, которая создает файл «лицензии».Предполагается, что этот файл будет двоичным и содержит имя, сегодняшнюю дату, дату предупреждения, дату истечения срока действия и предпочтение в метрических или имперских единицах измерения, и по существу разрешает программам работать до тех пор, пока не будет достигнута дата истечения срока, до которойДата предупреждения уведомляет пользователя о том, что срок действия лицензии истекает.Для того чтобы эта функция была полностью использована, даты не должны быть легко отредактированы, чтобы люди не могли устанавливать дату на то, что они хотят, и сохранять программу.

То, что я сейчас пишу, из каждого поля пишетString или Integer во все, что считает класс BinaryWriter, должны быть записаны, когда я использую его метод write.Я экспериментировал с разницей между кодировкой Big и Little Endian, которую можно выбрать в форме.

[код отредактирован]

Если во введенном имени нет пробелов, файл выглядит немногонечитабельно, но недостаточно.С Big Endian большая часть даты истечения срока действия все еще отображается;с Little Endian, две другие даты в основном видны.Однако использование пробелов во введенном имени довольно сильно изменяет формат выводимого текста, делая все символы уменьшенными пробелом, и, следовательно, невероятно легкими для изменения.Мои извинения за то, что я не могу показать вам, как выглядят файлы.

Есть ли лучший / более приемлемый способ хранения этих данных?Я хотел бы, чтобы файлы лицензий работали с существующими программами на Фортране, из которых я прочитал неформатированные файлы в общей структуре, которую я подробно описал, но обратное проектирование кажется немного сложным из того, что я прочитал, и мой работодатель предложил переписатьФайлы FORTRAN для принятия этой новой программы создания лицензии, если это необходимо.

Ответы [ 3 ]

1 голос
/ 26 мая 2011

Создайте свою структуру лицензии в виде текста, содержащего все необходимые данные (XML - удобный формат).

Шифруйте это с использованием шифрования с открытым ключом (используя ваш закрытый ключ).открытый ключ в вашем приложении.Расшифруйте файл лицензии с помощью открытого ключа.Разобраться с этим, как вам нужно.

Легко!

0 голосов
/ 26 мая 2011

Наиболее безопасный способ сделать это, вероятно, состоит в том, чтобы зашифровать файл лицензии и заставить программы, использующие лицензии, расшифровывать файл и отображать информацию в нем при необходимости.

0 голосов
/ 26 мая 2011

Большинство менеджеров лицензий, которые я видел, имеют тенденцию отображать информацию о лицензии в виде простого текста, за которым следует код контрольной суммы, по которому программа проверяет, скорее всего, данные хэшируются с помощью некоторого другого случайного содержимого. Это дает преимущество в виде читаемого человеком файла лицензии, в то время как его трудно изменить.

Имейте в виду, что подобные менеджеры лицензий затруднят случайное копирование, но кто-то, решивший запустить вашу программу без лицензии, все равно сможет взломать ее с помощью дизассемблера и некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...