Şifreli Pointer Hakkında

odtufizik

Silver Üye
Katılım
19 Eki 2025
Mesajlar
84
Beğeniler
25
Merhaba, Bir oyun hilesi üzerinde uzun süredir çalışıyorum ve hileyi başarıyla tamamladım. Ancak kafamı karıştıran bazı noktalar var. Pointer'ların şifreli olduğunu düşünüyorum ve bu konuda fikirlerinize ihtiyacım var.

Yaşadığım sorunlar şunlar;

Karakterimin pozisyon değerlerini (X, Y, Z) bulduktan sonra, doğal olarak karakterimin diğer özelliklerine de erişmem gerekiyor. Örneğin, X pozisyonunun offseti RDX+100 ise, RDX-100 yaparak LocalPlayer'a ulaşmam gerekiyor. Bu hex değerini 4 byte ve hex formatında arattığımda, çıkan adreslerden birinin LocalPlayer adresi olması gerekir. Bu yöntem genellikle birçok oyunda işe yarar.

Ancak bu şekilde bulduğum adrese struct uyguladığımda, yalnızca X, Y ve Z pozisyonlarını görebiliyorum. Örneğin, bu struct içinde Health offsetini aradığımda, bu değerin mevcut olmadığını ve farklı bir pointer'da olduğunu fark ediyorum. Bu nedenle, hile içinde her özellik için "LocalPlayer + Offset" kullanmak yerine, X özelliği için X pointer'ını, Y özelliği için Y pointer'ını kullanmak zorunda kalıyorum.

Aslında bu durum benim için bir sorun teşkil etmiyor. Ancak EntityList'i bulmaya çalıştığımda, X, Y, Z pointer'larının 100 byte aşağısında düşman pozisyonlarının belirdiğini görüyorum. Örneğin, 3 düşman varsa, 3 düşmanın pozisyonları bu şekilde oluşuyor. Bunları tek tek kontrol ettim.

Bu gözlemlerimden yola çıkarak, pointer'ların şifreli olduğunu ve her oyunda olduğu gibi bir EntityList ve LocalPlayer yapısının bulunması gerektiğinden eminim.

Bu konuda bilgisi veya deneyimi olan arkadaşlar, fikirlerinizi paylaşabilir misiniz?
 
Merhaba, Bir oyun hilesi üzerinde uzun süredir çalışıyorum ve hileyi başarıyla tamamladım. Ancak kafamı karıştıran bazı noktalar var. Pointer'ların şifreli olduğunu düşünüyorum ve bu konuda fikirlerinize ihtiyacım var.

Yaşadığım sorunlar şunlar;

Karakterimin pozisyon değerlerini (X, Y, Z) bulduktan sonra, doğal olarak karakterimin diğer özelliklerine de erişmem gerekiyor. Örneğin, X pozisyonunun offseti RDX+100 ise, RDX-100 yaparak LocalPlayer'a ulaşmam gerekiyor. Bu hex değerini 4 byte ve hex formatında arattığımda, çıkan adreslerden birinin LocalPlayer adresi olması gerekir. Bu yöntem genellikle birçok oyunda işe yarar.

Ancak bu şekilde bulduğum adrese struct uyguladığımda, yalnızca X, Y ve Z pozisyonlarını görebiliyorum. Örneğin, bu struct içinde Health offsetini aradığımda, bu değerin mevcut olmadığını ve farklı bir pointer'da olduğunu fark ediyorum. Bu nedenle, hile içinde her özellik için "LocalPlayer + Offset" kullanmak yerine, X özelliği için X pointer'ını, Y özelliği için Y pointer'ını kullanmak zorunda kalıyorum.

Aslında bu durum benim için bir sorun teşkil etmiyor. Ancak EntityList'i bulmaya çalıştığımda, X, Y, Z pointer'larının 100 byte aşağısında düşman pozisyonlarının belirdiğini görüyorum. Örneğin, 3 düşman varsa, 3 düşmanın pozisyonları bu şekilde oluşuyor. Bunları tek tek kontrol ettim.

Bu gözlemlerimden yola çıkarak, pointer'ların şifreli olduğunu ve her oyunda olduğu gibi bir EntityList ve LocalPlayer yapısının bulunması gerektiğinden eminim.

