Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Шифратор виконуваних файлів

Реферат Шифратор виконуваних файлів





е запустити на виконання, а по завершенню роботи видалити. p align="justify"> У третьому варіанті було вирішено залишити образ захищається програми по правильному зміщення, а код расшифровщика додавати в кінець вихідного файлу. Для переходу до коду дешифратора в даному випадку на початку файлу повинен знаходитися відповідний код безумовного переходу. У зв'язку з цим виявилася нова проблема - Доведеться замінити як мінімум три байти (саме стільки займає код команди jmp) коду захищається програми, внаслідок чого, програма може виявитися непрацездатною. Для вирішення цієї проблеми можна записати замінний ділянка коду в блок расшифровщика і відновлювати його після передачі управління. Однак проблема неправильних адрес залишається і в цьому варіанті. Пояснюється вона тим, що при отриманні машинного коду дешифратора компілятор не враховує розмір образу захищається програми. Якби все. Com файли, які доведеться захищати розроблюваним додатком, мали однакову довжину, вирішити проблему було б просто: потрібно було б просто при використанні зміщень при написанні коду розшифровувача додавати до них константне число, рівне довжині виконуваних файлів. Але розробляється програма повинна вміти працювати з будь-якими. Com файлами. Настройку зміщень планувалося здійснювати таким методом:


В 

Лістинг 2.1 Налаштування зсувів методом обчислення розміру образу


У лістингу 2.1 приведений варіант отримання розміру зашифрованого образу, який знаходиться в пам'яті перед кодом дешифратора. Для цього необхідно отримати вміст лічильника команд IP, що не дозволяє зробити команда mov. У стоці 1 лістингу 2.1 за допомогою команди call в стек штучно заноситься вміст IP і зчитується в регістр ax у рядку 3. Вирахуванням з отриманого результату зміщення команди pop ax можна отримати розмір образу (рядок 4 лістингу 2.1).

Однак застосування даного методу сильно ускладнює код програми, тому було вирішено використовувати спосіб налаштування адрес, запропонований А. Калашниковим у книзі "Асемблер? Це просто! "[1], який полягає в копіюванні настроюваного коду в вільну ділянку пам'яті по правильному зміщення. p align="justify"> Для вирішення поставленого завдання був обраний третій варіант алгоритму захисту, тому що він найбільш універсальний, застосовний до будь-яких COM програмами, дозволяє створювати захищені додатки, автономні щодо шіфровщіка і забезпечує найбільшу безпеку.


2.2 Опис системних засобів, необхідних для вирішення поставленого завдання


Для написання програми використовувався програмний пакет TASM (Turbo Assembler) від компанії Borland, призначений для розробки програм мовою асемблера, що включає в себе:

- Turbo Assembler (tasm.exe) - компілятор;

Turbo Linker (tlink.exe) - компонувальник;

Turbo Debugger...


Назад | сторінка 2 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Підходи для вирішення проблеми великого розміру коду
  • Реферат на тему: Розробка програми мовою Turbo Pascal 7.0 для вирішення диференціальних рівн ...
  • Реферат на тему: Створення програми з використанням програмного продукту Turbo Assembler
  • Реферат на тему: Програма для дослідження завадостійкості лінійного адитивного блочного коду ...
  • Реферат на тему: Розробка програми сортування даних мовою Turbo Pascal