diff --git a/lib/src/dllmain.cpp b/lib/src/dllmain.cpp index 4797bf7..1bca114 100644 --- a/lib/src/dllmain.cpp +++ b/lib/src/dllmain.cpp @@ -8,7 +8,7 @@ using std::to_string; HWND unityWnd = 0; HANDLE hPipe = 0; -std::set PacketWhitelist = { 179, 130, 156, 2692, 100, 43, 119 }; // ping, token, loginreq +std::set PacketWhitelist = { 105, 155, 187, 198, 2688, 20, 74 }; // Allow Protocol: GetPlayerToken, PlayerLogin, AchievementAllDataNotify, Ping bool OnPacket(KcpPacket* pkt) { if (pkt->data == nullptr) return true; @@ -29,7 +29,7 @@ bool OnPacket(KcpPacket* pkt) { return false; } printf("Passed cmdid: %d\n", ReadMapped(data->vector, 2)); - if (ReadMapped(data->vector, 2) == 2692) { + if (ReadMapped(data->vector, 2) == 2688) { auto headLength = ReadMapped(data->vector, 4); auto dataLength = ReadMapped(data->vector, 6); auto iStr = Genshin::ToBase64String(data, 10 + headLength, dataLength, nullptr); diff --git a/lib/src/il2cpp-api-functions.h b/lib/src/il2cpp-api-functions.h index 49d9942..861d794 100644 --- a/lib/src/il2cpp-api-functions.h +++ b/lib/src/il2cpp-api-functions.h @@ -1,3 +1,3 @@ -DO_API(0x02974550, 0x02970540, uint32_t, il2cpp_gchandle_new, (Il2CppObject* obj, bool pinned)); -DO_API(0x02974260, 0x02970250, Il2CppObject*, il2cpp_gchandle_get_target, (uint32_t gchandle)); -DO_API(0x028BF7E0, 0x028BBE80, Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(0x02D2B620, 0x02D290A0, uint32_t, il2cpp_gchandle_new, (Il2CppObject* obj, bool pinned)); // search GCHandle.cpp in strings 2974550 +DO_API(0x02D2B330, 0x02D28DB0, Il2CppObject*, il2cpp_gchandle_get_target, (uint32_t gchandle)); +DO_API(0x02D2E840, 0x02D2C0A0, Il2CppString*, il2cpp_string_new, (const char* str)); diff --git a/lib/src/il2cpp-functions.h b/lib/src/il2cpp-functions.h index dd67152..9968b3c 100644 --- a/lib/src/il2cpp-functions.h +++ b/lib/src/il2cpp-functions.h @@ -4,31 +4,28 @@ using namespace Genshin; // N: System.Convert$ToBase64String // L: mscorlib -// S: Ref/E8 ?? ?? ?? ?? 48 8B D8 EB 23 E8 -DO_APP_FUNC(0x086B86C0, 0x086B6440, Il2CppString*, ToBase64String, (ByteArray* value, int offset, int length, void* method)); +DO_APP_FUNC(0x08F056A0, 0x08F1A0F0, Il2CppString*, ToBase64String, (ByteArray* value, int offset, int length, void* method)); // N: MoleMole.MonoLoginMainPage.version$set // L: Assembly-CSharp -// S: 84 C0 74 35 B9 52 FA 00 00 E8 ?? ?? ?? ?? 84 C0 74 27 B9 52 FA 00 00 E8 ?? ?? ?? ?? 48 85 C0 74 52 4C 8B C7 48 8B D3 48 8B C8 48 8B 5C 24 30 48 83 C4 20 5F E9 -DO_APP_FUNC(0X04186660, 0x04180EC0, void, SetVersion, (void* obj, Il2CppString* value, void* method)); +DO_APP_FUNC(0X05265A70, 0x052704C0, void, SetVersion, (void* obj, Il2CppString* value, void* method)); // N: UnityEngine.Application$RecordUserData // L: UnityEngine.CoreModule -DO_APP_FUNC(0x090BEBC0, 0x090BD710, ByteArray*, RecordUserData, (int32_t nType, void* method)); +DO_APP_FUNC(0x09932F30, 0x09947590, ByteArray*, RecordUserData, (int32_t nType, void* method)); // N: MoleMole.Packet$XorEncrypt [Obfuscated] // L: Assembly-CSharp -DO_APP_FUNC(0x0423B270, 0x04235CE0, void, XorEncrypt, (ByteArray** data, int length, void* method)); +DO_APP_FUNC(0x054B3120, 0x054BD670, void, XorEncrypt, (ByteArray** data, int length, void* method)); // OHOBJBNAMJM // N: Kcp.KcpNative$kcp_client_send_packet [Obfuscated] // L: Assembly-CSharp -DO_APP_FUNC(0x042281D0, 0x04222A60, int, KcpSend, (void* client, KcpPacket* pkt, void* method)); +DO_APP_FUNC(0x050BB390, 0x050C5AC0, int, KcpSend, (void* client, KcpPacket* pkt, void* method)); // CKKPANHPFAP // N: MoleMole.KcpClient$TryDequeueEvent [Obfuscated] // L: Assembly-CSharp -// S: Ref/public static extern Int32 [A-Z]{11}\(IntPtr [A-Z]{11}, [A-Z]{11}& [A-Z]{11}\) -DO_APP_FUNC(0x02BAFFF0, 0x02BAC3D0, bool, KcpRecv, (void* client, ClientKcpEvent* evt, void* method)); +DO_APP_FUNC(0x04496B50, 0x0449DBF0, bool, KcpRecv, (void* client, ClientKcpEvent* evt, void* method)); // GFFOOBHMCOJ -DO_APP_FUNC(0x08A43710, 0x08A41130, LPVOID, GetDefaultEncoding, (void* method)); +DO_APP_FUNC(0x09254010, 0x09269550, LPVOID, GetDefaultEncoding, (void* method)); -DO_APP_FUNC(0x08A42FB0, 0x08A409B0, Il2CppString*, GetString, (LPVOID encoding, LPVOID bytes, void* method)); +DO_APP_FUNC(0x092538C0, 0x09268DE0, Il2CppString*, GetString, (LPVOID encoding, LPVOID bytes, void* method)); diff --git a/lib/src/il2cpp-unity-functions.h b/lib/src/il2cpp-unity-functions.h index de80c0b..88a3fc8 100644 --- a/lib/src/il2cpp-unity-functions.h +++ b/lib/src/il2cpp-unity-functions.h @@ -1,3 +1,3 @@ using namespace Genshin; -DO_UNI_FUNC(0x00100300, 0x00100300, ByteArray*, UnityEngine_RecordUserData, (int32_t nType)); +DO_UNI_FUNC(0x00100550, 0x00100550, ByteArray*, UnityEngine_RecordUserData, (int32_t nType));