Similar presentations:
Розробка бібліотеки для динамічного завантаження виконуваного коду в запущений процес
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. Висновки
Проаналізовано ринок на наявність аналогів та проведено оцінку і порівняння
наявних аналогів.
Проаналізовано існуючі методи захисту програм від насанкціонованого
доступу.
Розроблено динамічно завантажувану бібліотеку, що буде завантажуватися в
виконуваний процес та структуровано копіювати вхідну користувацьку
бібліотеку.
Розроблено модуль для роботи з поширеною пам’яттю системи, що передає
необхідні налаштування в процес для користувацького додатку.
Розроблено модуль для завантаження користувацької бібліотеки з сервера.
Розроблено модуль для управління процесом для користувацького додатку.
Розроблено модуль для завантаження розробленої динамічно завантажуваної
бібліотеки в процес.
Проведено тестування програмного продукту.