Бесплатно зарегистрируйся и получай уведомления о новых проектах по работе
Написать Kernel Mode Driver (KMDF) на уровне ядра ring0
G
|
Заказчик
Отзывы фрилансеров:
+ 0
- 0
Зарегистрирован на сайте 3 года и 11 месяцев
|
Необходимо защитить процесс игры MU Online на Windows, чтобы его нельзя было открыть никак отладчиком простой вариант античита для игры.
Короткое описание:
Написать Kernel Mode Driver (KMDF) на уровне ядра ring0, который будет общаться с приложением на уровне User Mode. Само приложение будет работать как загрузчик драйвера. Запуская приложение, запускается загрузчик драйвера. Загрузчик запускает драйвер и затем запускает исполняемый файл игрового клиента.
Драйвер будет отслеживать исполняемый файл игрового клиента (игровых клиентов может быть запущено несколько) фильтруя (ObRegisterCallbacks) и запрещая использовать такие функции как:
OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread.
Также драйвер проверяет свои функции (ObRegisterCallbacks) на целостность.
При обнаружении любых подозрительных действий, происходит отправка информации на сервер и закрытие всех игровых клиентов.
Полное описание:
Запускается игровой клиент .exe файл. При запуске от подгружает кастомную .dll (туда и можно будет в дальнейшем вшить загрузчик драйвера). Загружается kernel-driver в систему и находится там, пока хоть один игровой клиент запущен. Драйвер должен хранить в себе все запущенные экземпляры игрового клиента, так как пользователь может запустить неограниченное количество игровых окон. После того, как драйвер загрузился в систему, только тогда запускается игровой клиент. Нужно сделать так, чтобы нельзя было запустить игровой клиент обойдя запуск драйвера. Игровой клиент (кастомная .dll) должна как то общаться с драйвером, чтобы точно знать, что драйвер запущен и можно запускать игровой клиент. Также нельзя чтобы клиент оставался запущенным, если каким-то образом выгрузился драйвер или в его функционале произошли изменения собственных функций, например, другим драйвером (проверять себя на целостность). Далее, драйвер держит у себя список запущенных игровых процессов, и каждый проверяет при попытки открыть этот процесс другими процессами и сразу отказывать в доступе (понижать привилегии) так, чтобы злоумышленник не смог ни открыть процесс, ни внедрить в процесс .dll файл, ни внедрить код, ни создать удаленный поток. Драйвер общается с игровым клиентом (через .dll файл) и может передать любую информацию (например какими-то командами или кодами) что конкретно произошло (например: попытка открыть процесс чужим процессом или кто-то пытался изменить код драйвера другим драйвером) и в дальнейшем закрывать ВСЕ игровые клиенты и отправлять на сервер информацию. Отправка может осуществляться через игровой клиент (через .dll файл) или было бы лучше напрямую из драйвера (если это возможно). Сервер из себя представляет простое приложение, которое хранит в себе полученную информацию (например hwid компьютера) и через некоторое короткое время удаляет эту информацию. Это нужно для того, чтобы при последующей попытки запуска игрового клиента злоумышленником, драйвер сначала сделает запрос на сервер, если его hwid в списке то отказываться запускать игровой клиент (временная блокировка). Также сервер получает информацию, какая попытка взлома была произведена, чтобы знать, что злоумышленник пытался сделать.
___________________________________________________________________________
Короткое описание:
Написать Kernel Mode Driver (KMDF) на уровне ядра ring0, который будет общаться с приложением на уровне User Mode. Само приложение будет работать как загрузчик драйвера. Запуская приложение, запускается загрузчик драйвера. Загрузчик запускает драйвер и затем запускает исполняемый файл игрового клиента.
Драйвер будет отслеживать исполняемый файл игрового клиента (игровых клиентов может быть запущено несколько) фильтруя (ObRegisterCallbacks) и запрещая использовать такие функции как:
OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread.
Также драйвер проверяет свои функции (ObRegisterCallbacks) на целостность.
При обнаружении любых подозрительных действий, происходит отправка информации на сервер и закрытие всех игровых клиентов.
Полное описание:
Запускается игровой клиент .exe файл. При запуске от подгружает кастомную .dll (туда и можно будет в дальнейшем вшить загрузчик драйвера). Загружается kernel-driver в систему и находится там, пока хоть один игровой клиент запущен. Драйвер должен хранить в себе все запущенные экземпляры игрового клиента, так как пользователь может запустить неограниченное количество игровых окон. После того, как драйвер загрузился в систему, только тогда запускается игровой клиент. Нужно сделать так, чтобы нельзя было запустить игровой клиент обойдя запуск драйвера. Игровой клиент (кастомная .dll) должна как то общаться с драйвером, чтобы точно знать, что драйвер запущен и можно запускать игровой клиент. Также нельзя чтобы клиент оставался запущенным, если каким-то образом выгрузился драйвер или в его функционале произошли изменения собственных функций, например, другим драйвером (проверять себя на целостность). Далее, драйвер держит у себя список запущенных игровых процессов, и каждый проверяет при попытки открыть этот процесс другими процессами и сразу отказывать в доступе (понижать привилегии) так, чтобы злоумышленник не смог ни открыть процесс, ни внедрить в процесс .dll файл, ни внедрить код, ни создать удаленный поток. Драйвер общается с игровым клиентом (через .dll файл) и может передать любую информацию (например какими-то командами или кодами) что конкретно произошло (например: попытка открыть процесс чужим процессом или кто-то пытался изменить код драйвера другим драйвером) и в дальнейшем закрывать ВСЕ игровые клиенты и отправлять на сервер информацию. Отправка может осуществляться через игровой клиент (через .dll файл) или было бы лучше напрямую из драйвера (если это возможно). Сервер из себя представляет простое приложение, которое хранит в себе полученную информацию (например hwid компьютера) и через некоторое короткое время удаляет эту информацию. Это нужно для того, чтобы при последующей попытки запуска игрового клиента злоумышленником, драйвер сначала сделает запрос на сервер, если его hwid в списке то отказываться запускать игровой клиент (временная блокировка). Также сервер получает информацию, какая попытка взлома была произведена, чтобы знать, что злоумышленник пытался сделать.
___________________________________________________________________________
Разделы:
Опубликован:
02.02.2023 | 22:31 [поднят: 02.02.2023 | 22:31]