Donator
Valorantın kendisi zaten kendi içerisinde belirttiğim assembly kodu ile devamlı çözüyor uworldu ve 5 kere restart attım sonuç değişmedi pgli ve pgsiz o assembly kodu uworlde yönlendiriyor. Amacım bu adresi cheat engine ile bulmak değil. Kendi debug programım ile bulmakAmacın ne pek anlamadım, page guardı geçmeye çalışıyorsan böyle geçemezsin data ptr her framede farklı pattern ile tarayıp o shellcode'u execute etmen lazım.
Assembly'yi shellcode'a çevirip okuman lazım fakat kernel izni olmalı normal r/w olmaz bilyiorsundur herhaldeValorantın kendisi zaten kendi içerisinde belirttiğim assembly kodu ile devamlı çözüyor uworldu ve 5 kere restart attım sonuç değişmedi pgli ve pgsiz o assembly kodu uworlde yönlendiriyor. Amacım bu adresi cheat engine ile bulmak değil. Kendi debug programım ile bulmak
uint64_t ReadAddressFromGame(uint64_t AddressToRead)
{
static uint64_t RandomPageLocation = 0;
// Find codecave << shit version btw lol
if(!RandomPageLocation)
while (true)
{
MEMORY_BASIC_INFORMATION Info;
VirtualQueryEx(External::HANDLE, (void*)RandomPageLocation, &Info, sizeof(Info));
RandomPageLocation = (uint64_t)Info.BaseAddress + Info.RegionSize;
if (Info.AllocationProtect == PAGE_EXECUTE_READWRITE && Info.Protect == PAGE_EXECUTE_READWRITE && Info.State == MEM_COMMIT)
{
RandomPageLocation = (uint64_t)Info.BaseAddress;
struct chunk_t
{
unsigned char Buff[64];
};
chunk_t A;
ReadProcessMemory(External::HANDLE, (void*)RandomPageLocation, &A, sizeof(A), 0);
bool Good = true;
for (int i = 0; i < sizeof(A); i++)
{
if (A.Buff[i] != 0)
{
Good = false;
break;
}
else if (A.Buff[i] != 0xCC)
{
Good = false;
break;
}
}
if (Good)
break;
}
}
// Assembly vv
// mov rax, [rcx]
// ret
// Find this stub in valorant so we can call it so it reads the address and sets rax value to the real address.
static uint64_t MemeStub = 0;
if(!MemeStub)
MemeStub = FindPattern(0, "\x48\x8B\x01\xC3", 5, 0xCC);
if (!MemeStub)
return 0;
// .data function pointer which gets called every frame, censored ofc
uint64_t DataPtr = External::Base + 0xDEADBEEF;
static uint64_t OrigAddr = 0;
if(!OrigAddr)
ReadProcessMemory(External::HANDLE, (void*)DataPtr, &OrigAddr, sizeof(OrigAddr), 0);
// Assembly vv
// push rcx
// push rax
// mov rcx, 0xDEADBEEFCAFEBABE
// call 0xDEADBEEFCAFEBABE
// mov [0xDEADBEEFCAFEBABE], rax
// pop rax
// pop rcx
// jmp 0xDEADBEEFCAFEBABE
unsigned char ReadStub[] = {
0x51, 0x50, 0x48, 0xB9, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE,
0xFF, 0x15, 0x02, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xBE, 0xBA, 0xFE, 0xCA,
0xEF, 0xBE, 0xAD, 0xDE, 0x48, 0xA3, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE,
0xAD, 0xDE, 0x58, 0x59, 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xBA,
0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE
};
unsigned char NullBuff[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
*(uint64_t*)(&ReadStub[0] + 4) = AddressToRead; // Address to read
*(uint64_t*)(&ReadStub[0] + 20) = MemeStub; // Stub
*(uint64_t*)(&ReadStub[0] + 30) = RandomPageLocation + sizeof(ReadStub); // Address to write
*(uint64_t*)(&ReadStub[0] + 46) = OrigAddr; // Original Location
WriteProcessMemory(External::HANDLE, (void*)RandomPageLocation, &ReadStub[0], sizeof(ReadStub), 0);
WriteProcessMemory(External::HANDLE, (void*)DataPtr, &RandomPageLocation, sizeof(DataPtr), 0);
uint64_t ReadBuff = 0;
while (true)
{
ReadProcessMemory(External::HANDLE, (void*)(RandomPageLocation + sizeof(ReadStub)), &ReadBuff, sizeof(ReadBuff), 0);
if (ReadBuff)
break;
}
WriteProcessMemory(External::HANDLE, (void*)DataPtr, &OrigAddr, sizeof(OrigAddr), 0);
WriteProcessMemory(External::HANDLE, (void*)RandomPageLocation, &NullBuff[0], sizeof(NullBuff), 0);
return ReadBuff;
}
Hayır benim kafamda çizdiğim ile bu projenin şuanlık alakası yok. Kernel izni ve okuma yazmada herhangi bir problemimde yok.Assembly'yi shellcode'a çevirip okuman lazım fakat kernel izni olmalı normal r/w ile okuyamazsın ayrıca virtualqueryde lazım
alt kısımlarında shellcode okuduğu kısım var kodun bundan mı bahsediyorsun emin değilim.
Kod:uint64_t ReadAddressFromGame(uint64_t AddressToRead) { static uint64_t RandomPageLocation = 0; // Find codecave << shit version btw lol if(!RandomPageLocation) while (true) { MEMORY_BASIC_INFORMATION Info; VirtualQueryEx(External::HANDLE, (void*)RandomPageLocation, &Info, sizeof(Info)); RandomPageLocation = (uint64_t)Info.BaseAddress + Info.RegionSize; if (Info.AllocationProtect == PAGE_EXECUTE_READWRITE && Info.Protect == PAGE_EXECUTE_READWRITE && Info.State == MEM_COMMIT) { RandomPageLocation = (uint64_t)Info.BaseAddress; struct chunk_t { unsigned char Buff[64]; }; chunk_t A; ReadProcessMemory(External::HANDLE, (void*)RandomPageLocation, &A, sizeof(A), 0); bool Good = true; for (int i = 0; i < sizeof(A); i++) { if (A.Buff[i] != 0) { Good = false; break; } else if (A.Buff[i] != 0xCC) { Good = false; break; } } if (Good) break; } } // Assembly vv // mov rax, [rcx] // ret // Find this stub in valorant so we can call it so it reads the address and sets rax value to the real address. static uint64_t MemeStub = 0; if(!MemeStub) MemeStub = FindPattern(0, "\x48\x8B\x01\xC3", 5, 0xCC); if (!MemeStub) return 0; // .data function pointer which gets called every frame, censored ofc uint64_t DataPtr = External::Base + 0xDEADBEEF; static uint64_t OrigAddr = 0; if(!OrigAddr) ReadProcessMemory(External::HANDLE, (void*)DataPtr, &OrigAddr, sizeof(OrigAddr), 0); // Assembly vv // push rcx // push rax // mov rcx, 0xDEADBEEFCAFEBABE // call 0xDEADBEEFCAFEBABE // mov [0xDEADBEEFCAFEBABE], rax // pop rax // pop rcx // jmp 0xDEADBEEFCAFEBABE unsigned char ReadStub[] = { 0x51, 0x50, 0x48, 0xB9, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE, 0xFF, 0x15, 0x02, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE, 0x48, 0xA3, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE, 0x58, 0x59, 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE }; unsigned char NullBuff[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; *(uint64_t*)(&ReadStub[0] + 4) = AddressToRead; // Address to read *(uint64_t*)(&ReadStub[0] + 20) = MemeStub; // Stub *(uint64_t*)(&ReadStub[0] + 30) = RandomPageLocation + sizeof(ReadStub); // Address to write *(uint64_t*)(&ReadStub[0] + 46) = OrigAddr; // Original Location WriteProcessMemory(External::HANDLE, (void*)RandomPageLocation, &ReadStub[0], sizeof(ReadStub), 0); WriteProcessMemory(External::HANDLE, (void*)DataPtr, &RandomPageLocation, sizeof(DataPtr), 0); uint64_t ReadBuff = 0; while (true) { ReadProcessMemory(External::HANDLE, (void*)(RandomPageLocation + sizeof(ReadStub)), &ReadBuff, sizeof(ReadBuff), 0); if (ReadBuff) break; } WriteProcessMemory(External::HANDLE, (void*)DataPtr, &OrigAddr, sizeof(OrigAddr), 0); WriteProcessMemory(External::HANDLE, (void*)RandomPageLocation, &NullBuff[0], sizeof(NullBuff), 0); return ReadBuff; }
x64 gibi open source debuggerlara driverını geçebiliyorsan yapabilirsinHayır benim kafamda çizdiğim ile bu projenin şuanlık alakası yok. Kernel izni ve okuma yazmada herhangi bir problemimde yok.
Aradığım şey cheat engine tarzı c++ ile yazışmış bir debug programı belirttiğim adresin içerisini okuması yeterli. Driversız bir projede olur kendim driver ile okuma yazma ekleyebilirim
Page guarda dokunmadanda geçilebilir. Bazı adresler page guardlı koruma altında ucde zaten bunlardan bahsedildi. Fakat şunuda söylediler bu adreslerin sonucu gerçek adrese gider bu demek oluyorki pageguard zaten gerçek adresi koruma altına alıyor sende bunu breakpoint ile bulabiliyorsun. Burada yapacağım işlem basit. Konuyu yanlış açmışım aslında bulmak istediğim şey “breakpoints” atma.x64 gibi open source debuggerlara driverını geçebiliyorsan yapabilirsin
github. com/x64dbg/x64dbg
unutma random page location var ne kadar sağlıklı olur bilmem
Zaten bazı adresler öyle eğer breakpoint atmak istiyorsan driverını x64dbgye geçir srcsi var zaten fakat seni zorlar daha basit dbg yok.Page guarda dokunmadanda geçilebilir. Bazı adresler page guardlı koruma altında ucde zaten bunlardan bahsedildi. Fakat şunuda söylediler bu adreslerin sonucu gerçek adrese gider bu demek oluyorki pageguard zaten gerçek adresi koruma altına alıyor sende bunu breakpoint ile bulabiliyorsun. Burada yapacağım işlem basit. Konuyu yanlış açmışım aslında bulmak istediğim şey “breakpoints” atma.
Ben zaten şuan tüm adreslere breakpoint atabiliyorum. Burada hileyi kodlamak için lazım olan şey attığım breakpointten sonucu kendi projeme yazmak. Bu sayede hile yapabilmek. x64dbg biliyorum çok kullandım onun içerisine ve kütüphanesine bakıp kendi projeme geçirmeye çalışacağım. Önerin için teşekkürlerZaten bazı adresler öyle eğer breakpoint atmak istiyorsan driverını x64dbgye geçir srcsi var zaten fakat seni zorlar daha basit dbg yok.
Neden bulamayız hocam ne gibi bir hata alırız ?Page guarda dokunmadanda geçilebilir. Bazı adresler page guardlı koruma altında ucde zaten bunlardan bahsedildi. Fakat şunuda söylediler bu adreslerin sonucu gerçek adrese gider bu demek oluyorki pageguard zaten gerçek adresi koruma altına alıyor sende bunu breakpoint ile bulabiliyorsun. Burada yapacağım işlem basit. Konuyu yanlış açmışım aslında bulmak istediğim şey “breakpoints” atma.
Normalde uworldu vanguard açıkken bulamazsın. Çünkü koruma altına alınıyor ben breakpoint ile buluyorum
uworld direk halde bulunmuyor encryption var decrypt etmen lazım o basit kısmı en zor kısım page guard her sayafanın kendine özel pointerı var ve pattern ile shellcode okunuyor. fakat bazı kişiler direk kernel üzerinden vanguardın page guard kısmını patchliyor virtual lock ile ama vanguarda güçlü bir reverse uygulanması lazımNeden bulamayız hocam ne gibi bir hata alırız ?
Dostum sen zamanında vexternal paste projesini derleyip satan sonradan black screen hatasını çözmek için UC'de yardım isteyen biri değil misin ? Ne ara bu kadar bilgi kaptın da UC de paylaşılan içerikleri burda kendin yapmış gibi gösteriyorsun ?uworld direk halde bulunmuyor encryption var decrypt etmen lazım o basit kısmı en zor kısım page guard her sayafanın kendine özel pointerı var ve pattern ile shellcode okunuyor. fakat bazı kişiler direk kernel üzerinden vanguardın page guard kısmını patchliyor virtual lock ile ama vanguarda güçlü bir reverse uygulanması lazım
black screen hatası aklında en ufak fikrim yok ayrıca benim overlayim directx ve vexternal opengl kullanıyor? ama şu an hali hazırda hile satmıyorum kendim yapmış gibi göstermiyorum senin gibi bilgisizlerin bu konu hakkında ki fikirleri çok saçma oluyor istersen susabilirsin? ben diğer forumlarda 20 nin üzerinde spoof methodu çıkarttım bana gelip uc den çalıyorsun diyorsun ucde ki üyeler 2 tane methodumu paylaştıDostum sen zamanında vexternal paste projesini derleyip satan sonradan black screen hatasını çözmek için UC'de yardım isteyen biri değil misin ? Ne ara bu kadar bilgi kaptın da UC de paylaşılan içerikleri burda kendin yapmış gibi gösteriyorsun ?
Aslında bulunur bu yöntemleNeden bulamayız hocam ne gibi bir hata alırız ?
methodlar sanırım amidewinblack screen hatası aklında en ufak fikrim yok ayrıca benim overlayim directx ve vexternal opengl kullanıyor? ama şu an hali hazırda hile satmıyorum kendim yapmış gibi göstermiyorum senin gibi bilgisizlerin bu konu hakkında ki fikirleri çok saçma oluyor istersen susabilirsin? ben diğer forumlarda 20 nin üzerinde spoof methodu çıkarttım bana gelip uc den çalıyorsun diyorsun ucde ki üyeler 2 tane methodumu paylaştı
"Uriel AC geçebilen varmı ?" yazan biri nasıl bilgili olabilir çok güldüm...Aslında bulunur bu yöntemle
methodlar sanırım amidewinLütfen bir çok şeyi başarmış gibi davranma. Bilgisiz dediğin kişi senden daha bilgili bundan emin olabilirsin. Konun amacı farklı o yüzden farklı yerlere çekmeyelim. iyi forumlar
Daha sonra urielacyi ve saltanata hile yapması peki. Hahah konularına veya mesajlarına daha çok göz at belki bulursun birşeyler."Uriel AC geçebilen varmı ?" yazan biri nasıl bilgili olabilir çok güldüm...
Kimden duyuyorsunuz böyle şeyleri ?Amacın ne pek anlamadım, page guardı geçmeye çalışıyorsan böyle geçemezsin data ptr her framede farklı pattern ile tarayıp o shellcode'u execute etmen lazım.
Ayrıca vanguard açıkken kernel izni olmadan bir şey yapamazsın
cheat engine nin düzgün gösterme sebebide debugger mantığından dolayı find acces attıgın yere hata verdirince pageguard onuda çözdüğü için sürekli çözülmüş hali geliyor.sürekli okuman gerek orayı pageguardlı kısım ihtiyaç oldugunda açılıyor anında geri kapanıyor.
Teşekkürler abi. Şuan kendimi geliştirmek için uğraşıyorum dediğin şekilde deneyeceğim.Kimden duyuyorsunuz böyle şeyleri ?
@Slaxen debugger ile uğraşma bence. Oyun nasıl okuyorsa, sen de öyle oku adresi. mov rax,[rcx] -> ret li bir yer bulup orayı çağır.
O zaman farklı şekilde bulmam lazım ben key ve stateye debug attığımda aslında guardlı yerde devamlı bir veri dönüyor FFF bölgesinde o zaman burada yoğunlaşmam gereken yer pageguardın okuduğu gibi okumak yolum uzun fakat başarmak istiyorum yorumda bulunduğun için teşekkür ederim kralsürekli okuman gerek orayı pageguardlı kısım ihtiyaç oldugunda açılıyor anında geri kapanıyor.
Post automatically merged:
cheat engine nin düzgün gösterme sebebide debugger mantığından dolayı find acces attıgın yere hata verdirince pageguard onuda çözdüğü için sürekli çözülmüş hali geliyor.
1809 gecin kardesim alla alla
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?