-
Автор темы
- #1
=========================================================
Ахтунг! Пожалуйста, перед тем как оставлять комментарий по поводу темы, прочитайте текст в рамке.
Скажу сразу, это перезалив моей статьи с другого форума, поэтому очень высока вероятность того, что информацию которую вы для себя откроете в этой статье более чем не актуальна. (Исключение: CrackMe)
Это больше памятка для себя, т.к. есть основания полагать, что форум для которого я выпускал статьи может скоро загнуться, дабы не потерять весь свой материал я решил его перезалить сюда.
=========================================================
Ахтунг! Пожалуйста, перед тем как оставлять комментарий по поводу темы, прочитайте текст в рамке.
Скажу сразу, это перезалив моей статьи с другого форума, поэтому очень высока вероятность того, что информацию которую вы для себя откроете в этой статье более чем не актуальна. (Исключение: CrackMe)
Это больше памятка для себя, т.к. есть основания полагать, что форум для которого я выпускал статьи может скоро загнуться, дабы не потерять весь свой материал я решил его перезалить сюда.
=========================================================
Шалом. Давно я не выпускал статью с реверсом чего-либо, связано это было с отсутствием времени и апатией, которая меня преследовала неделями.
Сегодня я решил разобрать лоадер Neverlose.cc, не знаю кто работал над ним, но парочку фишек я подчеркнул которые встретил во время отладки
1. Введение
2. Лоадер ImGui
2.1. Аватарка + токен
2.2. Парсинг информации о читах
2.3. Проверка версии
2.4. Чек на валидность токена
2.5. Парсинг логина с сервера
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
3.2. Hello From Kernel-Mode!
4. Генерация HWID и соединение с сервером
4.1. Метки для генерации HWID
5. Итоги
6. Бонус
2. Лоадер ImGui
2.1. Аватарка + токен
2.2. Парсинг информации о читах
2.3. Проверка версии
2.4. Чек на валидность токена
2.5. Парсинг логина с сервера
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
3.2. Hello From Kernel-Mode!
4. Генерация HWID и соединение с сервером
4.1. Метки для генерации HWID
5. Итоги
6. Бонус
1. Введение
На деле оказалось, что это х32 приложение накрытое вмпротектом, это относится к двум файлам
2. Лоадер ImGui
Первый файл, который имеет при себе ImGui интерфейс, это своего рода "дроппер", который перед тем, как сбросить второй файл сделает 5 реквестов на сервер, чтобы взять:
2.1. Аватарку юзера + токен ->
Пожалуйста, авторизуйтесь для просмотра ссылки.
(Токен юзера находится в HKEY_CURRENT_USER\Software\neverlose)
2.2. Второй реквест нужен для того, чтобы лоадер неверлуза спарсил результат, который находится в .json формате ->
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
[{"cheat": "csgo", "changelog":
{"changelog": "- Fixed Grenade Prediction\r\n- Fixed some lua crashes/bugs\n", "date": 1619808270}, "desc": "Neverlose for CS:GO will make you feel like a real professional.\nOne of the best legit and rage aimbots will allow you to kill all your enemies, and incredibly beautiful and customizable visuals will give your game new colors.\n", "status": "Undetected", "name": "CS:GO", "version": "2.5.1", "license": 1625150529, "lastlaunch": 1622560669, "type": "Release"},
{"cheat": "apex", "changelog": {"changelog": "", "date": 0}, "desc": "Neverlose for Apex Legends will allow you to make the most incredible kills in your life.\nThanks to customizable visuals and radar, you can see enemies even on the other end of the map.\nWith the help of skinchanger you can change the look of all your weapons. Isn't that great?\nOnly Windows 10 1803+ supported.", "status": "Unknown", "name": "Apex Legends", "version": "1.0.0", "license": 0, "lastlaunch": 0, "type": "Release"}]
Пожалуйста, авторизуйтесь для просмотра ссылки.
2.4. Четвертый реквест - это проверка на токен с реестра. При валидном токене сервер напишет "ok" ->
Пожалуйста, авторизуйтесь для просмотра ссылки.
2.5. Ну и пятый реквест, это парсинг моего логина с сервера, опять же без токена тут никак не обойтись =) ->
Пожалуйста, авторизуйтесь для просмотра ссылки.
Впринципе всё, разбирать особо нечего, конечно я успел еще глянуть проверку на подписку, но там нет ничего интересного
Скрин проверки:
Вообще в некоторых моментах у неверлуза есть проверка на User-Agent и так просто с браузера уже зайти нельзя будет
Лоадер сам по себе не имеет при себе какой-то защиты в отличии от второго файла, который он будет дроппать для инжекта
3. Консольное приложение с инжектом
Если же в первом лоадере неверлуза файл не имел при себе никаких сюпризов, то тут разработчики решили поиграться с любителями
поюзать ScyllaHide, делает он "12.4 шагов", где он успеет сгенерировать хвид, загрузить и выгрузить драйвер NeverBSOD, записать все логи с шагами в
"C:\\Users\\user_name\\AppData\\Local\\Temp\\\\nl.log" и т.д. Начнем по порядку
3.1. Анти-дебаг трюки и их обход
У Neverlose есть два типа антидебага: Исключения и MessageBoxA с сообщение об обнаружении отладчика
Вся антиотладка неверлуза состоит из работы со структурой Process Environment Block (PEB)
3.1.1. Детект с помощью OsBuildNumber
По началу когда я расставил везде галки на плагине я думал, что неверлуз детектит хуки на Nt функции, однако это далеко не так
Первый метод заключается в детекте хука OsBuildNumber
При детекте хука в EAX засовывался 0xDEADC0DE, а EIP полностью сбивается и ставится 0x0
т.е. программу уже невозможно будет дебажить
Скрин детекта:
3.1.2. Детект с помощью BeingDebugged
Второй метод заключается также в работе с PEB, на этот раз он не ставит хук, а просто по дефолту смотрит дебажат ли программу
с помощью PEB->BeingDebugged. Обход состоит просто в том, чтобы поставить галку только на BeingDebugged
3.2. Hello From Kernel-Mode!
Так как разработчики очень часто использовали CreateFileW для записи лога, я случайно пропалил место хранения драйвера, мониторя действия над nl.log =p Ну и как оказалось позже драйвер был вовсе накрыт вмпротектом, из-за чего невозможно провести какой-либо анализ
Разве что пытаться палить с клиента параметры DeviceIoControl. CreateFileW также будет использоваться и для создания хендла драйвера \\\\.\\nbsod, после создания хендла неверлуз пытается выгрузить свой драйвер через NtUnloadDriver, если он был загружен раннее до этого.
Сразу же после загрузки драйвера c помощью NtLoadDriver и сервиса с именем NeverBSOD драйвер удаляется полностью с пк, а сервис остаётся
Если кому интересно местоположение драйвера: C:\Windows\Temp\nbsod.sys
4. Генерация HWID и соединение с сервером
Все соединение неверлуза держиться только на сокетах, как например для проверки хвида он вызывался только в одном месте с помощью send, что позволяло создать паттерн для будущих патчей.
В основном неверлуз отправляет информацию о девайсах клиента без всякого шифрования. Итак, какие же метки для генерации хвида использует неверлуз?
4.1. Метки для генерации HWID
Первым делом он берет информацию о HID-девайсе: USB Keyboard SEM с помощью всё того же CreateFileA
Вызов CreateFileA:
016FEAF0 01A11600 "%20&hid=USB%20Keyboard%20%20SEM%0AUSB%20Keyboard%20%20SEM%0A"
Далее он будет брать информацию о количестве оперативной памяти
(пример: ram=7.983875);
О версии винды: (win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202);
О видеокарте: (gpu=AMD%20Radeon%20R7%20200%20Series&)
О процессоре: (cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&)
О прозводителе биоса: (bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&)
О версии винды: (win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202);
О видеокарте: (gpu=AMD%20Radeon%20R7%20200%20Series&)
О процессоре: (cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&)
О прозводителе биоса: (bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&)
Ну и напоследок после биоса он засунет информации о HID-девайсе, который я упомянул выше.
В целом весь реквест на сервер выглядит так:
016FEB50 01A112E8 "ram=7.983875&win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202&gpu=AMD%20Radeon%20R7%20200%20Series&cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&hid="
5. Итоги
Вот и подошел к концу мой реверс этого чудо-приложения, на который я потратил +- полтора дня. Я не упомянул много мелких деталей и реквестов по типу neverlose.cc/api-2/inj-start, neverlose.cc/api-2/getkey2?hash= и прочее. Да и впринципе уже не смогу о них рассказать, так как после того как я решил прочекать регионы памяти у csgo после инжекта - игра ушла в краш, а подписка была забанена. Полагаю, это был скан и отлавливание лишних открытых хендлов игры, но уже не суть =)
upd: если чо я уже давно разбанен, просто к слову
Подписывайтесь на блог моей команды :)
На этом всё. Всем добра и позитива.
Пожалуйста, авторизуйтесь для просмотра ссылки.
На этом всё. Всем добра и позитива.