Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Гайд Как расшифровать оффсеты Rust

тред то кулити, только форматирование текста - говно, убери эти цвета, я умоляю, читать темный красный на фоне черного тупо невозможно :4Head:
 
Смысла нету его там дампить, там абсолютно другие оффсеты они не совместимы с виндой
да нет, иногда всетаки помогают, некоторые филды месяцами не обновляются
 
Недавно в раст добавили обфускацию оффсетов, и пастеркам сложно зайти на uc (noad) и сделать это по гайду оттуда.

Посмотреть вложение 291291

1. Для примера возьмем BasePlayer. Сначала нужно получить «TypeInfo» класса, найденного в script.json (сгенерированном il2cppdumper).

Посмотреть вложение 291294

2. Откройте GameAssembly.dll в IDA и перейдите по адресу классов. Для примера переименовал qword в «base_player_c».

Посмотреть вложение 291293


3.Здесь мы можем либо нажать X, чтобы просмотреть ссылки на эту переменную. Если нажать F5 для декомпиляции этой функции, то видно что она вызывает список других функций, которые ссылаются на другие qwords.

Посмотреть вложение 291295

Нам это неинтересно, поэтому мы можем прокрутить изображение дальше вниз, пока не найдем, где юзается переменная base_player_c.

Посмотреть вложение 291296


Теперь мы видим, что он устанавливает v28 в base_player_c и проверяет, является ли base_player_c + 0xE0(224) действительным, и если нет, то переинициализирует класс. После этого вызывается функция с v28 + некоторыми смещениями в качестве первого параметра и еще одним qword в качестве второго параметра. Мы можем дважды щелкнуть на этой функции, чтобы перейти к ней и декомпилировать.
Поскольку мы уже знаем, что первый параметр (a1) - это наш base_player_c + некоторые смещения, нам просто нужно посмотреть, где используется a1, потому что игра должна сначала расшифровать это значение перед использованием.

То, что я называю «некоторыми смещениями» (base_player_c + 0xB8 ] + 0x958 ), сначала указывает на статические field'ы (0xB8), а затем на VALID экземпляр visiblePlayerList (0x958).

Посмотреть вложение 291297


4. Дважды нажать на функцию, чтобы перейти к ней и декомпилировать ее. В результате вы получите расшифрованную функцию.

Посмотреть вложение 291298





И теперь вы научились декомпилить оффсеты, чтобы обновлять свои пасты плюсминуса. Этот процесс по идее можно автоматизировать и делать это быстрее, к тому же репозиторий BlazerDumper больше не обновляют.




UPD: 2 часть скоро
самый ужасный гайд по дампу оффсетов который я видел, вообще нихуя не понятно, цвет для текста подобран по уебански, можно было хотя бы желтый + болд юзать, либо текст вообще не трогать
насчет самого гайда, это пиздец
2. Откройте GameAssembly.dll в IDA и перейдите по адресу классов. Для примера переименовал qword в «base_player_c». - ты больной?
куда нахуй перейти? что нам с этим адрессом делать? ты блять даже перевести смысл не смог темы с юк, нам чтобы перейти в этот саб нужно
цифры с "Adress" нужно перевести в hex (dec2hex) мы получим что то по типу BC283SD потом в иде мы нажимаем alt + b и вводим "твои хекс цифры, но с добавлением 0x в начале, типо 0xBC283SD" + get_imagebase(), нас перекинет к инструкции, мы должны нажать f5 и мы легко и просто попадем внутрь этого саба
 
Назад
Сверху Снизу