Перейти к содержанию
Авторизация  
gaffy

[Fallout 4] Листинг и экспорт списка предметов инвентаря

Рекомендуемые сообщения

Привет всем, не так давно начал учится гейм хакингу, что то уже понятно но многое еще нет, хотелось бы узнать каким образом можно получить список предметов в менюшках различных игр по средством CE, интересен не только fallout 4 его я привел как доступный для эксперимента пример.

 

Я пытался искать строку в памяти и изучать структуры уже исходя от найденного адреса, но пока ничего годного из этого не вышло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет, находишь ячейку инвентаря в памяти, затем кладешь в эту ячейку разные предметы и записываешь их айдишники. Примерно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А каким образом найти эту самую ячейку инвентаря ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обычным поиском изменилось/не изменилось, меняя предметы в этой ячейке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это довольно не простая тема, поэтому в идеале необходимо знать ООП, так будет проще воспринимать устройство инвентаря. В фолаче 4-м вроде нет ячеек, это просто список указателей внутри массива. Если игра написана с использованием виртуальных методов, то для поиска предметов и инвентаря в целом можно использовать RTTI, если нет, придется делать все ручками. По RTTI есть статьи на форуме. А поиск руками, тут все достаточно нудно.

 

Для начала инвентарь лучше забить предметами, которые скорее всего имеют общий родительский класс, ну например CWeapon, который содержит разные характеристики, которые CAK47 будет наследовать, но раз родитель общий, то и все остальные оружия, например CM16A3, тоже будут их наследовать.

 

Получается, первый шаг это восстановить, хотя бы пару наследуемых значений например количество патрон и что-нибудь еще, чтобы в дальнейшем, можно было накладывать этот шаблон под разные указатели и проверять, является ли он каким-нибудь оружием. Из утилит подойдет ReClass, но в принципе хватит и CE.

 

Второй шаг, найти указатель на структуру оружия, например базовый адрес 0xDEADBEEF, адрес патрон 0xE0. С этим справится обычный поиск, переводишь его в HEX вставляешь базовый адрес и ищешь. Получишь некое кол-во адресов. Каждый из которых нужно будет проверить, пока не найдешь, то что нужно.

 

Третий шаг, проверяешь с помощью шаблона ближайшие адреса от найденных на втором шаге, чтобы восстановленное смещение в шаблоне на разных указателях указывало на патроны, а так же чтобы количество лежащих рядом указателей было таким же как и количество оружия/предметов в инвентаре.

В упрощенном виде цепочка указателей выглядит примерно так:

CWorld -> CLevel -> EntityArray[playerID] -> CActor -> CInventory -> CInventorySlot -> SlotArray[slotID] -> CWeapon -> ammo


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 часов назад, gaffy сказал:

А каким образом найти эту самую ячейку инвентаря ?

Посмотри мой урок - может поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.