From 811daba16489e0afd55dcec8c7459ac66117ab15 Mon Sep 17 00:00:00 2001 From: HolographicHat Date: Wed, 16 Aug 2023 20:00:06 +0800 Subject: [PATCH] 4.0 --- lib/src/dllmain.cpp | 4 ++-- lib/src/il2cpp-api-functions.h | 2 +- lib/src/il2cpp-functions.h | 28 ++++++++++++------------ lib/src/il2cpp-unity-functions.h | 2 +- res/proto/AchievementAllDataNotify.proto | 10 ++++----- src/GlobalVars.cs | 4 ++-- src/Utils.cs | 2 +- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/src/dllmain.cpp b/lib/src/dllmain.cpp index 7e8df6d..85a8d2f 100644 --- a/lib/src/dllmain.cpp +++ b/lib/src/dllmain.cpp @@ -9,7 +9,7 @@ HWND unityWnd = nullptr; HANDLE hPipe = nullptr; // Allow Protocol: GetPlayerToken, PlayerLogin, AchievementAllDataNotify, Ping, PlayerForceExit -std::set PacketWhitelist = { 6929, 7187, 4356, 6011, 1268, 24845, 24404, 29313 }; +std::set PacketWhitelist = { 21228, 2407, 25842, 29665, 27422, 5285, 8231, 1819 }; bool OnPacket(KcpPacket* pkt) { if (pkt->data == nullptr) return true; @@ -30,7 +30,7 @@ bool OnPacket(KcpPacket* pkt) { return false; } printf("Passed cmdid: %d\n", ReadMapped(data->vector, 2)); - if (ReadMapped(data->vector, 2) == 1268) { + if (ReadMapped(data->vector, 2) == 27422) { 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 948565a..f0fe807 100644 --- a/lib/src/il2cpp-api-functions.h +++ b/lib/src/il2cpp-api-functions.h @@ -1 +1 @@ -DO_API(0x941c20, 0x93e230, Il2CppString*, il2cpp_string_new, (const char* str)); +DO_API(0x9cc850, 0x9ca750, Il2CppString*, il2cpp_string_new, (const char* str)); diff --git a/lib/src/il2cpp-functions.h b/lib/src/il2cpp-functions.h index fbb199b..5deb637 100644 --- a/lib/src/il2cpp-functions.h +++ b/lib/src/il2cpp-functions.h @@ -2,30 +2,30 @@ using namespace Genshin; // DO_APP_FUNC(CN_OFFSET, OS_OFFSET, RETURN, FUNC_NAME, (ARGS...)); -DO_APP_FUNC(0x728b850, 0x7247520, Il2CppString*, ToBase64String, (ByteArray* value, int offset, int length, void* method)); +DO_APP_FUNC(0x7974040, 0x792b560, Il2CppString*, ToBase64String, (ByteArray* value, int offset, int length, void* method)); -DO_APP_FUNC(0x215d110, 0x214d7a0, void, SetVersion, (void* obj, Il2CppString* value, void* method)); +DO_APP_FUNC(0x21e5c10, 0x21bf5c0, void, SetVersion, (void* obj, Il2CppString* value, void* method)); -DO_APP_FUNC(0x7b4dc00, 0x7afe4e0, ByteArray*, RecordUserData, (int32_t nType)); +DO_APP_FUNC(0x81d1a00, 0x818d250, ByteArray*, RecordUserData, (int32_t nType)); -DO_APP_FUNC(0x166e5d0, 0x1662f60, void, XorEncrypt, (ByteArray** data, int length, void* method)); +DO_APP_FUNC(0x3174320, 0x3133880, void, XorEncrypt, (ByteArray** data, int length, void* method)); -DO_APP_FUNC(0xf71860, 0xf69870, int, KcpSend, (void* client, KcpPacket* pkt, void* method)); +DO_APP_FUNC(0x2d49720, 0x2d103a0, int, KcpSend, (void* client, KcpPacket* pkt, void* method)); -DO_APP_FUNC(0x433e670, 0x4315590, bool, KcpRecv, (void* client, ClientKcpEvent* evt, void* method)); +DO_APP_FUNC(0x3d6a920, 0x3d11e00, bool, KcpRecv, (void* client, ClientKcpEvent* evt, void* method)); -DO_APP_FUNC(0x75627b0, 0x751a960, LPVOID, GetDefaultEncoding, ()); +DO_APP_FUNC(0x7c9c9c0, 0x7c56400, LPVOID, GetDefaultEncoding, ()); -DO_APP_FUNC(0x7561ff0, 0x751a1c0, Il2CppString*, GetString, (LPVOID encoding, LPVOID bytes)); +DO_APP_FUNC(0x7c9c220, 0x7c55c60, Il2CppString*, GetString, (LPVOID encoding, LPVOID bytes)); -DO_APP_FUNC(0x7560d90, 0x7518f90, ByteArray*, GetBytes, (LPVOID encoding, LPVOID str)); +DO_APP_FUNC(0x7c9b030, 0x7c54a20, ByteArray*, GetBytes, (LPVOID encoding, LPVOID str)); -DO_APP_FUNC(0x1349850, 0x13415f0, VOID, RequestLogin, (LPVOID obj, LPVOID token, UINT uid)); +DO_APP_FUNC(0x1d2e480, 0x1d0db20, VOID, RequestLogin, (LPVOID obj, LPVOID token, UINT uid)); -DO_APP_FUNC(0x11ab1d0, 0x3e9f710, VOID, SetChecksum, (LPVOID obj, Il2CppString* value)); +DO_APP_FUNC(0x31285b0, 0x32ee9b0, VOID, SetChecksum, (LPVOID obj, Il2CppString* value)); -DO_APP_FUNC(0xd4e730, 0xd49dd0, VOID, ForceQuit, (LPVOID obj)); +DO_APP_FUNC(0xfa2eb0, 0xf99150, VOID, ForceQuit, (LPVOID obj)); -DO_APP_FUNC(0x607fbf0, 0x6044870, LPVOID, GetSingletonManager, ()); +DO_APP_FUNC(0x7257b20, 0x72079f0, LPVOID, GetSingletonManager, ()); -DO_APP_FUNC(0x607f920, 0x60445a0, LPVOID, GetSingletonInstance, (LPVOID obj, Il2CppString* value)); +DO_APP_FUNC(0x7257850, 0x7207720, LPVOID, GetSingletonInstance, (LPVOID obj, Il2CppString* value)); diff --git a/lib/src/il2cpp-unity-functions.h b/lib/src/il2cpp-unity-functions.h index a6a0298..cad390e 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(0x100560, 0x100560, ByteArray*, UnityEngine_RecordUserData, (int32_t nType)); +DO_UNI_FUNC(0x102fa0, 0x102fa0, ByteArray*, UnityEngine_RecordUserData, (int32_t nType)); diff --git a/res/proto/AchievementAllDataNotify.proto b/res/proto/AchievementAllDataNotify.proto index 84d5b42..bf05d67 100644 --- a/res/proto/AchievementAllDataNotify.proto +++ b/res/proto/AchievementAllDataNotify.proto @@ -9,13 +9,13 @@ message Achievement { FINISHED = 2; REWARD_TAKEN = 3; } - uint32 timestamp = 3; - uint32 current = 9; - uint32 total = 11; - uint32 id = 14; + uint32 timestamp = 15; + uint32 current = 14; + uint32 total = 4; + uint32 id = 5; Status status = 10; } message AchievementAllDataNotify { - repeated Achievement list = 3; + repeated Achievement list = 9; } diff --git a/src/GlobalVars.cs b/src/GlobalVars.cs index 3af4e92..15dc47d 100644 --- a/src/GlobalVars.cs +++ b/src/GlobalVars.cs @@ -20,8 +20,8 @@ public static class GlobalVars { public static readonly string CachePath = Path.Combine(DataPath, "cache"); public static readonly string LibFilePath = Path.Combine(DataPath, "YaeAchievement.dll"); - public const uint AppVersionCode = 39; - public const string AppVersionName = "2.9"; + public const uint AppVersionCode = 40; + public const string AppVersionName = "3.0"; public const string PipeName = "YaeAchievementPipe"; public const string BucketHost = "https://cn-cd-1259389942.file.myqcloud.com"; diff --git a/src/Utils.cs b/src/Utils.cs index cb5f236..a3a7dd0 100644 --- a/src/Utils.cs +++ b/src/Utils.cs @@ -92,7 +92,7 @@ public static class Utils { public static void CheckUpdate(bool useLocalLib) { var info = UpdateInfo.Parser.ParseFrom(GetBucketFileAsByteArray("schicksal/version"))!; - if (GlobalVars.AppVersionCode != info.VersionCode) { + if (GlobalVars.AppVersionCode < info.VersionCode) { Console.WriteLine(App.UpdateNewVersion, GlobalVars.AppVersionName, info.VersionName); Console.WriteLine(App.UpdateDescription, info.Description); if (info.EnableAutoDownload) {