Cheat Engine

Reading time: 5 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Cheat Engine çalışan bir oyunun belleğinde önemli değerlerin nerede saklandığını bulmak ve bunları değiştirmek için yararlı bir programdır.
İndirdiğinizde ve çalıştırdığınızda, aracı nasıl kullanacağınızı gösteren bir eğitim ile karşılaşırsınız. Aracı nasıl kullanacağınızı öğrenmek istiyorsanız, bunu tamamlamanız şiddetle tavsiye edilir.

Ne arıyorsunuz?

Bu araç, bir programın belleğinde bir değerin (genellikle bir sayı) nerede saklandığını bulmak için çok yararlıdır.
Genellikle sayılar 4byte formatında saklanır, ancak bunları double veya float formatlarında da bulabilirsiniz veya bir sayıdan farklı bir şey aramak isteyebilirsiniz. Bu nedenle, neyi arama yapmak istediğinizi seçtiğinizden emin olmalısınız:

Ayrıca farklı türde arama seçenekleri de belirtebilirsiniz:

Belleği tararken oyunu durdurmak için kutucuğu işaretleyebilirsiniz:

Kısayollar

Düzenle --> Ayarlar --> Kısayollar bölümünde, oyunu durdurma gibi farklı amaçlar için farklı kısayollar ayarlayabilirsiniz (bu, belleği taramak istediğinizde oldukça kullanışlıdır). Diğer seçenekler de mevcuttur:

Değeri Değiştirme

Aradığınız değerin nerede olduğunu bulduğunuzda (bununla ilgili daha fazla bilgi sonraki adımlarda) üzerine çift tıklayarak değiştirebilirsiniz, ardından değerine çift tıklayın:

Ve son olarak, bellekteki değişikliği gerçekleştirmek için onay kutusunu işaretleyin:

Bellekteki değişiklik hemen uygulanacaktır (oyun bu değeri tekrar kullanmadığı sürece değer oyunda güncellenmeyecektir).

Değeri Arama

Öyleyse, geliştirmek istediğiniz önemli bir değer (kullanıcınızın hayatı gibi) olduğunu varsayıyoruz ve bu değeri bellekte arıyorsunuz.

Bilinen bir değişim yoluyla

100 değerini aradığınızı varsayalım, bu değeri aramak için bir tarama yapıyorsunuz ve birçok eşleşme buluyorsunuz:

Sonra, değer değiştiğinde bir şey yapıyorsunuz ve oyunu durdurup bir sonraki taramayı yapıyorsunuz:

Cheat Engine, 100'den yeni değere geçen değerleri arayacaktır. Tebrikler, aradığınız değerin adresini buldunuz, şimdi bunu değiştirebilirsiniz.
Eğer hala birkaç değer varsa, o değeri tekrar değiştirmek için bir şey yapın ve adresleri filtrelemek için bir "sonraki tarama" yapın.

Bilinmeyen Değer, bilinen değişim

Değeri bilmiyorsanız ama değiştirmek için ne yapacağınızı biliyorsanız (ve hatta değişimin değerini de biliyorsanız) numaranızı arayabilirsiniz.

Öyleyse, "Bilinmeyen başlangıç değeri" türünde bir tarama yaparak başlayın:

Sonra, değeri değiştirin, değerin nasıl değiştiğini belirtin (benim durumumda 1 azaldı) ve bir sonraki tarama yapın:

Seçilen şekilde değiştirilen tüm değerler ile karşılaşacaksınız:

Değerinizi bulduğunuzda, onu değiştirebilirsiniz.

Birçok mümkün değişim olduğunu ve sonuçları filtrelemek için bu adımları istediğiniz kadar yapabileceğinizi unutmayın:

Rastgele Bellek Adresi - Kodu Bulma

Şimdiye kadar bir değeri saklayan bir adres bulmayı öğrendik, ancak oyunun farklı çalıştırmalarında bu adresin bellekte farklı yerlerde olma olasılığı yüksektir. Bu nedenle, o adresi her zaman nasıl bulacağımızı öğrenelim.

