Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Безопасность объектов ядра.

12K
27 июня 2010 года
Proger77
71 / / 14.02.2008
Добрый день всем =) Почитав не много "МСДН" да полазив на форумам, в качестве эксперимента написал 2 программы. Первая выводит содержимое некой переменной в куче. Другая меняет ее содержимое через WINAPI-функции меж процессорного взаимодействия. После чего возник вопрос, а как запретить другим процессам изменять свою память. До копал до того, что нужно при помощи SetSecurityInfo изменить SACL_SECURITY_INFORMATION структуру. Но тут МСДН дал сбой - стать по этой структуре нет =(

В общем кто может показать пример вызова этой функции для запрета записи в память текущего процесса другим процессам.

Заранее спс.

зы. Увлекаюсь играми (а точнее "source engine-based" играми) и стало интересно? почему все еще существуют memory-хаки ("жесткие" читы) для этих игр, ведь они все основаны на изменение неких важных значений в памяти процесса. Почему разработчики просто не запрещают запись в память процесса тем самым прячась за спину ОС.

ззы. Еще такой вопрос - как можно средствами WINAPI вызвать BSOD ?
Нашел вызов KeBugCheck однако как я понял режиме пользователя его не вызвать?
399
27 июня 2010 года
KIV
432 / / 20.01.2009
Цитата:
почему все еще существуют memory-хаки ("жесткие" читы) для этих игр, ведь они все основаны на изменение неких важных значений в памяти процесса. Почему разработчики просто не запрещают запись в память процесса тем самым прячась за спину ОС.


Возможно, не всё так просто с защитой. Может быть, вы что-то не так поняли. А может быть разработчики специально не делают защиту. Лично я против античитеров в несетевых играх. Сам иногда ими (читерами) пользуюсь.

Цитата:
ззы. Еще такой вопрос - как можно средствами WINAPI вызвать BSOD ?


Загляни в раздел "Исходники". Там недавно выкладавали программу для генерации BSOD из режима пользователя.
http://sources.codenet.ru/download/3659/bsod_fixed.html
P.S. Название темы по-моему не соответствует вопросу.

5
27 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Proger77
Почему разработчики просто не запрещают запись в память процесса тем самым прячась за спину ОС.

Потому что это нецелесообразно. Плюс ко всему от мемори хака в юзермоде приципиально защититься невозможно.

8.2K
27 июня 2010 года
bagie2
299 / / 26.10.2008
никогда таким не занимался, но может сделать важные переменные в памяти защищенными с помощью проверки целостности, например. далее не хранить данные в исходном виде. можно попробовать на страницы с данными повесить атрибут PAGE_GUARD и отрабатывать такие обращения. правда может это всё сказаться на производительности.
5
27 июня 2010 года
hardcase
4.5K / / 09.08.2005
А вообще помнится корейские клиенты ко всяким ММОРПГ имеют активную защиту помимо обфускации и шифрования бинарников.
8.2K
27 июня 2010 года
bagie2
299 / / 26.10.2008
или используйте PunkBuster, она вроде всё умеет :)
12K
27 июня 2010 года
Proger77
71 / / 14.02.2008
Кто нибудь даст ответ как защитит память от записи?
8.4K
28 июня 2010 года
z0rch
275 / / 02.09.2008
Цитата: Proger77
Докопал до того, что нужно при помощи SetSecurityInfo изменить SACL_SECURITY_INFORMATION структуру. Но тут МСДН дал сбой - стать по этой структуре нет =(


возможно я ошибаюсь, но SACL_SECURITY_INFORMATION - это не структура, а константа == 0x00000008

8.2K
28 июня 2010 года
bagie2
299 / / 26.10.2008
Цитата:
Кто нибудь даст ответ как защитит память от записи?


дак вам же уже дали ответ. hardcase, например.

12K
28 июня 2010 года
Proger77
71 / / 14.02.2008
Ок. Тогда такой вопрос. При отрытии процесса функцией OpenProcess я передаю флаги доступа которые указывают что я могу делать с открытым процесом (чтение информации, запись в память, удаление), как можно регулировать то с какими флагами другие процессы могут открывать мой ?
14
28 июня 2010 года
Phodopus
3.3K / / 19.06.2008
Давайте начнем с того, зачем вам это нужно. И задумаемся о том что все процессы исполняющиеся в одном кольце защиты и под одним пользователем (логично) имеют однинаковые полномочия. И если один процесс может что-то запретить, другой может это что-то разрешить. И получается игра в чехарду.
399
30 июня 2010 года
KIV
432 / / 20.01.2009
И зачем действительно вам это? Если игра сетевая, то сервер не должен запрашивать у клиента сколько у него жизней, брони и т. п. То есть если что-то поменять в клиенте, то изменится только значение отображаемое на экране, а на возможности игрока это не повлияет. Если игра не сетевая, то что плохого в том, что кто-то сможет играть в неё с читерами? Это их дело. Кому то интересно играть без читеров, а кому то с читерами. Никакого ущерба вам и другим игрокам они не принесут. Ну а может быть у автора это не игра, а какая-нибуть программа вроде антивируса. Тут действительно нужна защита. Но эти программы как бы положено запускать от имени администратора. А ещё тот же антивирус может держать в памяти модули режима ядра и организововать защиту уже оттуда. Если это программа контроля за пользователем (скажем, для какой-нибудь фирмы), то опять же она должна работать от имени админа, а пользователь админских привелегий в этом случае вообще не должен иметь. Так что играм защита не нужна, а системным программам хватит защиты на уровне разделения процессов пользователя и админа (насколько я понимаю приложение пользователя не может открыть приложение администратора). А ещё хочу сказать, что ни одна защита уровня пользователя не спасёт от драйвера режима ядра (а защита уровня ядра спасёт только путём выгрузки или другого приведения в неработоспособное состояние другого драйвера режима ядра). Сторожевые страницы и контрольные суммы не спасут. Первый вариант, который приходит в голову: запретить прерывания, установить свой обработчик Page Fault, записать все значения с пересчётом контрольной суммы (возможно не средставами ОС, а самому), восстановить обработчик Page Fault, разрешить прерывания. И никто не узнает (даже другой драйвер режима ядра), что что-то поменялось.
8.2K
30 июня 2010 года
bagie2
299 / / 26.10.2008
Цитата:
Так что играм защита не нужна


ну не скажите. отлаживал как я то один клиент онлайн игры (RTS) и вот что же у меня получилось:
- можно видеть врага на мини-карте
- можно видеть область видимости врага (этакий антитуман войны, когда всё наоборот)
- можно наделать на карте столько юнитов забесплатно, что у всех игра начинает жутко тормозить
или другую известную игру:
посылаем некорректные данные и бум, переполнение буфера, сервер падает.
ясно понятно, что больше зависит от реализации клиента, но все не без грехов могут что-то и упустить, а защита хрясь и забанила перманентно читера. пусть идет новый диск с ключиком покупает.

IMHO самому драйвер не резон писать. проще (и эффективнее и возможно даже дешевле, не знаю) поюзать PB или VAC

12K
01 июля 2010 года
Proger77
71 / / 14.02.2008
Цитата:
Так что играм защита не нужна



Не согласен совсем. Некоторые игры (тотже сорс) содержит встроенные клиентские функции для разработчиков показывающие сервисную информацию (состояние объектов и тд), также есть и встроенных ЕСП (модели игроков обробатываются не зависимо от з-буфера, тобиш всегда на первом плане, даже сквозь стену).

ВАК идет только в комплекте с Сорс в виде интегрированного в двиг бинарника.
С ПБ никогда не работал.

12K
01 июля 2010 года
Proger77
71 / / 14.02.2008
Цитата:
Защита играм не нужна



Не согласен совсем. Некоторые игры (тотже сорс) содержит встроенные клиентские функции для разработчиков показывающие сервисную информацию (состояние объектов и тд), также есть и встроенных ЕСП (модели игроков обробатываются не зависимо от з-буфера, тобиш всегда на первом плане, даже сквозь стену). Тобиш использование данных функций дает игроку не обоснованное преимущество в игре.

ВАК идет только в комплекте с Сорс в виде интегрированного в двиг бинарника.
С ПБ никогда не работал.

8.2K
01 июля 2010 года
bagie2
299 / / 26.10.2008
Цитата:
ВАК идет только в комплекте с Сорс в виде интегрированного в двиг бинарника.


Спорить не буду, но почему тогда он присутствует в Call of Duty: Modern Warfare 2 а двиг там IW 4.0 судя по всему всё тот же наследник id Tech 3

12K
02 июля 2010 года
Proger77
71 / / 14.02.2008
Извиняюсь, я имел ввиду что Валва не дает бинарники ВАКа всем подряд.
ВАК защиту может получить любая многопользовательская source-based игра или игра подписавшая с Steam договор о продаже игры через Steam.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог