• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Разбор античита Live World (116 dev)

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
24 Фев 2019
Сообщения
163
Реакции
83
Категорически всех приветствую, с вами снова программист-неудачник Евгений и сегодня мы разберем по полочкам AC проекта Live World 116 devblog.
Итак мои маленькие и не очень читатели, начинаем.

Весь AC-клиент(если его можно так назвать) состоит из двух файлов:
"launcher_116.exe" - в папке с игрой,
и
"LWMod.dll" - в Rust116_Data\Managed

Рассмотрим два файла:
Воспользуемся бесплатной утилитой "
Пожалуйста, авторизуйтесь для просмотра ссылки.
", с её помощью можно легко и просто редактировать и просматривать программы на языке C# (Cи решётка).
Перетаскиваем exe файл и получаем следующую картину строения программы:

1610373768219.png


Конкретно нас интересует форма под названием: "Form1".
Ищем класс под названием "GetClientUpdate"
1610373775869.png


Итак, что мы тут видим? А видим мы следующую картину: идет проверка MD5 хеш файлов и в случае несовпадения данных с сайта - надпись меняется на "Доступно обновление клиента!!!".

1610373786763.png


Так же не забываем про проверку на валидность клиента в "GetLaunchertUpdate"

image.png


Думаю, на этом разбор лаунчера можно завершить :)
p.s - Не совсем понимаю зачем нужно проверять System.Drawing.dll, кто знает - прошу написать.
Рассмотрим LWMod.dll.
Все так же заходим в "DnSpy" и глядим в оба:
image.png


Тоже пытаетесь понять что тут написано? Не пытайтесь, файл зашифрован/обфусцированный.
"И что же делать?" - спросите Вы меня. Отвечаю: снимать "обфускацию".
Для этого нужно понять что за обфускатор поработал над файлом. Многие уже догадались по кодировке символов классов что это .net Reactor 4.x версии который легко снимается de4dot, но мой гайд рассчитан на подробное изложение материала поэтому я покажу как можно с точностью в 80% определять шифрование. Воспользуемся программой
Пожалуйста, авторизуйтесь для просмотра ссылки.
3.0 (Detect It Easy).
Перетаскиваем файл в программу и видим:
image.png


Как мы и предполагали выше, .Net Reactor собственной персоной ?
Ну ничего, воспользуемся программой de4dot которая нам поможет снять "протект".
Перетаскиваем нашу DLL на de4dot.exe и смотрим результат.
image.png


Результат положительный (хорошо что не COVID-19 :D)
Теперь расшифрованную DLL можно редактировать. Перетаскиваем новую DLL в DnSpy и любуемся.
Заходим в namespace LWMod и смотрим:
(За получение MD5 хеша отвечает класс smetod_0)

image.png

Конкретно этот кусок кода получает текущий модуль LWmod.dll и проверяет его MD5 хеш, а также MD5 хеш Assembly-CSharp.dll, а также сразу отсылает это при подключение на сервер игры через консоль (в консоли будет пусто).

image.png

Этот кусок кода ответственный за скриншот вашего экрана и сохранение его в буфер обмена, либо если он недоступен то в файл по пути "FOLDER_WITH_RUST\\Bundles\\items\\jacket.red.txt" и дальнейшей отсылкой его на сервер через всю ту же невидимую консоль.

image.png

Этот кусок кода ответственный за отправку ваших загруженных модулей и процессов ПК на сервер. Пример отправки: "proc.proc explorer.exe 49f68a5c8493ec2c0bf489821c21fc3b;..."

image.png

Этот кусок кода отправляет название вашего процесса с Rust'ом.

Потихоньку переходим в LWMod.Plugins/FileCheck

image.png

Итак, этот кусочек кода выполняет условие:
Если в модули не содержат в своём пути папку "Managed"
{
на сервер отправляем команду "testchit"
}

image.png

Судя по всему (не уверен на 100%) это проверка на ботов 0_о
Думаю, на этом разбор античита можно завершить :)
На этом гайд можно завершить :)
Ну вроде все что знал - рассказал. Критика приветствуется если она обоснованная и адекватная :3
Приятной игры в Rust.
С вами был программист-реверсер на минималках Евгений. До скорой встречи...
 
Круто дружище.
Не мог бы скинуть декомпилированный деобфусцированный проект дллки? Хотел бы код покапать, а делать самому - влом
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему когда я перекидываю dll в d4dot он у меня просто закрывается и все?
 
То что нужно И нехватало Просто убить время =D А вы еще читаете этот комент.
 
Назад
Сверху Снизу