"С.П.Расторгуев, А.Е.Долгин "Как защитить информацию" (пособие по борьбе с хакерами)" - читать интересную книгу автора

Алгоритм чтения/записи байтов в ячейки CMOS приведен на рис. 3.2.
Кстати, процедуру подсчета контрольных сумм можно усложнить, если
арифметическую операцию "сложение" заменить на логическую или добавить
к ней еще что-нибудь.
А на рис. 3.3 более интересный алгоритм, шифрующий и одновременно
привязывающий программу к конкретному компьютеру. На определенные
участки защищаемой программы накладывают некоторую область CMOS
(например, операцией XOR). При запуске программа сама осуществит
обратную процедуру, дешифрируя свой код (удобнее использовать область,
защищенную контрольной суммой, байты 10h - 20h). Естественно, что на
другом компьютере константа "CMOS" будет отличаться и, значит, процесс
дешифровки испортит программу. Кстати, здесь годится и собственная
информация, записанная в резервные ячейки энергонезависимой памяти,
если, конечно, ее формат позволяет это делать, как, например, у
компьютеров фирмы WIPRO Information Technology Limited (допускающих
достаточно вольное обращение с CMOS: в том числе и с ячейками,
защищенными контрольной суммой, с последующей корректировкой по
адресам 2Eh,2Fh). А компьютеры SystemPro фирмы Compaq, хотя и не дают
программисту возможности воспользоваться этим методом защиты, но
обладают (как и некоторые другие на базе МП 80386 и выше) таким
интересным свойством, как пользовательский пароль, который занесен в
байты 38h - 3Fh и защищен от чтения и записи.
Последние две особенности третьей группы характеристик ПЭВМ, на
наш взгляд, наиболее перспективны для защиты ПО от исследования и
поэтому рассматриваются в следующей главе ("Защита от исследований").
Независимо от выбранного способа идентификации, больше всего
вопросов вызывает сама передача программ покупателю. Ведь в этот
момент они уже должны содержать в себе эталонные характеристики ПЭВМ
пользователя, чтобы проводить соответствующие проверки. Хорошо, если
автор может прийти и лично настроить свои программы, а как быть с
иногородними покупателями?
Действия по настройке лучше всего поручить специальной
инстолирующей программе, которая может храниться на одной дискете с
передаваемым пакетом. Инстолятору поручают разархивацию продукции
(расшифровку и приведение в рабочее состояние), перезапись с дискеты
на винчестер, определение используемых характеристик компьютера и
вписывание их в известные одному автору места программ (конкретные
адреса для этих значений должны быть предусмотрены заранее). Попутно
проверяется - не является ли ключевая дискета незаконной копией и
соответствует ли название организации-покупателя упоминаемому в
договоре купли-продажи. По завершению работы инстолятор может стереть
сам себя с дискеты или сделать отметку об успешно проведенной
инстоляции (чтобы самоликвидироваться после исчерпания оговоренного
договором лимита).
Такую схему передачи можно применять даже при пересылке
программных продуктов по почте - после самоуничтожения инстолятора
владение ключевой дискетой становится бесполезным.

┌────────────────────────────────────────────────────────────┐
│ Ассемблер: │