|
33 | 33 | { |
34 | 34 | "library": "server", |
35 | 35 | "windows": "48 89 5C 24 ? 55 56 57 41 55 41 57 48 83 EC ? 44 8B 89", |
36 | | - "linux": "55 48 89 E5 41 57 41 56 41 55 49 89 D5 41 54 49 89 F4 53 48 89 FB 48 83 EC ? 8B 87" |
| 36 | + "linux": "55 48 89 E5 41 57 49 89 FF 41 56 41 55 41 54 49 89 D4 53 48 89 F3 48 81 EC" |
37 | 37 | }, |
38 | 38 | // Check vauff's pin in #scripting |
39 | 39 | "ServerMovementUnlock": |
40 | 40 | { |
41 | 41 | "library": "server", |
42 | | - "windows": "0F 86 AF ? ? ? 0F 57 C0 0F 2E C2", |
43 | | - "linux": "0F 87 ? ? ? ? F3 0F 10 3D ? ? ? ? F3 0F 11 BD ? ? ? ? 48 89 DE" |
| 42 | + "windows": "0F 86 A8 ? ? ? 0F 57 C0 0F 2E C2", |
| 43 | + "linux": "0F 86 8A ? ? ? F3 0F 51 C9 49 8B 07" |
44 | 44 | }, |
45 | 45 | // String: "CCSPlayerPawnBase::SwitchTeam", just keep in mind this is actually CCSPlayerController::SwitchTeam |
46 | 46 | "CCSPlayerController_SwitchTeam": |
|
53 | 53 | "CheckJumpButtonWater": |
54 | 54 | { |
55 | 55 | "library": "server", |
56 | | - "windows": "C8 42 EB ? 4C 8B 77 ? 4D 39 6E", |
57 | | - "linux": "C8 42 41 C7 84 24 ? ? ? ? ? ? ? ? 41 C7 84 24 ? ? ? ? ? ? ? ? E9" |
| 56 | + "windows": "C8 42 EB ? 4C 8B 77 ? 4D 39 66", |
| 57 | + "linux": "C8 42 41 C7 85 ? ? ? ? ? ? ? ? 41 C7 85 ? ? ? ? ? ? ? ? E9" |
58 | 58 | }, |
59 | 59 | // Called right after "Removed %s(%s)\n" |
60 | 60 | "UTIL_Remove": |
|
112 | 112 | "CBaseEntity_TakeDamageOld": |
113 | 113 | { |
114 | 114 | "library": "server", |
115 | | - "windows": "40 55 41 54 41 55 41 56 41 57 48 81 EC ? ? ? ? 48 8D 6C 24 ? 48 89 9D ? ? ? ? 45 33 ED", |
116 | | - "linux": "55 48 89 E5 41 57 41 56 41 55 49 89 FD 41 54 49 89 F4 53 48 89 D3 48 83 EC ? 48 85 D2" |
| 115 | + "windows": "40 55 53 56 57 41 54 48 8D 6C 24 ? 48 81 EC ? ? ? ? 4D 8B E0", |
| 116 | + "linux": "55 48 89 E5 41 57 41 56 41 55 49 89 FD 31 FF" |
117 | 117 | }, |
118 | 118 | // Should be xref'd right above "flGravity", takes a float arg |
119 | 119 | "CBaseEntity::SetGravityScale": |
120 | 120 | { |
121 | 121 | "library": "server", |
122 | 122 | "windows": "48 89 5C 24 ? 57 48 83 EC ? F3 0F 10 81 ? ? ? ? 48 8B F9 0F 29 74 24 ? 0F 28 F1 0F 2E C6 7A ? 74", |
123 | | - "linux": "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 89 FB 48 81 EC ? ? ? ? 0F 2E 87 ? ? ? ? 7A ? 75 ? 48 81 C4 ? ? ? ? 5B 41 5C 41 5D 41 5E 41 5F 5D C3 0F 1F 40 ? 31 C9 31 F6 31 FF F3 0F 11 85 ? ? ? ? 66 89 8D ? ? ? ? BA ? ? ? ? B9 ? ? ? ? 66 0F EF C9 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 0F 29 8D ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? C7 85 ? ? ? ? ? ? ? ? E8 ? ? ? ? F3 0F 10 85 ? ? ? ? 85 C0 41 89 C4 0F 8E ? ? ? ? 48 63 8D ? ? ? ? 48 63 D0 31 F6 F3 0F 11 85 ? ? ? ? 48 C1 E2 ? 48 8B BD ? ? ? ? 48 C1 E1 ? 81 BD ? ? ? ? ? ? ? ? 40 0F 96 C6 E8 ? ? ? ? 8B 95 ? ? ? ? F3 0F 10 85 ? ? ? ? 48 89 85 ? ? ? ? 81 FA ? ? ? ? 0F 87" |
| 123 | + "linux": "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 89 FB 48 81 EC ? ? ? ? 0F 2E 87 ? ? ? ? 7A ? 75 ? 48 81 C4 ? ? ? ? 5B 41 5C 41 5D 41 5E 41 5F 5D C3 0F 1F 40 ? 31 C9 BE ? ? ? ? 66 0F EF C9 F3 0F 11 85 ? ? ? ? 48 8D BD ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 0F 29 8D ? ? ? ? 4C 8D A5 ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? C7 85 ? ? ? ? ? ? ? ? 66 89 8D ? ? ? ? E8 ? ? ? ? 48 8B 85 ? ? ? ? 48 8D 15 ? ? ? ? 83 85 ? ? ? ? ? F3 0F 10 85 ? ? ? ? C7 00 ? ? ? ? 48 8B 03 48 8B 80 ? ? ? ? 48 39 D0 0F 85 ? ? ? ? 8B 95 ? ? ? ? 4C 8D 7B ? 85 D2 0F 85 ? ? ? ? 80 BB ? ? ? ? ? 75" |
124 | 124 | }, |
125 | 125 | // "Game System %s is defined twice!\n" |
126 | 126 | // Note that this signature points to the instruction with sm_pFirst which is the first qword referenced in the function. |
|
153 | 153 | "windows": "44 88 4C 24 ? 53 57 41 54 41 56 41 57 48 83 EC", |
154 | 154 | "linux": "55 48 8D 87 ? ? ? ? 48 89 E5 41 57 41 89 CF" |
155 | 155 | }, |
156 | | - // String: "CNavMesh::GetNearestNavArea" |
| 156 | + // String: "GetNearestNav" |
157 | 157 | "CNavMesh_GetNearestNavArea": |
158 | 158 | { |
159 | 159 | "library": "server", |
160 | | - "windows": "48 89 5C 24 ? 44 89 4C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24", |
161 | | - "linux": "55 48 8D 05 ? ? ? ? 48 89 E5 41 57 41 56 49 89 FE 41 55 48 8D 3D" |
| 160 | + "windows": "48 89 5C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 4C 8B 2D", |
| 161 | + "linux": "55 48 89 E5 41 57 49 89 D7 41 56 41 55 49 89 FD 41 54 4D 89 C4" |
162 | 162 | }, |
163 | 163 | // Search "Changes's player's model", look for a function containing 'models/%s.vmdl'. Below V_snprintf is the one |
164 | 164 | // This matches 2 functions, however they're literally identical |
165 | 165 | "CBaseModelEntity_SetModel": |
166 | 166 | { |
167 | 167 | "library": "server", |
168 | | - "windows": "40 53 48 83 EC ? 48 8B D9 4C 8B C2 48 8B 0D ? ? ? ? 48 8D 54 24 ? 48 8B 01 FF 50 ? 48 8B 44 24", |
169 | | - "linux": "55 48 89 F2 48 89 E5 53 48 89 FB 48 8D 7D ? 48 83 EC ? 48 8D 05 ? ? ? ? 48 8B 30 48 8B 06" |
| 168 | + "windows": "40 53 48 83 EC ? 48 8B D9 4C 8B C2 48 8B 0D ? ? ? ? 48 8D 54 24 ? 48 8B 01 FF 50 ? 48 8B 54 24", |
| 169 | + "linux": "55 48 89 E5 53 48 89 FB 48 83 EC ? 48 8D 05 ? ? ? ? 48 8B 38 48 8B 07 FF 50 ? 48 89 DF" |
170 | 170 | }, |
171 | 171 | "CGameRules_TerminateRound": |
172 | 172 | { |
|
177 | 177 | "CCSPlayer_WeaponServices_CanUse": |
178 | 178 | { |
179 | 179 | "library": "server", |
180 | | - "windows": "48 89 5C 24 ? 48 89 6C 24 ? 56 57 41 56 48 83 EC ? 48 8B 01 48 8B FA", |
| 180 | + "windows": "48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 54 41 55 41 56 41 57 48 83 EC ? 48 8B 01 48 8B FA", |
181 | 181 | "linux": "55 48 8D 15 ? ? ? ? 48 89 E5 41 55 41 54 49 89 FC 53 48 89 F3 48 83 EC ? 48 8B 07 48 8B 80" |
182 | 182 | }, |
183 | 183 | "CCSPlayer_WeaponServices_EquipWeapon": |
|
196 | 196 | { |
197 | 197 | "library": "server", |
198 | 198 | "windows": "48 89 5C 24 10 57 48 83 EC 30 48 8B DA 48 8B F9 48 85 C9", |
199 | | - "linux": "48 85 FF 74 ? 55 48 89 E5 41 55 49 89 FD" |
| 199 | + "linux": "48 85 FF 74 ? 55 48 89 E5 41 55 41 54 49 89 FC" |
200 | 200 | }, |
201 | 201 | // Look for "SetEntityName", that will be the vscript binding definition |
202 | 202 | // Scroll a bit down and you'll find something like this (note the offset): *(_QWORD *)(v453 + 64) = sub_1807B0350; |
|
227 | 227 | { |
228 | 228 | "library": "server", |
229 | 229 | "windows": "48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 18 4C 89 74 24 20 55 48 8D 6C 24 D1", |
230 | | - "linux": "55 48 89 E5 41 57 41 56 41 55 41 54 41 89 CC 53 48 89 D3" |
| 230 | + "linux": "55 48 89 E5 41 57 41 56 41 55 41 89 CD 41 54 53 48 89 D3" |
231 | 231 | }, |
232 | 232 | // search for "land_%s", this is called after that string is referenced (the one with 4 parameters). |
233 | 233 | // (function that calls it also contains "T_Default.SuitLand"). |
|
249 | 249 | { |
250 | 250 | "library": "server", |
251 | 251 | "windows": "48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 83 EC ? 41 0F B6 F0", |
252 | | - "linux": "55 48 89 E5 41 57 41 56 41 55 41 54 41 89 D4 53 48 89 FB 48 81 EC ? ? ? ? 40 38 B7" |
| 252 | + "linux": "55 48 89 E5 41 57 49 89 FF 41 56 41 55 41 54 53 89 D3 48 81 EC ? ? ? ? 40 38 B7" |
253 | 253 | }, |
254 | 254 | // Use CBaseEntity::Use offset |
255 | 255 | // This signature points directly to the instruction to patch |
256 | 256 | "CPhysBox_Use": |
257 | 257 | { |
258 | 258 | "library": "server", |
259 | | - "windows": "4C 8B 43 ? 48 8D 8F ? ? ? ? 48 8B 13 E8 ? ? ? ? 48 8B 5C 24 ? 48 83 C4 ? 5F C3 CC CC CC CC 48 89 5C 24", |
| 259 | + "windows": "4C 8B 43 ? 48 8D 8F ? ? ? ? 48 8B 13 E8 ? ? ? ? 48 8B 5C 24 ? 48 83 C4 ? 5F C3 CC CC CC CC 40 53", |
260 | 260 | "linux": "49 8B 54 24 ? 45 31 C9 45 31 C0 C7 45 ? ? ? ? ? 49 8B 34 24 48 8D 4D ? 66 0F EF C0 48 C7 45 ? ? ? ? ? 48 8D BB ? ? ? ? E8 ? ? ? ? F6 45 ? ? 74 ? 48 8B 05 ? ? ? ? 48 8B 75 ? 48 8B 38 48 8B 07 FF 50 ? 48 83 C4" |
261 | 261 | }, |
262 | 262 | "CTakeDamageInfo": |
|
322 | 322 | "CBasePlayerPawn_GetEyePosition": |
323 | 323 | { |
324 | 324 | "library": "server", |
325 | | - "windows": "48 89 5C 24 ? 57 48 83 EC ? 48 8B F9 48 8B DA 48 8B 89 ? ? ? ? 48 85 C9 74 ? 48 8B 01", |
| 325 | + "windows": "48 89 74 24 ? 57 48 83 EC ? 48 8B F1 48 8B FA 48 8B 89 ? ? ? ? 48 85 C9 74 ? 48 8B 01", |
326 | 326 | "linux": "55 48 89 E5 53 48 89 FB 48 83 EC ? 48 8B BF ? ? ? ? 48 85 FF 0F 84" |
327 | 327 | }, |
328 | 328 | "CBasePlayerPawn_GetEyeAngles": |
|
343 | 343 | { |
344 | 344 | "library": "server", |
345 | 345 | "windows": "41 54 48 81 EC ? ? ? ? BA ? ? ? ? 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0", |
346 | | - "linux": "55 48 8D 3D ? ? ? ? BE ? ? ? ? 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? E8 ? ? ? ? 48 85 C0 0F 84 ? ? ? ? 8B 10" |
| 346 | + "linux": "55 48 8D 3D ? ? ? ? BE ? ? ? ? 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? E8 ? ? ? ? 48 85 C0 0F 84 ? ? ? ? 8B 00" |
347 | 347 | }, |
348 | 348 | // Location to CUtlMap unk that is referenced on Windows by function with "Notification about user penalty: %u/%u (%u sec)\n" string |
349 | 349 | // On Linux, a qword appears twice in GameSystem_Think_CheckSteamBan, and thrice in a sub-function of the function used for Windows (1 top, 2 bottom), the only other reference to this qword is some convar registration function with two unks above, sm_mapGcBanInformation is the unk further away |
|
526 | 526 | { |
527 | 527 | "ServerMovementUnlock": |
528 | 528 | { |
529 | | - "windows": "E9 B0 00 00 00 90", |
530 | | - "linux": "90 90 90 90 90 90" |
| 529 | + "windows": "E9 A9 00 00 00 90", |
| 530 | + "linux": "E9 8B 00 00 00 90" |
531 | 531 | }, |
532 | 532 | "FixWaterFloorJump": |
533 | 533 | { |
|
0 commit comments