- Katılım
- 8 Haz 2021
- Mesajlar
- 364
- Beğeniler
- 129
- Yaş
- 27
Üzerinde 1.5 haftadır çalıştığım konuyla ilgili bilgileri burda aktarmak istedim.Bu bilgiyi UC forumunda bile arasanız bulamazsınız.Ama ben sizin için tam çözümü vermicem sadece sorunun nasıl çözüldüğü ile ilgili bir bilgi vericeğim.Gerisi size kalmış.
League of Legends'de anti-hook diye bir sistem var.Oyunun belirli bir yerden belirli bir yere kadar olan bütün bytelarını yaklaşık 15-20 saniye arayla kontrol eder.Bunu kontrol etmesinin sebebi bizim gibi hile yazılımcılarının bu bytelar ile oynayıp değiştirme sebebi ve Riot'un buna engel olmak istemesidir.Biz bu byteları belirli addresslere fonksiyonlara hook atmak,program akışını değiştirip parametreleri düzenlemek için kullanırız.Anti-cheati zayıf olan bir oyunda bunu yapabilirsin fakat Lolün anticheati packman buna izin vermez.Dediğim gibi bütün byteları baştan aşağı tarar,eğer 1 byte bile değiştirilmişse oyunu kapatır crash verdirir.Ben ise bu byte kontrolünün yapıldığı yeri Cheat Engine "What access that address" özelliği ile buldum.
Kontrol edilecek olan byte'ı ECX registerine koyup sonra herhangi bir yere jump atıyor Anti-cheat.
Peki bunu nasıl bypass ederiz?
Bizim burda yapmamız gereken bu satıra (movzx ecx,byte ptr...) olan yere bir mid-hook atıp kontrol gerçekleştirmektir. ECX+EBX eğer bizim değiştirilmiş byte'ımıza eşit ise bizim burda yapmamız gereken ECX registerinin içine asıl original olan byte'ı yerleştirip sonra jump yapmasına izin vermektir.Yoksa ECX registerinin içinde bizim değiştirdiğimiz byte gider sonra anti-cheat yakalar oyunu crashler.
İnline naked hook'umuz içinde mov ecx , AsılByte işlemi yapmamız lazım.
Peki asılbyte'ı nasıl tutarız elimizde ?
Bir yere hook atarken ilk önce bir std::map oluşturun şu şekilde std::map <DWORD,BYTE> buradaki DWORD değişiklik yaptığınız address olsun byte ise hook atmadan önce değiştirdiniz orjinal BYTE değeri olsun.Yani değiştirdiğiniz bütün BYTE'ları bir map içerisinde tutun ve sonra yukarıda check yapılan kısımda
if DWORD==[ECX+EBX] {
__asm{
mov ecx , AsılByte
}
}
gibi bir işlem yapın.
Dediğim gibi bu bilgiyi UC forumunda bile paylaşmak istemiyorlar.Ben ise bu forumda belki lol için hile yazılımı yapan arkadaşlar vardır diye paylaşmak istedim.
League of Legends'de anti-hook diye bir sistem var.Oyunun belirli bir yerden belirli bir yere kadar olan bütün bytelarını yaklaşık 15-20 saniye arayla kontrol eder.Bunu kontrol etmesinin sebebi bizim gibi hile yazılımcılarının bu bytelar ile oynayıp değiştirme sebebi ve Riot'un buna engel olmak istemesidir.Biz bu byteları belirli addresslere fonksiyonlara hook atmak,program akışını değiştirip parametreleri düzenlemek için kullanırız.Anti-cheati zayıf olan bir oyunda bunu yapabilirsin fakat Lolün anticheati packman buna izin vermez.Dediğim gibi bütün byteları baştan aşağı tarar,eğer 1 byte bile değiştirilmişse oyunu kapatır crash verdirir.Ben ise bu byte kontrolünün yapıldığı yeri Cheat Engine "What access that address" özelliği ile buldum.
Kontrol edilecek olan byte'ı ECX registerine koyup sonra herhangi bir yere jump atıyor Anti-cheat.
Peki bunu nasıl bypass ederiz?
Bizim burda yapmamız gereken bu satıra (movzx ecx,byte ptr...) olan yere bir mid-hook atıp kontrol gerçekleştirmektir. ECX+EBX eğer bizim değiştirilmiş byte'ımıza eşit ise bizim burda yapmamız gereken ECX registerinin içine asıl original olan byte'ı yerleştirip sonra jump yapmasına izin vermektir.Yoksa ECX registerinin içinde bizim değiştirdiğimiz byte gider sonra anti-cheat yakalar oyunu crashler.
İnline naked hook'umuz içinde mov ecx , AsılByte işlemi yapmamız lazım.
Peki asılbyte'ı nasıl tutarız elimizde ?
Bir yere hook atarken ilk önce bir std::map oluşturun şu şekilde std::map <DWORD,BYTE> buradaki DWORD değişiklik yaptığınız address olsun byte ise hook atmadan önce değiştirdiniz orjinal BYTE değeri olsun.Yani değiştirdiğiniz bütün BYTE'ları bir map içerisinde tutun ve sonra yukarıda check yapılan kısımda
if DWORD==[ECX+EBX] {
__asm{
mov ecx , AsılByte
}
}
gibi bir işlem yapın.
Dediğim gibi bu bilgiyi UC forumunda bile paylaşmak istemiyorlar.Ben ise bu forumda belki lol için hile yazılımı yapan arkadaşlar vardır diye paylaşmak istedim.