Açık Bulma

3D Pinball Hacklemek

Oyun İçi Skoru Hackleme

İlk yapacağımız şey, birinin nasıl olup oyun skorunu değiştirebileceğini keşfetmek. Eğer doğru araç ve relevent becerileri (tabii ki) varsa Eh, aslında oldukça kolay. Biz kullanmak için gidiyoruz aracı klasik Cheat Engine (Ben sürüm 6.6 kullanarak olacak), rezil (özellikle çocuklar etrafında) en sevdikleri oyunlarda oyun puanları kesmek için kullanılan için. Cheat Engine aşina olmayanlar için, temelde sökme ve hata ayıklama için başka bir sürecin bellek alanına erişen bir bellek hack aracı … ve her yerde değerleri değiştirerek kargaşaya neden. Bilenler ve daha önce Cheat Engine kullanmış olanlar için (bir çocuk olarak), adımları ilk çift tanıdık olabilir.

İlk olarak, oyunu ve Cheat Engine’i açacağız, sonra da süreci şu şekilde yükleyeceğiz:pinball.exepb0. Png1365×688 415 KB

Değer kutusunda, bellekte istediğimiz değeri bulmak için bir şey yapmamız gerekir, yani skorumuzu taramaya böylece bellekteki değerini deşebiliriz.First Scan

Bizim skor şu anda ve bellekte büyük olasılıkla bir milyar s daha fazla olduğundan, biz oyun başlayacak ve daha az bellekte var olma olasılığı daha az bir sayı olsun. Gibi:00pb2. Png1016×303 67,9 KB

Bizim değer olarak yazarak ve tıkladıktan sonra, CE anında karşılık gelen bir değer ve adresini bulur. Şimdi, puanımıza ne olduğunu görmek için bu değeri düzenlemeyi deneyebiliriz.6000First Scan

Oyunu oynamaya devam edeceğiz ve…

Oops? Umduğumuz gibi olmadı mı?

Tamam, bu senaryoda o kadar kolay değil çünkü muhtemelen beklediğimizden farklı çalışıyor, o yüzden kodda gerçekte neler olduğunu görelim.pb5.PNG1144×430 35.3 KB

Burada, telimizden aldığımız skor değerinin istediğimiz gibi olmadığını görebiliyoruz. Sağ alt pencerede, adresi nin tbmmden aynı olduğunu görüyoruz, ancak aslında değeri takip etmiyor. Bunun yerine, geçirilen puan, puanların bulunduğu konuma taşınır. Peki nasıl bir puan alabilirim? Peki, sürekli Araçlar bizim istenen değeri ayarlamak için bazı kod enjekte deneyelim -> Otomatik Montaj. Daha sonra Şablon -> Kod Enjeksiyonu’ndaki yeni Otomatik Birleştirme penceresinde bir şablona ihtiyacımız olacak, ardından enjekte edilecek adres mavi vurgulu satırdır.eaxeaxecxeax696969ecxCode Injection

Değiştirmek için montaj kodumuzu girin ve ardından yürütmetuşuna basın.ecx

Kolay! Ama bu da ne? Top numaramız da aynı değere mi dönüştü? Tamam, çünkü ben tembel değilim ve ben çok fazla ekran görüntüsü alarak rahatsız olamaz, temelde, biz topun adresi için tararsanız ne olur (bizim skor için yaptığımız gibi), biz kodun aynı parça ama top numarasının değerini tutarak sonunda (skor yerine). Bunu nasıl düzeltebiliriz, sadece skorun adresine eşitse ayarlayarak oluruz. Tüm oyunu yeniden başlatacağız ve bunun yerine bu kodu enjeksiyonda kullanacağız:eaxecxeax

Tekrar Execute tuşuna basıyoruz, oyunu çalıştırıyoruz ve…

Yapılır! Basit, değil mi? Buradaki sorun şu ki, artık sadece statik bir değer, ama biz aslında doğru kod ile skor ne istersek yapabiliriz. Şimdi sadece yüksek puan bizim adımıza girin …

Hmm… yüksek puan …

Skor Bordrosu Hacking

Tamam, bu muhtemelen yukarıda yaptıklarımıza kıyasla çok daha zor ve muhtemelen daha uzun, bu yüzden kısa tutmaya çalışacağım. Yüksek puanlar kalıcı bir şey olması gerektiğinden, verilerin büyük olasılıkla diskte bir yerde önbelleğe alınması gerekir. Eğer yüksek puanların nerede olduğunu bulursak, kendi dizininde bir veri dosyası aramayı deneyebiliriz, ancak bu her zaman garantili bir yöntem değildir. O zaman başka bir şey deneyelim. Yangın hata ayıklayıcıları (Ben Ollydbg ile açıklayan olacak) ve ona gidelim.

Yapmak istediğimiz ilk şey, yüksek skor penceresine ulaşmak, sonra oyun giriş sağlamamızı beklerken hata ayıklamayı duraklatmaktır.pb11.PNG899×489 57.1 KB