Bu konuda bilgisi veya deneyimi olan arkadaşlar, fikirlerinizi paylaşabilir misiniz?
Selam kardeşim, tam olarak dediğin gibi xor şifreli pointer + parçalı struct.
Benzerini bayağı oyunda gördüm, çözüm şu:
  1. pos (X/Y/Z) bulduğun pointer’ın base’ini alıyorsun
  2. o base’den -0x100 / +0x100 / +0x200 gibi 0x100 byte aralıklarla dolaşıyorsun → düşmanlar sıralı çıkıyor (entity array’i bu zaten, fixed size 0x100)
  3. health/team/name vs. için ayrı ayrı pointer scan yapıyorsun (max level 6-7, offset limit 0x1000) → genelde 1-2 offset farkla aynı base’te çıkıyorlar
  4. eğer hepsi aynı base’te toplanmıyorsa oyun xor key kullanıyor → x64dbg’de pos’a “what accesses” breakpoint at, oyun okurken xor eax, XXXXXXXX görürsün → o XXXXXXXX key’in, decrypt fonksiyonu yazarsın
Kısaca şimdilik ayrı pointer’larla devam et, stabilse sorun yok.
İleride key’i bulursan tek base’e çekersin, daha temiz olur.

localplayer classlara bölünmüş olabilir
buda olabilir bilemedim
 
localplayer classlara bölünmüş olabilir
hayır. bölünmediğine eminim çünkü önceden paylaşılmış.
Selam kardeşim, tam olarak dediğin gibi xor şifreli pointer + parçalı struct.
Benzerini bayağı oyunda gördüm, çözüm şu:
  1. pos (X/Y/Z) bulduğun pointer’ın base’ini alıyorsun
  2. o base’den -0x100 / +0x100 / +0x200 gibi 0x100 byte aralıklarla dolaşıyorsun → düşmanlar sıralı çıkıyor (entity array’i bu zaten, fixed size 0x100)
  3. health/team/name vs. için ayrı ayrı pointer scan yapıyorsun (max level 6-7, offset limit 0x1000) → genelde 1-2 offset farkla aynı base’te çıkıyorlar
  4. eğer hepsi aynı base’te toplanmıyorsa oyun xor key kullanıyor → x64dbg’de pos’a “what accesses” breakpoint at, oyun okurken xor eax, XXXXXXXX görürsün → o XXXXXXXX key’in, decrypt fonksiyonu yazarsın
Kısaca şimdilik ayrı pointer’larla devam et, stabilse sorun yok.
İleride key’i bulursan tek base’e çekersin, daha temiz olur.


buda olabilir bilemedim
hile çalışıyor online/offline. aslında kimse gormuyor her adres icin pointer mi okunuyor diye fakat beni rahatsız ettiği için bu konuyu açtım ve memory view'de şöyle birşey var.

xor r8 (rdx + 123456)
mov (örnek)
mov rdx --> burası bizim localplayer rdximiz

mantık olarak soyle dusunuyorum. yukarıdan rdx'e 123456 eklenmiş rdx - 123456 yapsam gerçek adrese ulaşmazmıyım ve 123456 bir xor keyi değilmi? teşekkürler bu arada
 
hayır. bölünmediğine eminim çünkü önceden paylaşılmış.

hile çalışıyor online/offline. aslında kimse gormuyor her adres icin pointer mi okunuyor diye fakat beni rahatsız ettiği için bu konuyu açtım ve memory view'de şöyle birşey var.

xor r8 (rdx + 123456)
mov (örnek)
mov rdx --> burası bizim localplayer rdximiz

mantık olarak soyle dusunuyorum. yukarıdan rdx'e 123456 eklenmiş rdx - 123456 yapsam gerçek adrese ulaşmazmıyım ve 123456 bir xor keyi değilmi? teşekkürler bu arada
Çok detayına bakmadan bilemem hocam sadece bildiğimi yazdım belki daha iyi biri çıkar bildiğinde yanlış der o yüzden emin konuşamadım

Discord: Kordyss99 ekle istersen akşam bakalım
 
hayır. bölünmediğine eminim çünkü önceden paylaşılmış.

hile çalışıyor online/offline. aslında kimse gormuyor her adres icin pointer mi okunuyor diye fakat beni rahatsız ettiği için bu konuyu açtım ve memory view'de şöyle birşey var.

xor r8 (rdx + 123456)
mov (örnek)
mov rdx --> burası bizim localplayer rdximiz

mantık olarak soyle dusunuyorum. yukarıdan rdx'e 123456 eklenmiş rdx - 123456 yapsam gerçek adrese ulaşmazmıyım ve 123456 bir xor keyi değilmi? teşekkürler bu arada
Evet bir xor keyi zaten bu tarz yapılı oyunların çoğunda bu şekilde mevcut, 123456 yaparsan gerçek adrese ulaştırmaz yine benzer bir şekilde aynı yere dönüp durursun
 
Evet bir xor keyi zaten bu tarz yapılı oyunların çoğunda bu şekilde mevcut, 123456 yaparsan gerçek adrese ulaştırmaz yine benzer bir şekilde aynı yere dönüp durursun
evet denedim. birde multilevel pointer denedim 5 veya 6'ıncı offsetten sonra yine aynı adrese dönüp duruyor
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt