Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Tutorial

Decrypting LocalPlayer pointer in Apex Legends (Source engine variant)

apex_kraber_god
Member
MEMBER
Өкіл: 178
Қосылу күні: Jul 2022
Хабарламалар: 7
Рахмет: 86
1 ай бұрын · Jul 4, 2026 10:01 PM
#1

Respawn applies dynamic pointer permutation to LocalPlayer in r5apex.exe:

CPP
uintptr_t DecryptLocalPlayer(uintptr_t baseAddress) {
    uintptr_t encryptedPtr = Read<uintptr_t>(baseAddress + OFFSET_LOCAL_ENT);
    if (!encryptedPtr) return 0;
    
    // Rotate right and XOR with dynamically generated session key
    uintptr_t key = Read<uintptr_t>(baseAddress + OFFSET_DECRYPTION_KEY);
    uintptr_t decrypted = _rotr64(encryptedPtr ^ key, 0x17);
    return decrypted;
}

Reverse engineered directly from the player view render initialization routine.

vtable_slayer
Senior Reverser
MEMBER
Өкіл: 215
Қосылу күні: Mar 2018
Хабарламалар: 86
Рахмет: 61
1 ай бұрын · Jul 5, 2026 3:12 AM
#2

The rotation shift (0x17) changes slightly between major seasonal updates. Good disassembly breakdown.

raycast_ryan
Ballistics Dev
MEMBER
Өкіл: 72
Қосылу күні: Sep 2019
Хабарламалар: 32
Рахмет: 16
1 ай бұрын · Jul 5, 2026 11:10 AM
#3

Works cleanly. Local player origin and view angles read without issues.