Untuk mencegah hack Cheat Engine dasar yang memanipulasi nilai-nilai variabel Anda maka Anda harus menyembunyikan nilai-nilai itu. Biasanya Cheat Engine digunakan untuk mengidentifikasi lokasi memori dari variabel yang menarik (misalnya jumlah emas atau masa pakai atau tingkat peningkatan kemampuan) dengan melakukan pencarian untuk nilai variabel yang diketahui tersebut, memainkan lebih banyak game dan menyebabkan nilainya berubah, maka Cheat Engine akan melakukan pencarian baru dari hasil pencarian sebelumnya untuk nilai baru. Ini memungkinkan penipu untuk memperbesar lokasi memori dari nilai, sekarang mereka dapat mengubah nilai lokasi memori tersebut menggunakan Cheat Engine.
Sebagai contoh, saya memiliki 245 EMAS ... dengan Cheat Engine saya mencari 245 dan menemukan banyak lokasi memori. Kemudian saya bermain lagi dan membawa emas saya ke 314, saya kemudian mencari nilai pencarian sebelumnya untuk nilai 314 dan dengan mudah menemukan lokasi memori tempat penyimpanan GOLD.
Cara untuk mencegah ini adalah tidak pernah memiliki nilai nyata disimpan di lokasi memori. Misalnya, saya menyimpan nilai dalam objek yang harus menghitung nilai riil saat diminta saat diperlukan. Jadi katakanlah pemain memiliki 245 EMAS. Jika mereka melakukan pencarian untuk lokasi memori dengan nilai 245, mereka mungkin menemukan banyak tetapi tidak satupun dari mereka akan menjadi lokasi memori di mana nilai emas sebenarnya disimpan, itu karena Anda tidak menyimpan nilai 245 untuk emas. Ketika permainan perlu tahu berapa banyak emas, ia akan meminta objek yang menyimpan nilai untuknya, yang akan menghitungnya sesuai permintaan.
Jadi pertanyaannya sekarang adalah: Bagaimana tepatnya Anda menyimpan nilai dengan cara yang tidak mengungkapkannya? Ini menjadi sedikit rumit dan jelek dan saya yakin ada banyak cara yang bisa dilakukan. Yang ingin saya lakukan adalah menyimpan array boolean (atau byte array). Panjang array dapat berupa apa saja, tetapi katakanlah adalah 13. Kemudian Anda memiliki penghitung yang mewakili berapa kali 13 masuk ke nilai aktual. Jadi jika kita ingin mewakili 245 maka penghitung akan memiliki nilai 18. Sekarang array akan memiliki semua boolean disetel menjadi true untuk sisa 245/13 ... pada dasarnya modulus. Dalam hal ini 11, jadi 11 boolean pertama dalam array akan disetel ke true, sisanya disetel ke false. Untuk mengambil nilai yang perlu Anda lakukan adalah mengalikan penghitung dengan panjang array, lalu menambahkan 1 untuk setiap boolean yang disetel ke true (berhenti di false pertama). Sekarang nomor 245 tidak akan pernah disimpan di mana pun dan akan sulit untuk menemukan lokasi memori yang perlu dimanipulasi untuk mengubah jumlah emas. Anda mungkin ingin mengatur panjang array ke ukuran yang berbeda (mungkin secara acak memilih angka antara beberapa rentang yang masuk akal) ketika objek ini dibuat.
EDIT: Ini berguna untuk multipemain dan pemain tunggal. Ada kecurangan yang juga bisa dilakukan dalam multi-pemain, di mana nilai-nilai dalam paket bisa diubah. Ini membutuhkan teknik berbeda untuk mencegahnya, seperti menandatangani setiap paket.