Skip to content

Commit 41b392b

Browse files
committed
1.20.80.20 preview and 1.20.80.21 preview
1 parent 766cca1 commit 41b392b

File tree

2 files changed

+44
-14
lines changed

2 files changed

+44
-14
lines changed

src/Loader.cpp

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,22 @@ void __attribute__((constructor)) init() {
6363

6464
#if __arm__
6565
//ResourcePackManager::ResourcePackManager
66-
//1.20.50.20 preview
67-
ResourcePackManager_ResourcePackManager = FindSig(minecraftpeDetails, "F0 B5 03 AF 2D E9 00 07 90 B0 05 46 AD 48 98 46 92 46 78 44 00 68 00 68 0F 90 08 69");
66+
ResourcePackManager_ResourcePackManager = FindSignatures(minecraftpeDetails,
67+
//1.20.50.20 preview
68+
"F0 B5 03 AF 2D E9 00 07 90 B0 05 46 AD 48 98 46 92 46 78 44 00 68 00 68 0F 90 08 69"
69+
);
6870

6971
//AppPlatform::readAssetFile
70-
//1.20.50.20 preview
71-
AppPlatform_readAssetFile = FindSig(minecraftpeDetails, "F0 B5 03 AF 4D F8 04 8D 9C B0 04 46 6E 48 78 44 00 68 00 68 1B 90 00 20 CD E9 08 00");
72-
if (!AppPlatform_readAssetFile) {
72+
AppPlatform_readAssetFile = FindSignatures(minecraftpeDetails,
73+
//1.20.50.20 preview
74+
"F0 B5 03 AF 4D F8 04 8D 9C B0 04 46 6E 48 78 44 00 68 00 68 1B 90 00 20 CD E9 08 00",
7375
//1.20.50.03
74-
AppPlatform_readAssetFile = FindSig(minecraftpeDetails, "F0 B5 03 AF 4D F8 04 8D 9C B0 04 46 5E 48 78 44 00 68 00 68 1B 90 00 20 CD E9 08 00");
75-
}
76+
"F0 B5 03 AF 4D F8 04 8D 9C B0 04 46 5E 48 78 44 00 68 00 68 1B 90 00 20 CD E9 08 00",
77+
//1.20.80.20 preview
78+
"F0 B5 03 AF 4D F8 04 8D 9E B0 04 46 6E 48 78 44 00 68 00 68 1D 90 00 20 CD E9 09 00",
79+
//1.20.80.21 preview
80+
"F0 B5 03 AF 4D F8 04 8D A0 B0 04 46 85 48 78 44 00 68 00 68 1F 90 00 20 CD E9 09 00",
81+
);
7682

7783
if (ResourcePackManager_ResourcePackManager) {
7884
ResourcePackManager_ResourcePackManager += 1;
@@ -82,12 +88,20 @@ void __attribute__((constructor)) init() {
8288
}
8389
#elif __aarch64__
8490
//ResourcePackManager::ResourcePackManager
85-
//1.20.50.20 preview
86-
ResourcePackManager_ResourcePackManager = FindSig(minecraftpeDetails, "FF 03 03 D1 FD 7B 07 A9 FD C3 01 91 F9 43 00 F9 F8 5F 09 A9 F6 57 0A A9 F4 4F 0B A9 59 D0 3B D5 F6 03 03 2A 28 17 40 F9 F5 03 02 AA F3 03 00 AA A8 83 1F F8 28 10 40 F9");
91+
ResourcePackManager_ResourcePackManager = FindSignatures(minecraftpeDetails,
92+
//1.20.50.20 preview
93+
"FF 03 03 D1 FD 7B 07 A9 FD C3 01 91 F9 43 00 F9 F8 5F 09 A9 F6 57 0A A9 F4 4F 0B A9 59 D0 3B D5 F6 03 03 2A 28 17 40 F9 F5 03 02 AA F3 03 00 AA A8 83 1F F8 28 10 40 F9"
94+
);
8795

8896
//AppPlatform::readAssetFile
89-
//1.20.50.20 preview
90-
AppPlatform_readAssetFile = FindSig(minecraftpeDetails, "FF 03 04 D1 FD 7B 0C A9 FD 03 03 91 FC 5F 0D A9 F6 57 0E A9 F4 4F 0F A9 57 D0 3B D5 F3 03 08 AA E8 16 40 F9 A8 83 1F F8 FF 7F 02 A9");
97+
AppPlatform_readAssetFile = FindSignatures(minecraftpeDetails,
98+
//1.20.50.20 preview
99+
"FF 03 04 D1 FD 7B 0C A9 FD 03 03 91 FC 5F 0D A9 F6 57 0E A9 F4 4F 0F A9 57 D0 3B D5 F3 03 08 AA E8 16 40 F9 A8 83 1F F8 FF 7F 02 A9",
100+
//1.20.80.20 preview
101+
"FF ?? 04 D1 FD 7B ?? A9 FD ?? 03 91 FC 5F ?? A9 F6 57 ?? A9 F4 4F ?? A9 57 D0 3B D5 F3 03 08 AA E8 16 40 F9 A8 83 1F F8",
102+
//1.20.80.21 preview
103+
"FF 83 04 D1 FD 7B 0E A9 FD 83 03 91 FC 5F 0F A9 F6 57 10 A9 F4 4F 11 A9 57 D0 3B D5 F3 03 08 AA E8 16 40 F9 A8 83 1F F8"
104+
);
91105
#else
92106
#error unsupported architecture
93107
#endif

src/Util.h

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1+
#pragma once
2+
13
#include <cstdint>
24
#include <vector>
5+
#include <string>
36
#include "frida-gum.h"
47

5-
inline uintptr_t FindSig(const GumModuleDetails* moduleInfo, const char* signature) {
8+
#define FindSignature FindSig
9+
#define FindSignatures(moduleInfo, ...) FindSigs(moduleInfo, {__VA_ARGS__})
10+
11+
inline uintptr_t FindSig(const GumModuleDetails* moduleInfo, const std::string& signature) {
612
uintptr_t moduleBase = (uintptr_t)moduleInfo->range->base_address;
713
size_t moduleSize = moduleInfo->range->size;
814

915
std::vector<uint16_t> pattern;
10-
for (int i = 0; i < strlen(signature); i++) {
16+
for (int i = 0; i < signature.size(); i++) {
1117
if (signature[i] == ' ')
1218
continue;
1319
if (signature[i] == '?') {
@@ -45,4 +51,14 @@ inline uintptr_t FindSig(const GumModuleDetails* moduleInfo, const char* signatu
4551
}
4652

4753
return 0;
48-
}
54+
}
55+
56+
inline uintptr_t FindSigs(const GumModuleDetails* moduleInfo, const std::initializer_list<std::string>& signatures) {
57+
uintptr_t ptr = 0;
58+
for (auto& sig : signatures) {
59+
if ((ptr = FindSig(moduleInfo, sig))) {
60+
break;
61+
}
62+
}
63+
return ptr;
64+
}

0 commit comments

Comments
 (0)