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

Пользователь
Статус
Оффлайн
Регистрация
24 Фев 2019
Сообщения
164
Реакции[?]
83
Поинты[?]
0
Категорически всех приветствую, с вами снова программист-неудачник Евгений и сегодня мы разберем по полочкам 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"



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


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


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


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


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


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


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


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

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


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


Судя по всему (не уверен на 100%) это проверка на ботов 0_о
Думаю, на этом разбор античита можно завершить :)
На этом гайд можно завершить :)
Ну вроде все что знал - рассказал. Критика приветствуется если она обоснованная и адекватная :3
Приятной игры в Rust.
С вами был программист-реверсер на минималках Евгений. До скорой встречи...
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,571
Реакции[?]
1,266
Поинты[?]
4K
Круто дружище.
Не мог бы скинуть декомпилированный деобфусцированный проект дллки? Хотел бы код покапать, а делать самому - влом
 
Пользователь
Статус
Оффлайн
Регистрация
24 Фев 2019
Сообщения
164
Реакции[?]
83
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
14 Июл 2019
Сообщения
742
Реакции[?]
124
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему когда я перекидываю dll в d4dot он у меня просто закрывается и все?
 
Начинающий
Статус
Оффлайн
Регистрация
8 Июн 2019
Сообщения
147
Реакции[?]
21
Поинты[?]
0
То что нужно И нехватало Просто убить время =D А вы еще читаете этот комент.
 
Сверху Снизу