06.04.2015

Bypassing the best protection

или как обойти в Warface новую защиту 


04.03.2015 произошло обновление Warface. Из-за того, что администрацией был некорректно собран dll-пакет, ESET-NOD32 сообщил о наличии вируса в обновлении. Вируса никакого не было. Но из-за этого администрация привлекла внимание к самой лучшей системе защиты win32 и .NET приложений. А то что самое сильное, является и самым слабым. Давайте по-порядку...

will be stronger

Итак, многие после обновления уже узнали о файле mrac.dll. Это динамически подключаемая библиотека с Themida. Themida - это одна из лучших систем защиты для приложений win32 и .NET. В частности, в warface она отвечает за защиту: 
  • самого приложения от модификаций 
  • памяти приложения от модификации 
  • обфускации точки входа 

Простым языком, это и есть та автоматическая система защиты, которая "кикает" за явное использование читов. Была ли она раньше, не могу сказать. Нужен компьютер с игрой до обновления 04.03.2015. Если есть такой, напишите мне личное сообщение, сделаем проверку. Данная система защиты по праву считается одной из лучших, хотя и имеет свои уязвимые места. Но слабость данной ситуации в том, что администрация Mail.ru сама указала нам, с каким файлом нам нужно работать. Но делать это стоит не варварским, очевидным путём удаления mrac.dll, а хитрее, незаметнее для BigBrothers. 

LET'S SPIES

После бессонной ночи изучения кода warface я обнаружил три точки обращения к mrac.dll:
  • во время запуска игры (сразу после первой видео-заставки) 
  • после первого боя за текущий день (в момент заставки с итогами) 
  • через 30 минут после активации игры (не важно играли вы или нет) 

Для исследования на первом твинке я грубо удалил mrac.dll и следил за всем исходящими пакетами. И каждый раз, когда обращение к dll-библиотеке было невозможным, программа анонимно (в фоновом режиме) с помощью приложения CrashSender1402.exe отправляла отчёт. В отчёте зачем-то указывался текущий IP и ID HDD. Чем грозит удаление mrac.dll точно не могу сказать. Ответ находится в коде на серверной стороне. Но, за сутки игры с читом на первом твинке я получил временный бан "из-за подозрительной активности". Т.е. для "основ" это большой риск получить и безвременную блокировку. А вот для второго твинка я не удалял, а заменил mrac.dll "куклой" и так же следил за всеми исходящими пакетами. Пока полёт нормальный. Бана нет. При этом, никаких анонимных отчётов не отправляется. "Кукла" - это переработанный mrac.dll с полностью совпадающей сигнатурой. В отличие от оригинала "кукла" не активирует Themida. Т.е. эта защита выключена. Для создания этой "куклы" нужно учесть, что Themida не использует инжектированные библиотеки ADVAPI32, KERNEL32 и USER32, а подгружает их. Т.е. работает с виртуальными копиями в оперативной памяти. Поэтому, благодаря нахождению дельты можно эту защиту обойти. Что получаем в итоге? Warface обращается к подменённому mrac.dll (кукле) не замечая ничего подозрительного. Далее игра думает, что Themida запущена и в случае обнаружения угрозы даст сигнал. Но если мы удалим mrac.dll, наш аккаунт вносится в список пристального наблюдения. Есть ли другая защита в warface кроме Themida? Да. Она на серверной стороне. Исходящие пакеты с наших компьютеров проверяются на контрольные суммы на серверах Mail.ru. Кривые руки, делающие читы с некорректным кодом, нарушают контрольные суммы. Рано или поздно, на сервере будет собрана объективная статистика по аккаунту с таким читом и вы получите бан даже без чита в этот момент и просто находясь на полигоне. 

P.S.
Куклу не выкладываю в открытый доступ, чтобы не упрощать жизнь администрации Mail.ru

Комментариев нет :