boleskamal2
Gold Üye
- Katılım
- 11 Şub 2023
- Mesajlar
- 118
- Beğeniler
- 9
- Yaş
- 27
God bless you
is this translated from other language of code?kimlik kullanmadan ajan ve silah adlarını almak için basit bir yazı.
ön uyarı: bu, kopyala ve yapıştır yoluyla çalışmaz. ayrıca, temizlemeye başlamadığım için kod korkunç görünüyor.
Daha önce yayınladığım şifre çözme rutini:Kod:__forceinline __int64 game::decrypt_xor_keys(const uint32_t key, const uintptr_t* state) { __int64 v2; unsigned __int64 v3; unsigned __int64 v4; unsigned __int64 v5; unsigned int v6; __int64 v7; unsigned int v8; int v9; unsigned int v10; unsigned __int64 v11; v2 = (unsigned int)(key << 25); v3 = 2685821657736338717i64 * ((unsigned int)key ^ v2 ^ (((unsigned int)key ^ ((unsigned __int64)(unsigned int)key >> 15)) >> 12)) % 7; v4 = state[v3]; v5 = (2685821657736338717i64 * ((unsigned int)key ^ v2 ^ (((unsigned int)key ^ ((unsigned __int64)(unsigned int)key >> 15)) >> 12))) >> 32; v6 = (unsigned int)v3 % 7; if (!((unsigned int)v3 % 7)) { v7 = 2 * ((2 * v4) ^ ((2 * v4) ^ (v4 >> 1)) & 0x5555555555555555i64); v4 = v7 ^ (v7 ^ (((2 * v4) ^ ((2 * v4) ^ (v4 >> 1)) & 0x5555555555555555i64) >> 1)) & 0x5555555555555555i64; goto LABEL_5; } if (v6 == 1) { v9 = 2 * v3; v8 = v5 + v3; v4 = ~(unsigned __int64)(unsigned int)(v5 + v3) ^ (v4 - (unsigned int)(v5 + 2 * v3)); } else { LABEL_5: v8 = v5 + v3; v9 = 2 * v3; } if (v6 == 2) { v4 = __ROL8__((2 * v4) ^ ((2 * v4) ^ (v4 >> 1)) & 0x5555555555555555i64, (unsigned __int8)(v8 % 0x3F) + 1); goto LABEL_8; } if (v6 == 3) { v10 = v5 + v9; v4 = __ROL8__((unsigned int)(v5 + v9) + v4, (unsigned __int8)(v8 % 0x3F) + 1); } else { LABEL_8: v10 = v9 + v5; } if (v6 == 4) { v4 ^= v8; LABEL_11: if (v6 == 6) { v11 = __ROL8__(v4, (unsigned __int8)(v10 % 0x3F) + 1); v4 = (2 * v11) ^ ((2 * v11) ^ (v11 >> 1)) & 0x5555555555555555i64; } } else { if (v6 != 5) goto LABEL_11; v4 += v8 - (unsigned __int64)v10; } this->xor_key = v4 ^ key; return (v4 ^ key); }
az önce yayınladığım şifre çözme rutinini kullanarak xor_key elde etme işlevi - neredeyse uworld ile aynı:
Kod:bool game::decrypt_name_key(uintptr_t valorant_base, uintptr_t* returned_xor) { uintptr_t namepoolkey; engine->rvpm(engine->val_base + names_key, sizeof(uintptr_t), (unsigned char*)&namepoolkey); if (!namepoolkey) { printf("[-] offset name_pool_key invalid!\n"); return false; } #pragma pack(push, 1) struct state { uintptr_t keys[7]; }; #pragma pack(pop) state xor_state; engine->rvpm(engine->val_base + names_state, sizeof(state), (unsigned char*)&xor_state); const auto address = decrypt_xor_keys(namepoolkey, (uintptr_t*)&xor_state); uintptr_t xors; engine->rvpm(address, sizeof(uintptr_t), (unsigned char*)&xors); if (xors) { printf("[+] returned xor_address!\n"); *returned_xor = xors; return true; } else { printf("[-] failed to return xor_address!\n"); return false; } }
read chain for entry (for weapon(s):
Kod:uintptr_t inv; engine->rvpm(entities[i].entity + inventory, sizeof(uintptr_t), (unsigned char*)&inv); uintptr_t eq; engine->rvpm(inv + equippable, sizeof(uintptr_t), (unsigned char*)&eq); int gun_id; engine->rvpm(eq + objectid, sizeof(int), (unsigned char*)&gun_id);
-
Kod:const uintptr_t names_state = 0x8CDEF40; const uintptr_t names_key = names_state + 0x38; const uintptr_t fnameentry = 0x8CABF80;
The subject is entirely mine. I don't want it to be shared on any forum. I just wrote (!)