PUBG External & Internal Decrypt (Xenuine)
C++ Pseudo Code:
How To Use
Code:
BYTE xenuine_decrypt_[0x1000];
BYTE temps[0x1000];
DWORD64 xenuine_start;
__int64 Xenuine_Decrypt(__int64 seed, __int64 value) {
DWORD64 result;
const BYTE* xenuine_decrypt = xenuine_decrypt_ + 0x7;
__asm {
mov rcx, [seed]
mov rdx, [value]
mov rax, [xenuine_start]
call[xenuine_decrypt]
mov[result], rax
}
return result;
}
void InitDecrypt(){
DWORD dwOld;
VirtualProtect(xenuine_decrypt_, 0x1000, PAGE_EXECUTE_READWRITE, &dwOld);
VirtualProtect(temps, 0x1000, PAGE_EXECUTE_READWRITE, &dwOld);
DWORD64 DecAddr;
DecAddr = READ_64(BASE + 0x585CD28); //this is from my old external source, you have to patch it.
READ_1000(DecAddr, xenuine_decrypt_);
xenuine_start = *(PDWORD)(xenuine_decrypt_ + 0x3) + DecAddr + 0x7;
}