Bu noktada, skor kuruluna giderken neler olduğunu öğrenmek için çağrı yığınında gezinmek istiyoruz. Ollydbg bunu yapmak için, arama yığını () açmak ve sonra en alt (alt ilk izlenen arama ve üst en son arama) gibi başlar:Alt+K

Oradan, fonksiyon çağrıları içine atlama da dahil olmak üzere tüm talimatları ile gezinmek ve ilginç bir şey bulmak olmadığını görmek … Yani, sıkıcı ve gereksiz parçaları atlamak için, burada birkaç aramasonra bulunan bir şeydir:pb13.PNG758×303 13.5 KB

Bu bir kayıt defteri alt anahtarı gibi görünüyor ama biz hangi kaynaklanıyor anahtar eksik. Biraz aşağı kaydırırsak, olası bir anahtarın .HKEY_CURRENT_USER

O zaman kayıt defterine dalıp onu takip edelim.pb15.PNG1024×522 33.6 KB

Görünüşe göre büyük ikramiyeyi kazandık! Önceki bölümden alınan puanlar var ama bu değerler nelerdir? Boşlukları doldurmak için varsayılan değerler. Oyuna geri dönelim, skor bordrosuna skorumuzu kaydedelim ve kayıt defterine çıkıp çıkamasa bir bakalım. Oyuna devam etmek için run tuşuna () bas. Ve eğer gerçekten bunu yapıyorsanız (ben son derece şüpheliyim), eğer oyun dan çıkana kadar kayıt defteri değişmez fark edeceksiniz.-999F9

Bu yüzden skor tabelasını vidalamayı deneyelim ve langırt oyun dünyasını ele geçirmek için her zaman dahice planımızı görmek için oyunu başlatalım! Heheheh…

Hey, ne verir? Her şey gitti! Tamam, yani Billy Gates düşündüğümüz kadar aptal değildi ve o bizim planları engelledi … Drats, ne yapıyorsun? Bu conniving … Küçük… Şeytan… Zaten! Gözden kaçırdığımız bir şey vardı. Buldun mu? Sana göstereyim:

İşte burada. Bu bizim önceki albümümüz. Oyundan çıktıktan sonra yeni (boş) skor bordromuza bir göz atalım.

Tamam, bu çok farklı. Görünüşe göre bu bir çeşit karma yöntemi. Eğer değeri alıp, skor tabelasındaki oyuncu sayısını elde edersek. Aha! Algoritma bu olmalı! Sadece tüm puanları ekleyin! Doğru?! Hayır, hayır. Önceki yasal kayıtlara bakacak olursak, . Aslında çok yakındık. Neredeyse oradayız. Bir dize analizi yapmaya çalışırsak, programın dizeye iki kez erişebileceğini bulabiliriz: bir kez başlatma sırasında ve çıktıktan sonra bir kez. Başlangıç erişiminin kayıt defterindeki puanları okuduğunu, son erişimin puanları geri yazdığını tahmin edebilirsiniz. Bilmek istediğimiz şey, değerin nasıl oluşturulduğu, bu yüzden tüm kanlı geri dönen ayrıntıları atlayıp doğrudan algoritmanın bulunduğu yere atlayacağım. İşte tüm algoritma:-4995-9995696969 + 30000 + 2500 - 999 - 999 = 727471 != 727926VerificationVerificationpb21.PNG624×640 16.3 KB

Ben orada son ok birkaç yorum ekledi. Temel olarak, bu algoritma nın yaptığı şey oyuncunun adını ve skoru almaktır. Oyuncunun her harfi birlikte toplanır ve daha sonra kendi puanı ile eklenir (evet, bu da daha önce sonuçlandırdığımız gibi puanları ile dolgu oyuncuları içerir). Bu, tüm oyuncular ve puanları bir araya gelene kadar tekrarlanır. Yani, önceki meşru örneğimize geri dönelim, değeri


hesaplamaya çalışalım: Hey, işe yaradı! ŞİmDİ GÜCÜMÜZİ SERBEST BırakALıM!-999Verification(100 (d) + 116 (t) + 109 (m) + 696969) + (65 (A) + 30000) + (65 (A) + 2500) + (0 - 999) + (0 - 999) = 727926 == 727926pb22.PNG1159×392 59.7 KB

Sonuç

Yani evet, iyi şeyler. Biraz eğlendim. Herkes herhangi bir ayrıntı (ne olursa olsun ben bu kısa tutmak için kesip) bilmek istiyorsanız, bir yorum bırakmak veya gelen kutuma bir mesaj atmak çekinmeyin.

1 1 vote
Article Rating
[Toplam: 1   Ortalama: 5/5]
Yorum Yapmak İçin Tıklayın
0 Yorum
Inline Feedbacks
View all comments
To Top
0
Would love your thoughts, please comment.x
()
x