Bahsedilen bazı ipuçlarını kullanarak, mevcut oyununuzun önemli değeri sakladığı adresi bulun. Sonra (isterseniz oyunu durdurarak) bulunan adrese sağ tıklayın ve "Bu adrese neyin eriştiğini bul" veya "Bu adrese neyin yazdığını bul" seçeneğini seçin:

İlk seçenek, bu adresin kullanıldığı kodun hangi kısımlarını bilmek için yararlıdır (bu, oyunun kodunu nerede değiştirebileceğinizi bilmek gibi daha fazla şey için yararlıdır).
İkinci seçenek daha özeldir ve bu durumda değerin nereden yazıldığını bilmekle ilgilendiğimiz için daha faydalı olacaktır.

Bu seçeneklerden birini seçtiğinizde, hata ayıklayıcı programa bağlanacak ve yeni bir boş pencere açılacaktır. Şimdi, oyunu oynayın ve değeri değiştirin (oyunu yeniden başlatmadan). Pencere, değeri değiştiren adreslerle doldurulmalıdır:

Artık değeri değiştiren adresi bulduğunuza göre, kodu istediğiniz gibi değiştirebilirsiniz (Cheat Engine, bunu NOP'lar için hızlı bir şekilde değiştirmenize izin verir):

Artık kodu, sayınızı etkilemeyecek şekilde veya her zaman olumlu bir şekilde etkileyecek şekilde değiştirebilirsiniz.

Rastgele Bellek Adresi - Pointer Bulma

Önceki adımları takip ederek, ilgilendiğiniz değerin nerede olduğunu bulun. Sonra, "Bu adrese neyin yazdığını bul" seçeneğini kullanarak bu değeri yazan adresi bulun ve üzerine çift tıklayarak ayrıştırma görünümünü alın:

Sonra, "[]" arasındaki hex değerini aramak için yeni bir tarama yapın (bu durumda $edx'in değeri):

(Birden fazla görünüyorsa genellikle en küçük adres olanı almanız gerekir)
Artık ilgilendiğimiz değeri değiştirecek pointer'ı bulduk.

"Adresi Manuel Olarak Ekle" seçeneğine tıklayın:

Şimdi, "Pointer" onay kutusuna tıklayın ve metin kutusuna bulunan adresi ekleyin (bu senaryoda, önceki resimde bulunan adres "Tutorial-i386.exe"+2426B0 idi):

(İlk "Adres"in, girdiğiniz pointer adresinden otomatik olarak doldurulduğuna dikkat edin)

Tamam'a tıklayın ve yeni bir pointer oluşturulacaktır:

Artık bu değeri her değiştirdiğinizde, değerin bulunduğu bellek adresi farklı olsa bile önemli değeri değiştiriyorsunuz.

Kod Enjeksiyonu

Kod enjeksiyonu, hedef işleme bir kod parçası enjekte etme ve ardından kodun yürütülmesini kendi yazdığınız koddan geçirecek şekilde yönlendirme tekniğidir (örneğin, puan vermek yerine puan almak).

Öyleyse, oyuncunuzun hayatından 1 çıkaran adresi bulduğunuzu hayal edin:

Dizilimi göster seçeneğine tıklayarak dizilim kodunu alın.
Sonra, CTRL+a tuşlarına basarak Otomatik dizilim penceresini açın ve Şablon --> Kod Enjeksiyonu seçeneğini seçin:

Değiştirmek istediğiniz talimatın adresini doldurun (bu genellikle otomatik olarak doldurulur):

Bir şablon oluşturulacaktır:

Bu nedenle, yeni assembly kodunuzu "newmem" bölümüne ekleyin ve çalıştırılmasını istemiyorsanız "originalcode" bölümündeki orijinal kodu kaldırın**.** Bu örnekte, enjekte edilen kod 1 çıkarmak yerine 2 puan ekleyecektir:

Uygula'ya tıklayın ve kodunuz programda enjekte edilerek işlevselliğin davranışını değiştirmelidir!

Referanslar

  • Cheat Engine eğitimi, Cheat Engine ile başlamayı öğrenmek için tamamlayın

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin