Değişkenlerinizin değerlerini işleyen temel Cheat Engine saldırılarını önlemek için bu değerleri gizlemeniz gerekir. Genellikle Cheat Engine, söz konusu değişkenin bilinen değeri için bir arama yaparak, oyunun daha fazla oynatılması ve değerin Cheat Engine, önceki yeni değer aramasının sonucundan yeni bir arama yapar. Bu, cheater'ın değerin bellek konumunu yakınlaştırmasını sağlar, şimdi Cheat Engine'i kullanarak o bellek konumunun değerini değiştirebilirler.
Örneğin, 245 GOLD'um var ... Cheat Engine ile 245 için bir arama yapıyorum ve birçok bellek yeri buluyorum. Sonra biraz daha oynuyorum ve altımı 314'e getiriyorum, daha sonra önceki arama çıktısını 314 değeri için araştırıyorum ve GOLD'un depolandığı bellek konumunu kolayca buluyorum.
Bunu önlemenin yolu hiçbir zaman gerçek değerin bir bellek konumunda saklanmamasıdır. Örneğin, değeri gerektiğinde istek üzerine gerçek değeri hesaplaması gereken bir nesnede saklıyorum. Diyelim ki oyuncu 245 ALTIN. 245 değerine sahip bir bellek konumu için arama yaparlarsa, birçoğu bulabilirler, ancak hiçbiri altın değerinin gerçekte depolandığı bellek konumu değildir, çünkü 245 değerini altın için saklamamanızdır. Oyunun ne kadar altın olduğunu bilmesi gerektiğinde, değerini tutan nesneye sorar ve talep üzerine hesaplar.
Şimdi soru şu: Bir değeri tam olarak ortaya koymayacak şekilde nasıl saklıyorsunuz? Bu biraz zor ve çirkin olur ve eminim ki yapılabilecek birçok yol vardır. Ne yapmak istiyorum bir boolean dizi (veya bayt dizisi) saklamaktır. Dizinin uzunluğu herhangi bir şey olabilir, ama diyelim ki 13'tür. Sonra 13'ün gerçek değere kaç kez gittiğini gösteren bir sayacınız var. Eğer 245'i temsil etmek istersek sayacın değeri 18 olacaktır. Şimdi dizi 245 / 13'ün geri kalanı için tüm boolean'ları true olarak ayarlayacaktı ... temelde modül. Bu durumda 11 olur, bu nedenle dizideki ilk 11 boole değeri true değerine, geri kalanı false değerine ayarlanır. Değeri almak için tek yapmanız gereken sayacı dizi uzunluğuyla çarpmaktır, ardından true değerine her bir boole kümesi için 1 ekleyin (ilk yanlışta durma). Şimdi 245 sayısı asla hiçbir yerde saklanmayacak ve altın miktarını değiştirmek için manipüle edilmesi gereken bellek yerini bulmak zor olacaktır. Bu nesne oluşturulduğunda dizi uzunluğunu farklı boyutlara (belki de makul bir aralık arasında rastgele bir sayı seçerek) ayarlamak isteyebilirsiniz.
EDIT: Bu çok oyunculu ve tek oyuncu için kullanışlıdır. Paketlerdeki değerlerin değiştirilebileceği çok oyunculu olarak da yapılabilecek hile var. Bu, her paketi imzalamak gibi önlemek için farklı teknikler gerektirir.