Как MRAC детектит Kernel Driver Cheat?

  • Автор темы Автор темы dota
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
309
Реакции
52
Насколько я знаю знаю, мрак работает на 3 ядре , в таком случае если кернел читик ud на 0 ядре, ток как он может детектится?
 
Это уровни привилегированности процесса, на кольце (ринге) 0 могут исполняться любые команды процессора, но это не значит, что все что происходит из под ринга 0 остается незамеченным.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это уровни привилегированности процесса, на кольце (ринге) 0 могут исполняться любые команды процессора, но это не значит, что все что происходит из под ринга 0 остается незамеченным.
Много чего, того, что находится в ринг 0 невидимо для апликейшен левела. Например если ac MRAC попробует сделать что то подобное - __asm__("bound 0x1000, 0x1001"), где 1000 и 1001 адресса находятся в ядре, ему выкинет gpe или sf. Насколько я знаю, если юзать только те функции, которые доступны только кернелу, никакой ас находящийся на ring 3,2,1 лвле не сможет задетектить чит
 
Много чего, того, что находится в ринг 0 невидимо для апликейшен левела. Например если ac MRAC попробует сделать что то подобное - __asm__("bound 0x1000, 0x1001"), где 1000 и 1001 адресса находятся в ядре, ему выкинет gpe или sf. Насколько я знаю, если юзать только те функции, которые доступны только кернелу, никакой ас находящийся на ring 3,2,1 лвле не сможет задетектить чит
но какие же это функции?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мрак работает на 3 ядре
Ты путаешь понятия, это называется не ядро, а кольцо (ring), которое описывает уровень доступа.
Вообще x86 поддерживает 4 кольца, но в винде используются только 2 (0 и 3), потому что есть архитектуры где только 2.
При этом на самом деле любые процессы постоянно работают на нескольких уровнях привилегий, обычное приложение в юзермоде (3 кольце), затем вызывает вин апи функцию скажем CreateFileA из kerne32.dll, она уже обращается к NtCreateFile в ntdll.dll, которая в свою очередь переходник на системный вызов, во время системного вызова процессор переключается в режим ядра и передает управление ядру винды к обработчику NtCreateFile, т.е. технически процесс продолжает выполнение уже в 0 кольце.
Тем не менее, то что мрак не имеет своего драйвера не значит, что он по косвенным признакам не может задетектить чит из драйвера.
Например мрак может получить список драйверов, найти их на диске, посмотреть их содержимое (если запущен от админа), следить за изменениями памяти, поэтому сам по себе драйвер не спасет от детекта.
Много чего, того, что находится в ринг 0 невидимо для апликейшен левела. Например если ac MRAC попробует сделать что то подобное - __asm__("bound 0x1000, 0x1001"), где 1000 и 1001 адресса находятся в ядре, ему выкинет gpe или sf. Насколько я знаю, если юзать только те функции, которые доступны только кернелу, никакой ас находящийся на ring 3,2,1 лвле не сможет задетектить чит
Это называется привелигированные инструкции, ring 2 и 1 не используются никогда вообще.
Даже используя функции ядра и например пропатчив память, у которой была раньше снята контрольная сумма, это не спасет от детекта.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ты путаешь понятия, это называется не ядро, а кольцо (ring), которое описывает уровень доступа.
Вообще x86 поддерживает 4 кольца, но в винде используются только 2 (0 и 3), потому что есть архитектуры где только 2.
При этом на самом деле любые процессы постоянно работают на нескольких уровнях привилегий, обычное приложение в юзермоде (3 кольце), затем вызывает вин апи функцию скажем CreateFileA из kerne32.dll, она уже обращается к NtCreateFile в ntdll.dll, которая в свою очередь переходник на системный вызов, во время системного вызова процессор переключается в режим ядра и передает управление ядру винды к обработчику NtCreateFile, т.е. технически процесс продолжает выполнение уже в 0 кольце.
Тем не менее, то что мрак не имеет своего драйвера не значит, что он по косвенным признакам не может задетектить чит из драйвера.
Например мрак может получить список драйверов, найти их на диске, посмотреть их содержимое (если запущен от админа), следить за изменениями памяти, поэтому сам по себе драйвер не спасет от детекта.

Это называется привелигированные инструкции, ring 2 и 1 не используются никогда вообще.
Даже используя функции ядра и например пропатчив память, у которой была раньше снята контрольная сумма, это не спасет от детекта.
получается, что писать драйвер для варфейса бесполезно? можно сделать что-то более эффективное в этой ситуации и обойтись без драйвера?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
получается, что писать драйвер для варфейса бесполезно? можно сделать что-то более эффективное в этой ситуации и обойтись без драйвера?
Спуфер, инжектор.
Если можешь инжектить без драйвера мапом - это очень хорошо.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
получается, что писать драйвер для варфейса бесполезно? можно сделать что-то более эффективное в этой ситуации и обойтись без драйвера?
Почему же, если у мрака тоже драйвер, то вы просто будете на равном уровне привилегий.
И до тех пор пока майкрософт и вендоры железа не затянут гайки туже, ты всегда сможешь победить.
Только драйвер ач у тебя будет прямо перед глазами, и ты сможешь среверсить все что он делает, а свой дров защитить как следует, чтобы усложнить им анализ.
Кроме этого, ач все таки софт общего пользования, они где-то вынуждены использовать стабильные методы, которые гарантированно будут работать у всех, а ты же можешь использовать что-то более опасное/недокументированное.
Насчет более эффективного, сейчас любят говорить про гипервизоры, но это больше сказка, да можно, но для новичка маловероятно.
 
Почему же, если у мрака тоже драйвер, то вы просто будете на равном уровне привилегий.
И до тех пор пока майкрософт и вендоры железа не затянут гайки туже, ты всегда сможешь победить.
Только драйвер ач у тебя будет прямо перед глазами, и ты сможешь среверсить все что он делает, а свой дров защитить как следует, чтобы усложнить им анализ.
Кроме этого, ач все таки софт общего пользования, они где-то вынуждены использовать стабильные методы, которые гарантированно будут работать у всех, а ты же можешь использовать что-то более опасное/недокументированное.
Насчет более эффективного, сейчас любят говорить про гипервизоры, но это больше сказка, да можно, но для новичка маловероятно.
Гипервизор заебешься изучать, насколько мне известно. Пока будешь тратить на него время - обходить детекты гипервизора у ач, они сделают ещё 100500 способов как его задетектить, и так по кругу.

@Dimedrol замапить дрв и никаких имён нет, просто надо закрыть дыры того же кдмаппера и спрятать свой драйвер. Либо сделать свой дрв с помощью которого будешь уже свой основной дрв загружать, и какие-то базовые хуёвины скрыть.
ну а через сокеты же не надо регистрировать девайс
Если не ошибаюсь, там нужон поток свой, а этого новичку я б не посоветовал делать.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Гипервизор заебешься изучать, насколько мне известно. Пока будешь тратить на него время - обходить детекты гипервизора у ач, они сделают ещё 100500 способов как его задетектить, и так по кругу.

@Dimedrol замапить дрв и никаких имён нет, просто надо закрыть дыры того же кдмаппера и спрятать свой драйвер. Либо сделать свой дрв с помощью которого будешь уже свой основной дрв загружать, и какие-то базовые хуёвины скрыть.

Если не ошибаюсь, там нужон поток свой, а этого новичку я б не посоветовал делать.
Да, там создаётся поток
 
Назад
Сверху Снизу