Безопасность в Дельфи

       

Определяем задание и исходные данные


Для начала делаем наброски исходных данных, требования к исходным данным и способы решения поставленной задачи. (Говоря о контрольных суммах я буду подразумевать, что мы используем CRC-32)

Возьмем такое условие, что интерес представляет контроль CRC всего файла запускаемой программы. Для реального приложения нашу задачу логично разбить на две части. Незачем в защищенном файле хранить процедуры коррекции контрольных сумм :).

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

Из данных мы имеем:

  • Контрольную сумму исполняемого файла защищенной программы - это та CRC, которую будет иметь файл после всех операций над ним.
  • Смещение в исходном файле ячейки, хранящей контрольную сумму. По этому смещению вторая программа запишет туда CRC.

Что нужно сделать?
Прописать контрольную сумму в определенное место защищенного файла так, чтобы она соответствовала тому, что получит сама защищенная программа при проверке самой себя. Звучит закручено.



Содержание  Назад  Вперед