Комплекс защиты ПО с помощью флешки.

Автор: Joseph L.Shrago

Дата: 07.2015

Скачать архив библиотеки.

  1. Принципы работы
  • Связывает код и флешку информацией построенной на уникальном описании флешки.
  • Позволяет записывать информацию на флешке и использовать ее во время исполнения задачи.
  1. Программирование

Файлы secobj.obj и secobj.h позволяют встраивать в код элементы защиты:

decript(char *src, char *dest, int length , int num_of_flash);

— дешифрование c usb флешкой.

encript(char *src, char *dest, int length , int num_of_flash);

— шифрование c usb флешкой.

test_guard0()      — проверка наличия защиты, отсутствия отладчика и неизменности кода возвращает 0 если все в порядке.

test_guard()        — то же что и test_guard0 плюс проверяет факт наличия защиты и соответствующей флешки.

add_key_object(char *object, int length_of_object, char *name_of_object);

— добавляет на флешку информационный объект и возвращает его номер или -1.

update_key_object(int number_of_object, char *object, int length_of_object);

— обновляет информационный объект и возвращает 0 или -1, если все плохо.

*get_key_object_by_num(int number_of_object);

— помещает в память заданный номером объект и возвращает указатель на него.

*get_key_object_by_name(char *name);

— помещает в память заданный именем объект и возвращает указатель на него.

int get_object_len(); — вызывается после get_key_object_by_name или get_key_object_by_name для получения длины объекта.

Примечание:

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

Связывание программы и флешки производится задачей m_uguard.exe c помощью команды:

m_uguard task.exe file_object_0 file_object_1 .. file_object_n

где:

task.exe      — защищаемая задача.

file_object_х       — файлы записываемые на флешку. Всего можно записать 29 файлов общим размером в 32 мегабайта.

Если вы хотите использовать эту флешку традиционным путем — отредактируйте таблицу разделов сдвинув начало раздела подальше от нулевого сектора.

Примечание: утилита lxlite должна вызываться без указания полного пути.

  1. для чтения и обновления информационных объектов на флешке можно использовать задачу fmguard.exe.
  1. Я и сам знаю, что все можно реинженерить и пропатчить. Я попытался усложнить этот процесс.

И попытаюсь еще более.

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

Свои предложения присылайте по адресу joseph@ecomstation.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *