Skip to content

fix(pointers): update patterns after last update#973

Open
m4nst3in wants to merge 1 commit into
YimMenu:enhancedfrom
m4nst3in:fix/patterns-after-update
Open

fix(pointers): update patterns after last update#973
m4nst3in wants to merge 1 commit into
YimMenu:enhancedfrom
m4nst3in:fix/patterns-after-update

Conversation

@m4nst3in

Copy link
Copy Markdown

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

Copilot AI review requested due to automatic review settings July 14, 2026 14:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines 232 to +234
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");
@sparklingspacess

Copy link
Copy Markdown

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.

@Asfandyar547

Copy link
Copy Markdown

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

@mrhussel172

Copy link
Copy Markdown

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

do you have 'PMFS', 'HJR', 'WJRD', 'SJRM2', 'SRP' pointers for the Legacy version? i would be grateful.

PMFS - Prepare Metric For Sending
HJR - Handle Join Request
WJRD - Write Join Response Data
SJRM2 - Serialize Join Request Message 2
SRP - Session Request Patch

@ShinyWasabi ShinyWasabi mentioned this pull request Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants