-
Автор темы
- #1
Приветствую всех. Возникла проблема(вопрос) с паттернами. Мне нужно достать адрес из модуля, но т.к адрес не статический, он постоянно меняется. И я использую паттерн. Проблема(вопрос) заключается в этом:
Первый паттерн выглядит так:
+скрин 1
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04"), "xxxx????xxxxxxxx") + 4));
Данный паттерн прекрасно работает на старой версии игры, но игра обновилась и он слегка изменился.
Когда я перешел на новую версии игры, увидел такую ситуацию (скрин 2). Теперь у меня вопрос, какой паттерн у новой версии игры??? И еще немного не понимаю, что означает +4 в конце паттерна.
Я предполагаю, что должно получиться вот так?
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x57\x04\x8B\x42\x08\x8B\x68\x04\xA1\x00\x00\x00\x00\x00\x00\x00\x85\xC0"), "xxxxxxxxxx???????xx")));
а с +4 вот так?
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x57\x04\x8B\x42\x04\x8B\x68\x04\xA1\x00\x00\x00\x00\x00\x00\x00\x85\xC0"), "xxxxxxxxxx???????xx") + 4));
Если нет, то исправьте пожалуйста, как должно быть.
Первый паттерн выглядит так:
+скрин 1
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x4F\x04\xA1\x00\x00\x00\x00\x85\xC0\x8B\x51\x04\x8B\x6A\x04"), "xxxx????xxxxxxxx") + 4));
Данный паттерн прекрасно работает на старой версии игры, но игра обновилась и он слегка изменился.
Когда я перешел на новую версии игры, увидел такую ситуацию (скрин 2). Теперь у меня вопрос, какой паттерн у новой версии игры??? И еще немного не понимаю, что означает +4 в конце паттерна.
Я предполагаю, что должно получиться вот так?
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x57\x04\x8B\x42\x08\x8B\x68\x04\xA1\x00\x00\x00\x00\x00\x00\x00\x85\xC0"), "xxxxxxxxxx???????xx")));
а с +4 вот так?
this->address_of_weapon_array_ = *reinterpret_cast<uint32_t*>(*reinterpret_cast<uint32_t*>(FindPattern(this->cshell_base_, 0xFFFFFF, reinterpret_cast<uint8_t*>("\x8B\x57\x04\x8B\x42\x04\x8B\x68\x04\xA1\x00\x00\x00\x00\x00\x00\x00\x85\xC0"), "xxxxxxxxxx???????xx") + 4));
Если нет, то исправьте пожалуйста, как должно быть.