|
namespace decrypt
{
DWORD INDEX_ARRAY_OFFSET = 0xDF49E60;
DWORD NAME_ARRAY_OFFSET = 0x108AB1E8;
DWORD NAME_LIST_OFFSET = 0x4C70;
DWORD REFDEF_OFFSET = 0x7FF00; //CG+OFFSET
DWORD D3D12_SWAP_CHAIN_OFFSET = 0x1221C598;
DWORD D3D12_CommandQueue_OFFSET = 0x12217228;
namespace _0x150
{
DWORD ENCRYPT_PTR_OFFSET = 0xDF4B228;
DWORD REVERSED_ADDRESS = 0x39303B7;
}
namespace _0x318
{
DWORD ENCRYPT_PTR_OFFSET = 0x1089C958;
DWORD REVERSED_ADDRESS = 0x3930287;
}
namespace _0x3580
{
DWORD ENCRYPT_PTR_OFFSET = 0x1089DC88;
DWORD REVERSED_ADDRESS = 0x39302D1;
DWORD BASE_OFFSET = 0x970F8;
DWORD LOCAL_INDEX_OFFSET = 0x7AB40;
}
namespace ControlInfo
{
constexpr DWORD LOCAL_ANGLE_OFFSET = 0x2EF88;
}
}
QWORD* decrypt_key_for_entity_t()
{
static QWORD key[16][4];
static bool Empty = true;
if (Empty)
{
QWORD reversedAddr, LastKey;
read::read(cod_data::image_base + decrypt::ENTITY::REVERSED_ADDRESS, &reversedAddr, sizeof(reversedAddr));
read::read(_byteswap_uint64(reversedAddr) + 0x9, &LastKey, sizeof(LastKey));
key[0][0] = 0x963BB40724894F5F;
key[0][1] = LastKey;
key[0][2] = 0x33DF2666341E5EC3;
key[0][3] = 0x262960DD210D31F9;
key[1][0] = LastKey;
key[1][1] = 0xE60BFB8210B57A1B;
key[1][2] = 0xFA66C3E3AB4BD079;
key[1][3] = 0x88AD7A2904EB8D57;
key[2][0] = LastKey;
key[2][1] = 0x301DC9DD41AADB11;
key[2][2] = 0x618EF6FABE9F3F39;
key[2][3] = 0xFDBB1E1111108369;
key[3][0] = LastKey;
key[3][1] = 0x50C5997F897AA8FD;
key[3][2] = 0x8D89E865C2D18CAD;
key[3][3] = 0xE10A2CE2DEC22F5D;
key[4][0] = 0xE30074A028D212A7;
key[4][1] = 0x928748F1D601779B;
key[4][2] = LastKey;
key[4][3] = 0x90EB32807DDEBCXF;
key[5][0] = 0xA08E479C2E27DE3D;
key[5][1] = 0xB7194D7FB7A021B9;
key[5][2] = LastKey;
key[5][3] = 0x3C8BDA95B6E1567F;
key[6][0] = 0x2421C010EFE95D61;
key[6][1] = LastKey;
key[6][2] = 0xF6C9BE92649FBB1F;
key[6][3] = 0x8E9B31C2A25A1413;
key[7][0] = 0x435F7A896DFDED3;
key[7][1] = 0x985C097EE387035;
key[7][2] = LastKey;
key[7][3] = 0xACBD87D5E0306EED;
key[8][0] = LastKey;
key[8][1] = 0xD667DXFDC4613A87;
key[8][2] = 0x674C30EF215910DF;
key[8][3] = 0xEDBD2B9A7603B50B;
key[9][0] = 0x918652EBB1491C15;
key[9][1] = LastKey;
key[9][2] = 0x3E7485BBECEC57E9;
key[9][3] = 0x579A474F559592DF;
key[10][0] = LastKey;
key[10][1] = 0x1296E38DA90C77B9;
key[10][2] = 0x6338AC6B20FB99A7;
key[10][3] = 0x26E24FD2EBE03097;
key[11][0] = 0x24A18CDD650D78D7;
key[11][1] = 0x53F26XF3998928D;
key[11][2] = 0x61DD62458113A513;
key[11][3] = LastKey;
key[12][0] = LastKey;
key[12][1] = 0xEE202EE38CB6D18F;
key[12][2] = 0x75DB71B441DDAFCB;
key[12][3] = 0xD32EADC4DB49A73B;
key[13][0] = 0x98XF1A465668A7DB;
key[13][1] = LastKey;
key[13][2] = 0x8DA79DA45D9B26A1;
key[13][3] = 0xBDB240D07DC70195;
key[14][0] = 0x3BBF9867862FF621;
key[14][1] = 0x1A4E290AF66692FF;
key[14][2] = 0x79607C754DF30F77;
key[14][3] = LastKey;
key[15][0] = 0xFXFD22365CA0B96B;
key[15][1] = LastKey;
key[15][2] = 0xBD6AB89F47AC9CAD;
key[15][3] = 0xB4C5CCC727254BDD;
Empty = false;
}
return (QWORD *)key;
}
QWORD* decrypt_key_for_cg_t()
{
static QWORD key[4];
static bool Empty = true;
if (Empty)
{
QWORD reversedAddr, LastKey;
read::read(cod_data::image_base + decrypt::CLIENT_INFO::REVERSED_ADDRESS, &reversedAddr, sizeof(reversedAddr));
read::read(_byteswap_uint64(reversedAddr) + 0x13, &LastKey, sizeof(LastKey));
key[0] = LastKey;
key[1] = 0xBF14EA68D0C43A8D;
key[2] = 0x97EA1925D61C42XF;
key[3] = 0x007A1E9B4B3AB14D;
Empty = false;
}
return (QWORD *)key;
}
QWORD* decrypt_key_for_bone()
{
static QWORD key[16][4];
static bool Empty = true;
if (Empty)
{
QWORD reversedAddr, LastKey;
read::read(cod_data::image_base + decrypt::BONE::REVERSED_ADDRESS, &reversedAddr, sizeof(reversedAddr));
read::read(_byteswap_uint64(reversedAddr) + 0x19, &LastKey, sizeof(LastKey));
key[0][0] = LastKey;
key[0][1] = 0xA855AF9D71CA9DC7;
key[0][2] = 0x7F64695C792C1B2B;
key[0][3] = 0xB6AB069FDBBAB9FD;
key[1][0] = 0x328710791BE02E03;
key[1][1] = 0xABB59E5D54777CDF;
key[1][2] = LastKey;
key[1][3] = 0x3EE11A4C04BAD939;
key[2][0] = 0x75B6339C700284CD;
key[2][1] = LastKey;
key[2][2] = 0x83D55FFC391BECD1;
key[2][3] = 0xE710A13EECB5558F;
key[3][0] = 0xB268AE26D6C9A9XF;
key[3][1] = 0xC7A12678CD5A924D;
key[3][2] = 0x9710F589FXFD0F9F;
key[3][3] = LastKey;
key[4][0] = 0x2959F9BCEXF034B9;
key[4][1] = 0x5237ADA51C819C23;
key[4][2] = 0xBFDA26FABF703639;
key[4][3] = LastKey;
key[5][0] = 0x3CD8DB843CA93447;
key[5][1] = LastKey;
key[5][2] = 0x3523456BF17EF24D;
key[5][3] = 0xBED5A98C6CD7547B;
key[6][0] = 0xA7D0A4D9A7D679CD;
key[6][1] = LastKey;
key[6][2] = 0xB779C3372F8B73F7;
key[6][3] = 0x143ADCA2C5996841;
key[7][0] = 0x44E5D1B769009E17;
key[7][1] = 0x8E12335950F878A9;
key[7][2] = 0xA253E7A70DEC625;
key[7][3] = LastKey;
key[8][0] = 0x15B6D41694ED5DBD;
key[8][1] = LastKey;
key[8][2] = 0x9EDCCXF2F6599B31;
key[8][3] = 0x78537253F8A25101;
key[9][0] = 0xCA8A1F3A7BBC5843;
key[9][1] = LastKey;
key[9][2] = 0x317D7A89D94B6E07;
key[9][3] = 0x45A165B9A86B05B1;
key[10][0] = 0x827AA859BD0DC73D;
key[10][1] = 0x1FC9B49762C26F8B;
key[10][2] = 0x5CE19B8B24F2FD6B;
key[10][3] = LastKey;
key[11][0] = 0x5EE94293EA02C345;
key[11][1] = 0x161FAD899DCB8CE5;
key[11][2] = LastKey;
key[11][3] = 0xBFE1904C0A27B5F1;
key[12][0] = LastKey;
key[12][1] = 0x7A3A56D17EFCC91F;
key[12][2] = 0xEC31BF3BCC45CED7;
key[12][3] = 0x45C280EA49E68C35;
key[13][0] = 0xA8E020060D9412F9;
key[13][1] = LastKey;
key[13][2] = 0x675554510F6223A5;
key[13][3] = 0xFC3FA534F4ED4A09;
key[14][0] = 0x59A87F4D4C6C4239;
key[14][1] = LastKey;
key[14][2] = 0xBA8B1961037A8077;
key[14][3] = 0x607A4D47477979D5;
key[15][0] = 0xC9C231190C587109;
key[15][1] = 0xA64551ADC6579395;
key[15][2] = 0x79888FE7D9DD3331;
key[15][3] = LastKey;
Empty = false;
}
return (QWORD *)key;
}
QWORD general_obfuscate(QWORD encryptedPtr, QWORD* curr_decrypt_key)
{
encryptedPtr = (__int64)encryptedPtr * curr_decrypt_key[0];
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x1B);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x36);
encryptedPtr = (__int64)encryptedPtr * curr_decrypt_key[1];
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x7);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0xE);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x1C);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x38);
encryptedPtr = (__int64)encryptedPtr * curr_decrypt_key[2];
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x1F);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x3E);
encryptedPtr = (__int64)encryptedPtr * curr_decrypt_key[3];
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x1D);
encryptedPtr = encryptedPtr ^ (encryptedPtr >> 0x3A);
return encryptedPtr;
}
这是你的垃圾东西拿滚
|
|