Cheat Alkad, Rusticaland - v2627, Bypass EAC

Нету, но провери сам, никто не запрещает

bro please the free version of the last update

Updated for version 2623

Cheat has been updated for 2625 version

do u mind if i get the decryption and offsets to this version and also the entity iteration i can’t find any tutorial or anything that shows how to do it my current is :
void LoopGamePlayers()
{
if (!EnableESP) return;

UpdateCameraMatrix();

static int debugCounter = 0;
bool shouldDebug = (debugCounter++ % 300 == 0);

uint64_t gameAssemblyBase = (uint64_t)GetModuleHandleA("GameAssembly.dll");
if (!gameAssemblyBase) {
    printf("[DEBUG] GameAssembly.dll not found\n");
    return;
}

uint64_t bn = *reinterpret_cast<uint64_t*>(gameAssemblyBase + Offsets::BaseNetworkable_TypeInfo);
printf("[DEBUG] bn = 0x%llx\n", bn);
if (!IsValidAddress(bn)) {
    printf("[DEBUG] bn invalid address\n");
    return;
}

uint64_t bn1 = *reinterpret_cast<uint64_t*>(bn + 0xB8);
printf("[DEBUG] bn1 = 0x%llx\n", bn1);
if (!IsValidAddress(bn1)) {
    printf("[DEBUG] bn1 invalid address\n");
    return;
}

uint64_t bn2 = *reinterpret_cast<uint64_t*>(bn1 + 0x20);
printf("[DEBUG] bn2 = 0x%llx\n", bn2);
if (!bn2) {
    printf("[DEBUG] bn2 is zero\n");
    return;
}

uint64_t bn3 = 0;
__try {
    uint64_t decryptFuncAddr = gameAssemblyBase + 0xC863A0;
    auto decryptEntity = (uint64_t(*)(uint64_t, uint64_t))decryptFuncAddr;
    uint64_t globalPtr = gameAssemblyBase + 0xE5B9E18;

    // Pass bn2 directly (it's already the encrypted value from bn1+0x20)
    bn3 = decryptEntity(bn2, globalPtr);
    printf("[DEBUG] bn3 = 0x%llx\n", bn3);
}
__except (EXCEPTION_EXECUTE_HANDLER) {
    printf("[DEBUG] EXCEPTION in cliententitiesdecrypt\n");
    return;
}

if (!IsValidAddress(bn3)) {
    printf("[DEBUG] bn3 invalid address\n");
    return;
}

uint64_t bn4 = 0;
__try {
    bn4 = *reinterpret_cast<uint64_t*>(bn3 + 0x10);
    printf("[DEBUG] bn4 = 0x%llx\n", bn4);
}
__except (EXCEPTION_EXECUTE_HANDLER) {
    printf("[DEBUG] EXCEPTION reading bn4\n");
    return;
}

if (!bn4) {
    printf("[DEBUG] bn4 is zero\n");
    return;
}

uint64_t bn5 = 0;
__try {
    uint64_t decryptListAddr = gameAssemblyBase + 0xD34EE0;
    auto decryptList = (uint64_t(*)(uint64_t, uint64_t))decryptListAddr;
    uint64_t globalPtr = gameAssemblyBase + 0xE5B9E18;
    bn5 = decryptList(bn4, globalPtr);
    printf("[DEBUG] bn5 = 0x%llx\n", bn5);
}
__except (EXCEPTION_EXECUTE_HANDLER) {
    printf("[DEBUG] EXCEPTION in decryptionentitylist\n");
    return;
}

if (!IsValidAddress(bn5)) {
    printf("[DEBUG] bn5 invalid address\n");
    return;
}

uint64_t bufferlist = 0;
__try {
    bufferlist = *reinterpret_cast<uint64_t*>(bn5 + 0x10);
    printf("[DEBUG] bufferlist = 0x%llx\n", bufferlist);
}
__except (EXCEPTION_EXECUTE_HANDLER) {
    printf("[DEBUG] EXCEPTION reading bufferlist\n");
    return;
}

if (!IsValidAddress(bufferlist)) {
    printf("[DEBUG] bufferlist invalid address\n");
    return;
}

uint64_t list = bufferlist + 0x20;
printf("[DEBUG] list = 0x%llx\n", list);

uint32_t count = 0;
__try {
    count = *reinterpret_cast<uint32_t*>(bufferlist + 0x18);
    printf("[DEBUG] count = %u\n", count);
}
__except (EXCEPTION_EXECUTE_HANDLER) {
    printf("[DEBUG] EXCEPTION reading count\n");
    return;
}

if (count <= 0 || count > 5000) {
    printf("[DEBUG] count out of range\n");
    return;
}

any help with iteration ?

maybe your offsets is wrong, dump the game for get actuall for your version

so my iteration is correct i see for my offsets i followed some people on uc and they were like they showed my version is v 2625 latest one

1 Like