|
7 | 7 | #include <inttypes.h>
|
8 | 8 | #include <iostream>
|
9 | 9 |
|
10 |
| -bool fakeResp = false; |
11 |
| -void *userData; |
12 |
| -typedef size_t (*callback_t)(char *ptr, size_t size, size_t nmemb, void *userdata); |
13 |
| -callback_t callback = nullptr; |
14 |
| - |
15 |
| -typedef void (*options_t)(void *, size_t, void *); |
16 |
| -options_t oOptions = nullptr; |
17 |
| - |
18 |
| -typedef intmax_t (*strtoimax_t)(const char *nptr, char **endptr, int base); |
19 |
| -strtoimax_t oStrtoimax = nullptr; |
20 |
| - |
21 |
| -void options(void *a1, size_t a2, void *a3) { |
22 |
| - if (a2 == 10002) { |
23 |
| - if (memcmp(a3, "https://md5c.", 13) == 0) { |
24 |
| - fakeResp = true; |
25 |
| - } |
26 |
| - } |
27 |
| - |
28 |
| - if (a2 == 10001) { |
29 |
| - userData = a3; |
30 |
| - } |
31 |
| - |
32 |
| - if (a2 == 20011) { |
33 |
| - callback = (callback_t)a3; |
34 |
| - } |
35 |
| - |
36 |
| - oOptions(a1, a2, a3); |
37 |
| -} |
38 |
| - |
39 |
| -const std::string resp = |
40 |
| - R"({"msg": "AtZAfcAb+qtSipkXI9CP8u5XUYPGyCbGq5C/VYyt6tcelFYehMuYs0q8m/q+RwGx0/jOB3jDRAqjcqmunJpoKrIFV9W/YC9wzY+GaSU2L8oNQHlpx9KgJ0K50aqwxQD0dKiWmd16b76sLCn8GvpVrSk1k6SoFtUtPe30Cf1BkOsFD2oxSGBioUK22MkPFO2uj5xIXfZ5tC1dB4cS5ttzVlDiLPXY1hlJBqgFpZTj8znRz5qpMhflK5euefmKRPTKzwt+JHFF2YImsmDf49bMCgS6ZIwHL/jbK8dRJwFRjfkZjvpw2XxrL3wKubLqZKjUG3lHP6oKijmcWFTeu68xHphRKmqy43Gg3MZ1wCoYwcQL6tPPoqMy6TJwJdt/mBfhklPRq0XcTAjpnTIJeIo7zH/L1kFaGRAVFtqbwGLIIN08bb+7/tV3MOOc8BEp4RCb721hakBRNFqJAeYrt7yzr/VeK2igLuByrTcBkd0SOIB5LgI5K/qrMf/90bB8sfcicIgJXSVxyuuov45UXM2Rdo4YiL5M8b4LCJwhEkmplS8=", "code": 200})"; |
41 |
| - |
42 |
| -typedef size_t (*perform_t)(void *); |
43 |
| -perform_t oPerform = nullptr; |
44 |
| -size_t perform(void *a1) { |
45 |
| - if (fakeResp == true) { |
46 |
| - fakeResp = false; |
47 |
| - std::cout << "Faking result" << std::endl; |
48 |
| - callback((char *)resp.c_str(), resp.size(), 1, userData); |
49 |
| - return 0; |
50 |
| - } |
51 |
| - |
52 |
| - return oPerform(a1); |
53 |
| -} |
54 |
| - |
55 |
| -intmax_t strtoint(const char *nptr, char **endptr, int base) { |
56 |
| - if (memcmp(nptr, "1721968703399", 13) == 0) { |
57 |
| - return 0x1f0ed5537a7; |
58 |
| - } |
59 |
| - |
60 |
| - return oStrtoimax(nptr, endptr, base); |
61 |
| -} |
62 |
| - |
63 | 10 | char *base = nullptr;
|
64 | 11 | const auto expectedRegion = 0x3d3000;
|
65 | 12 |
|
@@ -108,30 +55,6 @@ void start() {
|
108 | 55 | }
|
109 | 56 | }
|
110 | 57 |
|
111 |
| - // { |
112 |
| - // const void *found = |
113 |
| - // Sig::find(base, expectedRegion, "89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 48 83 EC 28 48 85 C9"); |
114 |
| - |
115 |
| - // if (found != nullptr) { |
116 |
| - // MH_CreateHook((LPVOID)found, (LPVOID)options, (LPVOID *)&oOptions); |
117 |
| - // MH_EnableHook((LPVOID)found); |
118 |
| - // } |
119 |
| - // } |
120 |
| - |
121 |
| - // { |
122 |
| - // const void *found = Sig::find(base, expectedRegion, "40 55 56 48 83 EC 38 48 8B F1 48 85 C9 75 0A 8D"); |
123 |
| - |
124 |
| - // if (found != nullptr) { |
125 |
| - // MH_CreateHook((LPVOID)found, perform, (LPVOID *)&oPerform); |
126 |
| - // MH_EnableHook((LPVOID)found); |
127 |
| - // } |
128 |
| - // } |
129 |
| - |
130 |
| - // { |
131 |
| - // MH_CreateHook((LPVOID)strtoimax, (LPVOID)strtoint, (LPVOID *)&oStrtoimax); |
132 |
| - // MH_EnableHook((LPVOID)strtoimax); |
133 |
| - // } |
134 |
| - |
135 | 58 | {
|
136 | 59 | const void *found = Sig::find(base, expectedRegion, "83 3D ? ? ? ? 00 75 04 33 C9 CD 29");
|
137 | 60 |
|
|
0 commit comments