Розробка бібліотеки для динамічного завантаження виконуваного коду в запущений процес
Актуальність
Цілі та задачі
Засоби розробки
Модульна схема проекту
Розробка алгоритмів
Розробка алгоритмів
Розробка алгоритмів
Файл конфігурації
Тестування сайту
Висновки
413.50K
Category: programmingprogramming

Розробка бібліотеки для динамічного завантаження виконуваного коду в запущений процес

1. Розробка бібліотеки для динамічного завантаження виконуваного коду в запущений процес

Автор:
ст. гр. 2ПІ-14б
Андреєв А.О.
Науковий керівник:
к.т.н., доцент
Войтко В.В.

2. Актуальність

Актуальність розробки полягає у підвищенні захищеності програмного забезпечення
від несанкціонованого доступу, пов’язаного зі зберіганням виконуваних файлів
програми на диску.
Загальне порівняння аналогів та додатку «DllLoadManager» наведено у таблиці
Критерій
Відсутність використання додаткових
VMProtect
Private exe
Protector
ASProtect Ripe Exe DllLoadManager
+
+
+
+
-
+
-
+
+
+
якому вигляді
-
-
-
-
+
Можливість розширення
-
-
-
-
+
Небезпека при взломі програми-захисника
-
-
-
-
+
-
-
-
-
+
апаратних ресурсів
Відсутність необхідності використання
віртуальної машини
Доступ до коду захищеної програми в будь
Відсутність необхідності додаткової
обробки програмного продукту

3. Цілі та задачі

Було визначено основні цілі роботи:
– створити бібліотеку для динамічного завантаження виконуваного коду в
процес;
– створити додаток для управління завантаженням бібліотеки;
– розробити файл конфігурації;
Для досягнення поставленої мети та цілей потрібно було вирішити такі
задачі:
– розробити динамічно завантажувану бібліотеку, що буде завантажуватися
в виконуваний процес та структуровано копіювати вхідну користувацьку
бібліотеку;
– розробити модуль для завантаження користувацької бібліотеки з сервера;
– розробити модуль для управління процесом для користувацького
додатку;
– провести тестування програмного продукту.

4. Засоби розробки

Мова програмування
Характеристики
С++
С#
Java
Об'єктно-орієнтована
+
+
+
Створення багатовимірних масивів
+
+
-
Узагальнене програмування
+
+
+
Створення анонімних функцій
+
-
-
Створення динамічних масивів
+
+
+
Розробка програмного інтерфейсу
+
+
+
Середовище програмування
Функції
C++ Builder
Підтримка MFC
Dev-C++
Microsoft Visual Studio
-
-
+
Режим відлагодження
+/-
+/-
+
Кросплатформеність
-
-
+
+/-
-
+
Функція авто заповнення

5. Модульна схема проекту

Клієнтський процес
DllLoadManager
FTP сервер з
виконуваним
файлом
Сервер реєстрації

6. Розробка алгоритмів

Загальний
алгоритм
роботи додатку
Початок
Отримання
необхідних
налаштувань з
файла конфігурації
або від користувача
Отримання дозволу
на проведення сесії
від сервера реєстрації
RegistrationRes
ult == true
0
Вивід RegistrationError
1
Q
Отримання
виконуваного коду
ReceivingResult
== true
0
Вивід ReceivingError
1
1
Q

7. Розробка алгоритмів

Продовження
загального
алгоритму
роботи додатку
1
Q
Створення поширеної
пам’яті і перечада в неї
необхідних даних
Кінець
0
CreationShMemResult
== true
1
Вивід
CreationShMemError
Q
Запусккористувацького
процесу та
завантаження в нього
DllLoadManager.dll
StartingResult ==
true
0
Вивід StartingError
1
Вивід StartedSuccessfully
Q
Q

8. Розробка алгоритмів

Загальний
алгоритм
роботи
бібліотеки
Початок
Q
Отримання необхідних
налаштувань з
поширеної пам’яті
GettingArgsResult
== true
Кінець
0
Вивід GettingArgsError
1
Q
Завантаження
виконуваного коду в
поточний процес
LoadingResult ==
true
0
Вивід LoadingError
1
Вивід LoadingSuccessfully
Q
Q

9. Файл конфігурації

Налаштування роботи програмного додатку здійснюється за допомогою файлу
конфігурації. Даний фай має наступний вигляд.

10. Тестування сайту

11. Висновки


Проаналізовано ринок на наявність аналогів та проведено оцінку і порівняння
наявних аналогів.
Проаналізовано існуючі методи захисту програм від насанкціонованого
доступу.
Розроблено динамічно завантажувану бібліотеку, що буде завантажуватися в
виконуваний процес та структуровано копіювати вхідну користувацьку
бібліотеку.
Розроблено модуль для роботи з поширеною пам’яттю системи, що передає
необхідні налаштування в процес для користувацького додатку.
Розроблено модуль для завантаження користувацької бібліотеки з сервера.
Розроблено модуль для управління процесом для користувацького додатку.
Розроблено модуль для завантаження розробленої динамічно завантажуваної
бібліотеки в процес.
Проведено тестування програмного продукту.

12.

Дякую за увагу!
English     Русский Rules