




Memory Hacking Giriş (Adresses, Pointers, Offsets) - İlk Bakış
-
Merhaba arkadaşlar,
Code cracking, reverse engineering, game hacking gibi konuların tekrardan konuşulur hale gelmesi için böyle bir aksiyon başlatmaya karar verdim :) Umarım uzun ve katılımın bol olduğu bir seri olur.
Eğer game hacking, code cracking gibi konular size gerçekten çekici geliyor ve ben de 1-2 şey yapmak istiyorum diyorsanız dikkatlice okuyun. Bu yazıdaki konum Game hackingin temel mantığı ve başlangıç terimleri üzerine olacaktır.
Belkemiğimiz Memory;
Memory bir oyunun ramde kapladığı yere denir. Geçici değerlerin saklandığı adres aralığıdır. Geçici adresler bizim oyun içerisinde ölümsüz olmamıza, sınırsız paramızın olmasına ve aklınıza gelecek birçok değer ile oynamamızda yardımcı olur.Cheat engine bu değerleri saptamamızda yardımcı olacak olan kullanımı basit olan bir programdır. Zaten çoğunuzun kullandığına da eminim :)
Örneğin; oyun içerisinde 50.000 paramız var. Cheat Engine ile adressini tespit edip değeri 999.999 yaptık diyelim. Eğer oyunumuz MultiPlayer oynanan bir oyun değilse yani değerler sadece bizde varsa değişiklik başarıyla gerçekleşecektir. Fakat oynadığımız oyun MMO(Massive Multiplayer Online) türü bir oyunsa işlem bu kadar basit olmayacaktır. MMO oyunlarda bilgiler server tarafında depolanır yani server side. Serverda paranız, canınız, oyun içi değerleriniz gibi değerler hilenin önüne geçmek için saklanır. Şöyle bir örnek vereyim oyun içerisinde markette 60.000 para değerindeki bir eşya gördünüz ve almak istiyorsunuz fakat sizin para değeriniz 50.000. Cheat engine'i açıp para değerinizi 70.000 olarak değiştireceksiniz ve başarılı bir şekilde değiştini göreceksiniz fakat markete gidip istediğiniz item'i almaya çalışıp alamayınca hayal kırıklığına uğramayın :) Çünkü oyun içi para önemli bir değer olduğu için server side bir bilgidir server tarafından bilinir. Kısacası MMO oyunlarda serverin bildiği değerler üzerinde oynayamayız. (Fakat online oyunlarda paketler yollayarak hile yapmak mümkün olacak. İlerki yazılarda göreceksiniz)
Bahsettiğimiz Para, can, oyun içi değerler memorydeki adresslerde depo edilir. Çoğu kişi buraya kadar tamamdır ama bu noktadan sonra kopar :) Fakat bu yazıdan sonra sıkıntınız kalacağını sanmıyorum. Memory içindeki adressler değişkendir uygulamayı kapatıp, açtığınızda adresslerin kısmen* değiştini bulduğunuz eski adresslerin hiçbir önemi olmadığını göreceksiniz. Bu noktada anahtarımız Pointer!
Pointer;
Türkçe karşılığı işaretçidir, adından da anlayacağınız üzere bizlere bişeyleri işaret eder :) Uygulamayı aç-kapa işleminden sonra adreslerin değiştiğini söylemiştik. Değişen adresi tekrar tekrar aramamız için pointer bize sunulan bir nimettir. Pointer oyuna yama gelmediği, exe değişmediği sürece kesinlikle değişmez. Yani uygulamayı aç kapa yapsanız bile değer geçerli olacaktır. Pointer bize değişen adresleri işaret eden temel bir adresdir. Bu temel adres üzerinden istediğimiz değere gitmemize yardımcı olacak olan değer ise offsettir.
Pointer + offset bize değişen değeri işaret eder.Örneğin pointerimiz, temel adresimiz 0x123456 olsun.
Paramızın offseti 0x123 (Para değerimiz 50.000 olsun)
Oyun içerisindeki canımızın değeri de 0x456 olsun. (Oyun içindeki healthımı da 100 olsun)
Pointer + Paramızın offseti bize değişen paranın değerini verecektir, şöyle ki;
"0x123456" + "0x123" = 50.000
"0x123456" + "0x456" = 100İşin güzel yanı pointer ve offseti bir kere bulmak yeterlidir :) Oyuna bir yama gelmediği sürece pointer ve offset değişmez.
Şimdi sizlere bir video aracılığı ile Pointer ve offset'i nasıl bulacağınızı göstereceğim;
http://www.youtube.com/watch?v=M-sIhDuY_TU
iyi oyunlar :)
not: serinin devamında C#, VB ve C++ gibi diller kullanarak bulduğumuz pointer + offset aracılığı ile read/write yapacağız -
flash oyunda bile hile yapmak... ? eyw. :D
-
ışte forum içeriğine uygun ve işe yarar bi konu. sonuna kadar takipçinim yılmadan devam hocam.
-
takipteyim hocam.
güzel yararlı bir konu devamını bekliyoruz.
-
takipteyim :)
-
güzel makale olmuş eline sağlık holy.Sıradakileri takipteyim bende
-
Koxperlar artacak :D
-
ilk +1'mi kaptın hocam :) eline sağlık.
-
çizdim hocam . faydalı eline saglık
-
hocam fena olmuş ilerisi gelir inş :)
-
Çizik