Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace offsets {
- constexpr auto refdef = 0x17226AB0;
- constexpr auto name_array = 0x17231D58;
- constexpr auto name_array_pos = 0x4C70;
- constexpr auto camera_base = 0x14422F80;
- constexpr auto camera_pos = 0x1D8;
- constexpr auto local_index = 0x27540;
- constexpr auto local_index_pos = 0x1F4;
- // could not find any signature matches with 4C 8D 96 ? ? ? 00 B3 01 for no_recoil offset
- constexpr auto no_recoil = 0x0;
- // could not find any signature matches with 41 8B 85 ? ? ? ? 3B 05 ? ? ? ? for game_mode offset
- constexpr auto game_mode = 0x0;
- // could not find any signature matches with 4C 8B 94 CF ? ? ? ? 8D 4A 01 48 8B 7C 24 ? 45 8B 82 ? ? ? ? 45 85 C0 for weapon_definitions offset
- constexpr auto weapon_definitions = 0x0;
- namespace player {
- constexpr auto size = 0x3A60;
- constexpr auto valid = 0x30;
- constexpr auto pos = 0xEF8;
- constexpr auto team = 0x214;
- constexpr auto stance = 0x76C;
- constexpr auto dead_1 = 0x10;
- constexpr auto dead_2 = 0x34;
- }
- namespace client_info {
- constexpr auto encrypted_ptr = 0x17224118;
- }
- namespace client_base {
- constexpr auto encrypted_ptr = 0x9DB88;
- }
- namespace bone {
- constexpr auto encrypted_ptr = 0x155B2FE8;
- // could not find any signature matches with 48 05 ? ? ? ? 48 89 44 24 ? 4C 8D 84 24 for base_pos offset
- constexpr auto base_pos = 0x0;
- constexpr auto index_struct_size = 0x150;
- }
- namespace directx {
- // could not find any signature matches with 48 8D 0D ? ? ? ? FF C0 33 D2 F7 35 ? ? ? ? 89 15 ? ? ? ? E8 ? ? ? ? 8B 05 ? ? ? ? 4C 8D 05 for command_queue offset
- constexpr auto command_queue = 0x0;
- // could not find any signature matches with 48 8B 0D ? ? ? ? BA ? ? ? ? 4C 8B 05 ? ? ? ? 48 8B 01 FF 50 50 for swap_chain offset
- constexpr auto swap_chain = 0x0;
- }
- }
- #include "decryption.h"
- extern "C" auto decrypt_client_info(uint64_t game_base_address, uint64_t encrypted_ptr, uint64_t peb) -> uint64_t {
- uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, RSI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, R15 = 0;
- RBX = read<uint64_t>(memory->imageBase + 0x17224118);
- R8 = memory->peb; // mov r8,gs:[rax]
- RAX = memory->imageBase;
- RBX += RAX;
- RAX = RBX;
- RAX >>= 0x10;
- RBX ^= RAX;
- RAX = RBX;
- RCX = 0x0;
- RAX >>= 0x20;
- RAX ^= RBX;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= read<uint64_t>(memory->imageBase + 0x660D10A);
- RCX = _byteswap_uint64(RCX);
- RBX = read<uint64_t>(RCX + 0x13);
- RBX *= RAX;
- RAX = 0x76D048452DCF6909;
- RBX -= R8;
- R8 = ~R8;
- RBX *= RAX;
- RAX = memory->imageBase + 0x2C8CD073;
- R8 += RAX;
- RBX ^= R8;
- return RBX;
- }
- extern "C" auto decrypt_client_base(uint64_t game_base_address, uint64_t encrypted_ptr, uint64_t peb) -> uint64_t {
- uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, RSI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, R15 = 0;
- RAX = read<uint64_t>(client_info + 0x9DB88);
- RBX = memory->peb; // mov rbx,gs:[rcx]
- // test rax,rax
- // je 00007FF77524D6C8h
- RCX = RBX;
- RCX <<= 0x21;
- RCX = _byteswap_uint64(RCX);
- RCX &= 0xF;
- // cmp rcx,0Eh
- // ja 00007FF77524D2A4h
- switch(RCX) {
- case 0: {
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = RAX;
- RCX >>= 0x18;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x30;
- RAX ^= RCX;
- RCX = memory->imageBase;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- RCX = 0x345963FE4F9F5BC7;
- RAX *= RCX;
- RCX = 0x1BC0D0E9288C6DB3;
- RAX += RCX;
- RAX += RBX;
- RCX = memory->imageBase;
- RAX -= RCX;
- return RAX;
- }
- case 1: {
- R11 = memory->imageBase + 0x6064722A;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = RBX;
- RCX ^= R11;
- RAX -= RCX;
- RCX = RAX;
- RCX >>= 0x11;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x22;
- RAX ^= RCX;
- RAX ^= RBX;
- RCX = memory->imageBase + 0x28AB;
- RCX = ~RCX;
- RCX -= RBX;
- RAX += RCX;
- RCX = 0x16A1C31B3D93A83F;
- RAX *= RCX;
- RCX = 0xD0C234BF8A55764B;
- RAX *= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = 0xB75E6F62B4DBBCC1;
- RAX *= RCX;
- return RAX;
- }
- case 2: {
- R14 = memory->imageBase + 0x30A5;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = RAX;
- RCX >>= 0x15;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2A;
- RAX ^= RCX;
- RCX = RBX;
- RCX = ~RCX;
- RCX ^= R14;
- RAX -= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = 0x5D11A30DE94FFEDE;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x1B;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x36;
- RAX ^= RCX;
- RAX ^= RBX;
- RCX = 0x1D2CA89A1A1BE3D9;
- RAX ^= RCX;
- RCX = 0xDD63D27B22050957;
- RAX *= RCX;
- return RAX;
- }
- case 3: {
- R14 = memory->imageBase + 0x7B3CDBC1;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RDX = RBX;
- RDX = ~RDX;
- RCX = R14;
- RCX = ~RCX;
- RDX *= RCX;
- RAX += RDX;
- RCX = RAX;
- RCX >>= 0x26;
- RCX ^= RAX;
- RAX = RCX + RBX;
- RCX = memory->imageBase;
- RAX -= RCX;
- RAX -= 0x7736E4C5;
- RCX = 0xA4C7B3171334DA2E;
- RAX ^= RCX;
- RCX = 0x667B75570F23711D;
- RAX *= RCX;
- RCX = 0x7E05078E8B5B3EDA;
- RAX -= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- return RAX;
- }
- case 4: {
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- RAX ^= RBX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RCX = read<uint64_t>(RCX + 0xB);
- RSP = 0x64DE26759A457153;
- RCX *= RSP;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x24;
- RAX ^= RCX;
- RCX = 0x49AF5B2E74070925;
- RAX *= RCX;
- RCX = 0xB5CC279242DD0301;
- RAX *= RCX;
- return RAX;
- }
- case 5: {
- R11 = read<uint64_t>(memory->imageBase + 0x660D140);
- R15 = memory->imageBase + 0x6BA9;
- RDX = memory->imageBase + 0x5F9E55C9;
- RDX = ~RDX;
- RDX ^= RBX;
- RCX = RAX;
- RAX = 0xBF5978C960F6BB4B;
- RAX ^= RCX;
- RAX += RDX;
- RDX = memory->imageBase + 0x28877536;
- RCX = RAX;
- RCX >>= 0x18;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x30;
- RAX ^= RCX;
- RCX = RBX;
- RCX = ~RCX;
- RCX *= R15;
- RAX ^= RCX;
- R8 = 0x0;
- R8 = _rotl64(R8, 0x10);
- R8 ^= R11;
- RCX = RBX;
- RCX *= RDX;
- RDX = RAX;
- RDX -= RCX;
- RCX = 0x84229F2B4FE6843B;
- R8 = _byteswap_uint64(R8);
- RAX = read<uint64_t>(R8 + 0xB);
- RAX *= RDX;
- RAX *= RCX;
- RAX ^= RBX;
- return RAX;
- }
- case 6: {
- R15 = memory->imageBase + 0xE397;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = memory->imageBase;
- RAX += RCX;
- RCX = memory->imageBase;
- RAX += RCX;
- RCX = 0x4030351D523D85BB;
- RAX += RCX;
- RCX = RBX;
- RCX ^= R15;
- RAX += RCX;
- RCX = 0x71A01F36E5BF55AF;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RCX ^= RAX;
- RDX = 0x0;
- RDX = _rotl64(RDX, 0x10);
- RDX ^= R10;
- RDX = _byteswap_uint64(RDX);
- RAX = read<uint64_t>(RDX + 0xB);
- RDX = memory->imageBase + 0x31AFF9CE;
- RAX *= RCX;
- RCX = RBX;
- RCX *= RDX;
- RAX -= RCX;
- return RAX;
- }
- case 7: {
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- R15 = memory->imageBase + 0x9CF0;
- RCX = RAX;
- RCX >>= 0x19;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x32;
- RAX ^= RCX;
- RCX = memory->imageBase;
- RCX += 0x16E9;
- RCX += RBX;
- RAX ^= RCX;
- RDX = 0x0;
- RDX = _rotl64(RDX, 0x10);
- RDX ^= R10;
- RCX = RBX;
- RDX = _byteswap_uint64(RDX);
- RCX ^= R15;
- RDX = read<uint64_t>(RDX + 0xB);
- RAX *= RDX;
- RAX -= RCX;
- RCX = RAX;
- RCX >>= 0xA;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x14;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x28;
- RAX ^= RCX;
- RCX = 0x201300BD919020EB;
- RAX *= RCX;
- RCX = 0x136871F8B2311042;
- RAX += RCX;
- RCX = 0xE0229051A9F3C38B;
- RAX ^= RCX;
- return RAX;
- }
- case 8: {
- R15 = memory->imageBase + 0x6C04;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RDX = read<uint64_t>(RCX + 0xB);
- RCX = 0x866F75E98D0D53B1;
- RDX *= RAX;
- RAX = RBX;
- RAX *= R15;
- RDX += RAX;
- RDX ^= RBX;
- RAX = RDX;
- RAX >>= 0x20;
- RAX ^= RDX;
- RAX ^= RCX;
- RCX = 0x9E0D951F0C28F90B;
- RAX *= RCX;
- RCX = 0x78503CB374B04FAD;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x2;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x4;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- return RAX;
- }
- case 9: {
- R14 = memory->imageBase + 0x6CFB74E0;
- R11 = memory->imageBase + 0x7F309832;
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RAX ^= RBX;
- RAX ^= R14;
- RCX = RAX;
- RCX >>= 0x17;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2E;
- RAX ^= RCX;
- RCX = 0xD7356E290A5B1FBA;
- RAX += RCX;
- RCX = memory->imageBase;
- RAX ^= RCX;
- RCX = 0xD80D8A31210F08D3;
- RAX *= RCX;
- RCX = R11;
- RCX = ~RCX;
- RCX ^= RBX;
- RAX -= RCX;
- RCX = RAX;
- RCX >>= 0x9;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x12;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x24;
- RAX ^= RCX;
- return RAX;
- }
- case 10: {
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- R11 = memory->imageBase + 0x6AD2A7C4;
- RAX -= RBX;
- RAX ^= RBX;
- RCX = 0x29222BE3E0E2FFB;
- RAX ^= R11;
- R11 = memory->imageBase;
- RAX *= RCX;
- RCX = 0x5BB04B85CD9365D;
- RAX -= RBX;
- RAX += RCX;
- RAX += R11;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = 0x5FC588EC700475F3;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0xC;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x18;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x30;
- RAX ^= RCX;
- return RAX;
- }
- case 11: {
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- R14 = memory->imageBase + 0xCF97;
- RDX = R14;
- RDX = ~RDX;
- RDX++;
- RDX += RBX;
- RAX ^= RDX;
- RCX = memory->imageBase + 0xCA22;
- RAX += RBX;
- RDX = memory->imageBase;
- RAX += RCX;
- RCX = RBX;
- RCX = ~RCX;
- RCX -= RDX;
- RCX -= 0x1236;
- RAX ^= RCX;
- RCX = 0x48502E6384BA9941;
- RAX *= RCX;
- RCX = 0x5EB925E16D423E1E;
- RAX -= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = 0xE5AB625D3BB65BBF;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x1F;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x3E;
- RAX ^= RCX;
- return RAX;
- }
- case 12: {
- R15 = memory->imageBase + 0xEE34;
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = RBX + 1;
- RCX *= R15;
- RAX += RCX;
- RAX ^= RBX;
- RCX = 0xBF0F6EC504339C71;
- RAX *= RCX;
- RCX = 0x62753D45ABF968CD;
- RAX -= RCX;
- RCX = 0x28C82E52D21EB6AB;
- RAX -= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = RAX;
- RCX >>= 0xB;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x16;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2C;
- RAX ^= RCX;
- RCX = memory->imageBase;
- RAX ^= RCX;
- return RAX;
- }
- case 13: {
- R10 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = RAX;
- RCX >>= 0x2;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x4;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- RDX = RAX;
- RDX >>= 0x22;
- RDX ^= RAX;
- RCX = 0xAB96BD5255F50EEF;
- RAX = memory->imageBase + 0x4795B778;
- RAX = ~RAX;
- RAX ^= RBX;
- RAX += RDX;
- RAX *= RCX;
- RAX -= RBX;
- RCX = 0x697DECF064AB09C3;
- RAX *= RCX;
- RCX = RBX;
- RSP = memory->imageBase + 0xE842;
- RCX *= RSP;
- RAX += RCX;
- return RAX;
- }
- case 14: {
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = RAX;
- RCX >>= 0xB;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x16;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2C;
- RAX ^= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RCX = read<uint64_t>(RCX + 0xB);
- RSP = 0xF2B84228009F892B;
- RCX *= RSP;
- RAX *= RCX;
- R10 = 0x21D0F0E2660F5094;
- RCX = RBX;
- RCX = ~RCX;
- RSP = memory->imageBase + 0x2E00;
- RCX *= RSP;
- RCX += R10;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- RCX = 0x1E450D45A88B3DC9;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x17;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2E;
- RAX ^= RCX;
- return RAX;
- }
- case 15: {
- R9 = read<uint64_t>(memory->imageBase + 0x660D140);
- RCX = memory->imageBase;
- RAX ^= RCX;
- RCX = 0x104FF8B4C43406AD;
- RAX += RCX;
- RCX = 0x16DB4431461A3E29;
- RAX *= RCX;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = _byteswap_uint64(RCX);
- RAX *= read<uint64_t>(RCX + 0xB);
- RCX = RAX;
- RCX >>= 0x13;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x26;
- RAX ^= RCX;
- RCX = memory->imageBase;
- RAX -= RCX;
- RAX += 0xFFFFFFFFFFFF9A85;
- RAX += RBX;
- RCX = 0x11B2D7215841BEB4;
- RSP = memory->imageBase;
- RCX -= RSP;
- RAX += RCX;
- return RAX;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement