diff --git a/LunaHook/engine64/yuzu.cpp b/LunaHook/engine64/yuzu.cpp index 32fd7be..9ec19a1 100644 --- a/LunaHook/engine64/yuzu.cpp +++ b/LunaHook/engine64/yuzu.cpp @@ -140,7 +140,13 @@ bool Hook_Network_RoomMember_SendGameInfo() // Network::RoomMember *this, // const AnnounceMultiplayerRoom::GameInfo *game_info) game_info = *(GameInfo *)stack->rdx; - ConsoleOutput("%s %llx %s", game_info.name.c_str(), game_info.id, game_info.version.c_str()); + std::stringstream num; + num << std::uppercase + << std::hex + << std::setw(16) + << std::setfill('0') + << game_info.id; + ConsoleOutput("%s %s %s", game_info.name.c_str(), num.str().c_str(), game_info.version.c_str()); }; return NewHook(hp, "yuzuGameInfo"); } @@ -3138,7 +3144,7 @@ namespace {0x802a76c0, {CODEC_UTF32, 0, 0, 0, F01007FD00DB20000, "01007FD00DB20000", "1.0.0"}}, {0x8031fc80, {CODEC_UTF32, 1, 0, 0, F01007FD00DB20000, "01007FD00DB20000", "1.0.0"}}, // 真流行り神3 - {0x80082F70, {0, 0xb, 0, TF0100AA1013B96000, 0, "0100AA1013B96000", nullptr}},//"1.0.0", "1.0.1" + {0x80082F70, {0, 0xb, 0, TF0100AA1013B96000, 0, "0100AA1013B96000", nullptr}}, //"1.0.0", "1.0.1" }; return 1; diff --git a/include/types.h b/include/types.h index 0ffff47..3d307ae 100644 --- a/include/types.h +++ b/include/types.h @@ -95,11 +95,12 @@ enum class JITTYPE }; struct HookParam { - ALIGNPTR(uint64_t __11, uintptr_t address); // absolute or relative address - int offset, // offset of the data in the memory - index, // deref_offset1 - split, // offset of the split character - split_index; // deref_offset2 + // address和emu_addr需要在host和hook之间传递,因此不能用uintptr_t + uint64_t address; // absolute or relative address + int offset, // offset of the data in the memory + index, // deref_offset1 + split, // offset of the split character + split_index; // deref_offset2 wchar_t module[MAX_MODULE_SIZE]; @@ -113,7 +114,7 @@ struct HookParam ALIGNPTR(uint64_t __3, bool (*filter_fun)(void *data, size_t *len, HookParam *hp)); // jichi 10/24/2014: Add filter function. Return false to skip the text ALIGNPTR(uint64_t __6, bool (*hook_before)(hook_stack *stack, void *data, size_t *len, uintptr_t *role)); ALIGNPTR(uint64_t __7, void (*hook_after)(hook_stack *stack, void *data, size_t len)); - ALIGNPTR(uint64_t __8, uintptr_t hook_font); + uint64_t hook_font; ALIGNPTR(uint64_t __9, const wchar_t *newlineseperator); char name[HOOK_NAME_SIZE]; wchar_t hookcode[HOOKCODE_LEN]; @@ -121,7 +122,7 @@ struct HookParam { ZeroMemory(this, sizeof(HookParam)); } - ALIGNPTR(uint64_t __10, uintptr_t emu_addr); + uint64_t emu_addr; int argidx; JITTYPE jittype; char unityfunctioninfo[1024]; @@ -200,7 +201,7 @@ struct HookFoundNotif // From dll struct HookRemovedNotif // From dll { - HookRemovedNotif(uint64_t address) : address(address){}; + HookRemovedNotif(uint64_t address) : address(address) {}; HostNotificationType command = HOST_NOTIFICATION_RMVHOOK; uint64_t address; };