Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> защита процесса 
:(
    Опции темы
Kasiro
Дата 7.5.2013, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



Всем привет, интересует как можно защитить процесс от внедрения в него чужого кода
конкретно речь идет о hl2.exe (cs source) и о защите от читов

на одном из форуме нашел несколько способов, не знаю на сколько они рабочие, кроме названий никакой дополнительный инфы не было

1) Можно проверять целостность машинного кода, и наличие лишнего кода
2) Можно проверять лишние DLL
3) Можно проверять лишние потоки
4) Можно проверять целостность машинного кода всех DLL
5) Можно проверять наличие внедренной программы в куче

И другой вариант, ставить хуки на фукнции

OpenProcess(ZwOpenProcess)
DuplicateHandle(ZwDuplicateObject)
WriteProcessMemory(ZwWriteVirtualMemory)
ReadProcessMemory(ZwReadVirtualMemory)

подскажите какой из методов лучше, либо может быть их совокупность

и еще вопрос, сейчас в читерстве активно используется мануал маппинг для загрузки дллок, есть ли способы защиты от этого?

PS: ссылки на статьи и код по теме горячо приветствуются

PM MAIL   Вверх
Dem_max
Дата 8.5.2013, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Все методы использовать разом


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Kasiro
Дата 8.5.2013, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



Dem_max, если все сразу тормозов не должно быть?

может есть примеры кода по любому из методов?
сам искал ничего не нашел толкового кроме перехват функций из ring3

меня больше всего интересует как реализовать первые 5 методов
PM MAIL   Вверх
DarthTon
Дата 13.5.2013, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 7.2.2009

Репутация: 5
Всего: 6



Самым действенным методом было бы сделать процесс защищенным, изменив бит в его структуре EPROCESS из ring 0. Это запретит любой доступ к процессу с правами отличными от PROCESS_QUERY_LIMITED_INFORMATION и PROCESS_TERMINATE. Однако такой драйвер вряд ли пройдет проверку Microsoft.

Цитата

Можно проверять лишние DLL

Можно перехватить LdrLoadDll и просто не давать лишним длл загружаться. От мануал маппинга не спасет соответственно.

Цитата

5) Можно проверять наличие внедренной программы в куче

Обычно код внедряется не в кучу, а в новую область выделенную при помощи VirtualAlloc. Но проверить хип на всякий случай тоже не помешает smile 

Цитата

и еще вопрос, сейчас в читерстве активно используется мануал маппинг для загрузки дллок, есть ли способы защиты от этого?


Если есть 100% гарантия что весь код всегда должен исполнятся в областях памяти принадлежащих PE файлам, а так же DEP включен для процесса, то можно искать области памяти с флагом EXECUTABLE. Но Вы так же должны быть уверены что функции для работы с памятью (VirtualQuery, NtQueryVirtualMemory и т.п.) не перехвачены.
Ещё можно смотреть не исполняется ли какой-нибудь поток в области памяти не принадлежащей ни одному из образов. Или перехватить создание потока и смотреть на адрес стартовой функции потока.

P.S. С таким вопросом я бы порекомендовал Вам заглянуть на форум wasm.ru или gamedeception.net.
PM MAIL   Вверх
Kasiro
Дата 7.7.2013, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 11.7.2010

Репутация: нет
Всего: -1



DarthTon, спасибо попробую:)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.