fix(pointers): update patterns after last update#973
Conversation
There was a problem hiding this comment.
Pull request overview
Updates signature patterns and relative offsets in the pointer scanner to restore broken pointer resolutions after a game update, ensuring hooks/patches continue to bind to the correct functions/instruction sites.
Changes:
- Updated several byte-pattern signatures used for locating functions/patch sites (e.g., SendNetworkDamage, SendEventAck, PrepareMetricForSending, JoinSessionByInfo).
- Adjusted pointer math/offsets derived from pattern matches (notably SendEventAck and PrepareMetricForSending).
- Changed the BattlEyeStatusUpdate patching approach to patch a new mid-function site (+0x10C) with
xor eax, eax; ret.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| scanner.Add(battlEyeStatusUpdatePatchPtrn, [this](PointerCalculator ptr) { | ||
| BattlEyeStatusUpdatePatch = BytePatches::Add(ptr.As<void*>(), | ||
| // since arxan obfuscated this subroutine, return mid-function instead | ||
| // TODO: this might break in a later update | ||
| std::to_array<std::uint8_t>({ | ||
| 0x48, 0x83, 0xC4, 0x38, // add rsp, 38h | ||
| 0x5F, // pop rdi | ||
| 0x5E, // pop rsi | ||
| 0xC3 // ret | ||
| }) | ||
| ); | ||
| BattlEyeStatusUpdatePatch = BytePatches::Add(ptr.Add(0x10C).As<void*>(), | ||
| std::to_array<std::uint8_t>({0x31, 0xC0, 0xC3})); // xor eax, eax; ret |
| }); | ||
|
|
||
| constexpr auto handleJoinRequestIgnorePoolPatchPtrn = Pattern<"41 83 FF 05 74 ? 42 8B 84 F5">("HandleJoinRequestIgnorePoolPatch"); | ||
| constexpr auto handleJoinRequestIgnorePoolPatchPtrn = Pattern<"41 83 FF 05 74 ? 41 83 FF 01">("HandleJoinRequestIgnorePoolPatch"); |
|
Rockstar seemed to change how most of the game detects stuff related to BattlEye, that's atleast from what I've been experimenting with. Don't know if this is a problem on my end or a wider issue. |
|
i dont wanna seen hatefull but when is the update gonna comeout i know its only benn like 9 hours but i would be nice to have a update for when its gonna come out |
do you have 'PMFS', 'HJR', 'WJRD', 'SJRM2', 'SRP' pointers for the Legacy version? i would be grateful. PMFS - Prepare Metric For Sending |
fixed some patterns that broke after the last update
SendNetworkDamage - jnbe is near now, still sub 0x51
PrepareMetricForSending - F9 to F1, sub 0x26 to 0x4B
SendEventAck - new sig, EventAck still Sub(4).Rip, SendEventAck Add(0x15).Add(1).Rip
BattlEyeStatusUpdate - patch entry at +0x10C (xor eax,eax; ret)
JoinSessionByInfo - entry prolog
HandleJoinRequestIgnorePoolPatch - new follow-up after the jz