Monday, 16 October 2017

Hacking Games Menggunakan Cheat Engine

Ada beberapa tujuan ketika bermain curang dalam suatu permainan, misalnya untuk menyelesaikan game dengan mudah, memberi efek berbeda dalam permainan hingga memberi keuntungan pada pemain tertentu.

Untuk bermain curang, pemain membutuhkan suatu cara yang disebut cheat. Cheat sendiri dapat dilakukan dengan menggunakan program special (game trainer), hardware ataupun cheat yang telah disediakan oleh game itu sendiri.

Untuk melakukan cheating, ada 4 metode yang biasa dilakukan, yaitu :

1.       Memodifikasi Memory
Memory merupakan tempat yang sering dipakai oleh game untuk menyimpan informasi yang sedang dan akan dibutuhkan pada suatu game. Dengan mengubah informasi inilah, cheating dapat dilakukan.

Untuk melakukan modifikasi pada memory, ada banyak program memory editor yang tersedia, salah satunya yaitu Cheat Engine. Program ini dapat mencari nilai tertentu pada memory, dimana nilai inilah yang akan diubah sehingga informasi pada game pun berubah. Informasi yang diedit pun beragam tergantung jenis game, misalnya jumlah nyawa, jumlah skor ataupun jumlah emas.

Game trainer merupakan jenis program cheat yang memodifikasi memory, dimana program ini telah difokuskan untuk game tertentu saja. Program ini sudah bersifat tinggal pakai alias menu-menu yang terdapat pada program sudah ditujukan untuk melakukan cheat tertentu.

2.       Code Injection
Salah satu cara untuk mengubah cara kerja suatu program yaitu dengan melakukan Code injection. Code injection dilakukan dengan berbagai cara misalnya dengan menggunakan perintah CreateRemoteThread ataupun menginjeksikan file DLL ke proses game.

3.       Memodifikasi File
Selain memodifikasi data game di memory atau memodifikasi cara kerja game, memodifikasi file game dapat dilakukan untuk melakukan cheating pada suatu game. File yang sering dijadikan target untuk dimodifikasi yaitu file utama game dan file hasil save-an dari game. Program seperti hex editor dapat digunakan untuk memdifikasi suatu file game.

4.       Memodifikasi Trafik Jaringan
Teknik memodifikasi trafik jaringan ini dipakai pada jenis game online. Umumnya, game-game besar menyimpan informasi pada server sehingga tidak efektif dalam melakukan ketiga cara sebelumnya untuk melakukan cheating.

Apa Itu Cheat Engine?
Jika Anda ingin meng-hack suatu game, ini adalah suatu program yang layak untuk dipelajari. Cheat Engine merupakan program open source yang digunakan untuk memodifikasi informasi yang terletak pada memory. Program ini dilengkapi dengan memory scanner, debugger, disassembler, assembler, speedhack, trainer maker, direct 3D manipulation tools dan lainnya. Program ini dapat didapatkan melalui situs http://www.cheatengine.org/.

Gambar 1. Tampilan Program Cheat Engine.
Gambar 1. Tampilan Program Cheat Engine.
Selesai menginstall program, Anda akan diminta untuk mengikuti tutorial dalam menggunakan Cheat Engine, dimana tutorial ini mengajarkan teknik-teknik yang digunakan untuk hacking game. Tutorial ini juga dapat diaktifkan dengan menjalankan file Tutorial-i386.exe atau Tutorial-x86_64.exe dimana pilihan file tergantung jenis arsitektur komputer pada sistem operasi. Setiap level dalam tutorial ini disediakan petunjuk untuk mengerjakannya, namun berikut langkah- langkah secara detil dalam mengerjakan semua level :

Level 1
Pada level 1, Anda hanya diminta untuk me-load proses tutorial menggunakan Cheat Engine. Hanya itu saja yang harus dilakukan. Klik tombol Next untuk melanjutkan ke level 2.

Gambar 2. Tampilan Tutorial Level 1.
Gambar 2. Tampilan Tutorial Level 1.
Level 2
Di level 2 ini, Anda diharapkan dapat mengubah suatu nilai tertentu pada memory. Contoh implementasi penggunaan teknik ini yaitu misalnya untuk mencari nilai Health dan menggantinya. Di tutorial ini, Anda harus mengubah nilai Health dari 100 menjadi 1000. Setelah nilai Health menjadi 1000, tombol Next dapat aktif dan Anda dapat lanjut ke level 3.

Langkah pertama yang dilakukan yaitu dengan mengetik 100 di isian Value pada Cheat Engine. Klik tombol First Scan. First Scan merupakan tombol yang berfungsi untuk mencari nilai 100 di proses tutorial. Tombol ini digunakan untuk pertama kali melakukan scan variable (nilai) pada memory. Setelah First Scan, muncul daftar alamat memory yang ditemukan beserta nilainya. Silahkan melihat Gambar 3.

Gambar 3. Tampilan Daftar Alamat Memory dan Nilainya.
Gambar 3. Tampilan Daftar Alamat Memory dan Nilainya.
Nilai pada kolom Value akan berisi nilai 100 karena nilai inilah yang dicari. Untuk menentukan dimana alamat nilai yang tepat, maka klik tombol Hit me. Nilai Health pada tampilan level 2 akan berkurang menjadi 99 atau nilai yang lebih rendah lainnya. Kembali perhatikan daftar alamat memory dan nilainya, jika diperhatikan secara keseluruhan, maka ada nilai yang berubah menjadi 99 sehingga Anda dapat memastikan alamat memory yang akan dimodifikasi. Namun, bayangkan jika ada ratusan alamat yang bernilai 99, oleh karena itu Anda dapat kembali mengklik tombol Hit me dan ganti nilai di isian Value menjadi nilai tersebut serta gunakan tombol Next Scan untuk melanjutkan scan variable.

Setelah Anda menemukan alamat yang berisi nilai yang Anda dapatkan, klik 2x pada alamat tersebut sehingga alamat tersebut muncul di daftar detil pada bagian bawah. Pada daftar baru tersebut, klik 2x pada nilai yang digunakan dan ganti dengan nilai 1000. Setelah itu tombol Next pun menjadi aktif. Lanjut ke level 3.

Level 3
Ada game yang hanya menampilkan nilai Health berupa bar.Di level 3 ini, Anda dihadapkan dengan bar yang berisi penuh dan jika tombol Hit me diklik, nilai bar akan berkurang. Berbeda dengan level 2, pada level 3 ini Anda tidak mengetahui nilai yang akan dicari di memory. Yang diketahui hanya nilai minimum yaitu 0 dan nilai maksimum yaitu 500.

Klik tombol New Scan untuk memulai scan baru. Pada Scan Type, pilih Unknown initial value lalu klik tombol First Scan. Klik tombol Hit me pada program tutorial sehingga nilai pada bar berkurang. Pada Cheat Engine, pilih Scan Type menjadi Decreased value karena nilai dari bar akan semakin berkurang jika tombol Hit me diklik. Klik tombol Next Scan untuk menampilkan alamat memory beserta nilainya.

Lakukan secara terus menerus (klik tombol Hit me dan Next Scan), hingga nilai yang terdapat pada alamat memory berada dalam rentang 0 hingga 500. Klik 2x pada alamat yang ditemukan hingga muncul daftar detil di bagian bawah dan klik 2x lagi nilai di bagian bawah tersebut untuk mengubah nilai tersebut dengan nilai 5000. Tombol Next pun aktif.

Level 4
Setiap nilai memiliki tipe data tertentu. Dengan memfilter tipe data ini, pencarian nilai di memory pun semakin praktis. Pada level 4 ini terdapat dua nilai yaitu Health dan Ammo. Tipa data dari Health yaitu float sedangkan tipe data dari Ammo yaitu double. Misi pada level ini bertujuan untuk mengubah kedua nilai menjadi 5000.

Pertama yaitu mencari alamat Health di memory. Isi isian Value dengan nilai 100 dan Value Type menjadi Float serta klik tombol First Scan hingga muncul beberapa alamat di memory yang bernilai 100. Klik tombol Hit me sehingga nilai Health berkurang. Perhatikan bahwa ada alamat yang nilainya berubah menjadi nilai yang berkurang tersebut. Lakukan hal yang sama untuk mencari alamat memory Ammo, yaitu ubah Value Type menjadi Double serta lakukan First Scan. Ubah kedua nilai pada alamat tersebut menjadi 5000. Pastikan sebelum melakukan First Scan, opsi Fast Scan di-non aktifkan.

Level 5
Tutorial pada level ini akan mengajarkan bagaimana Anda memanfaatkan debugger untuk mencari alamat mana yang ditulis nilai tertentu. Kenapa menggunakan debugger? Hal ini dikarenakan terkadang alamat dari nilai ini berubah-ubah dalam suatu game tertentu. Level ini bertujuan agar menghilangkan fungsi dari tombol Change value yang mengubah suatu nilai.

Nilai inisial pada level ini yaitu 100. Isi Value dengan nilai 100 dan klik tombol First Scan. Klik tombol Change value hingga nilainya berubah serta isi nilai tersebut di Value dan lakukan Next Scan. Muncul alamat nilai tersebut di bagian kiri. Lakukan 2x klik untuk menampilkan daftar detil. Klik kanan pada daftar detil dan pilih Find out what writes to this address. Ada konfirmasi untuk mengizinkan debugger mengakses proses file tutorial, pilih Yes untuk mengizinkan hingga muncul window baru. Klik kembali tombol Change value hingga pada window baru (Gambar 4) muncul daftar instruksi. Instruksi inilah yang berisi perintah untuk mengubah nilai setiap tombol Change value diklik. Klik tombol Replace dan OK. Klik tombol Stop untuk melanjutkan eksekusi program (meng-unload debugger) lalu klik tombol Close. Silahkan Anda mengklik tombol Change value maka tombol Next pun akan aktif serta nilai tidak berubah sama sekali.

Gambar 4. Menangkap Instruksi Dengan Debugger.
Gambar 4. Menangkap Instruksi Dengan Debugger.
Level 6
Pointer memang agak sulit untuk dipelajari oleh pemula. Namun dengan pointer, Anda dapat dengan mudah dalam bermain-main untuk mengubah suatu nilai pada instruksi pemicu event.
Ada suatu nilai yang bernilai 100 dan dua tombol pada level ini, yaitu Change value dan Change pointer.Change value untuk mengubah nilai sedangkan Change pointer bertujuan untuk mengubah nilai dan lokasi nilai tersebut.

Pertama, carilah alamat dari nilai di memory. Lakukan First Scan  dengan Value bernilai 100. Klik kembalo tombol Hit me hingga nilai berubah dan lakukan Next Scan. Klik 2x pada alamat yang ditemukan hingga muncul daftar detil alamat tersebut. Pada daftar detil, klik kanan dan pilih Find out what writes to this address. Klik kembali tombol Hit me agar debugger dapat menangkap instruksi yang aktif. Setelah ada instruksi tertangkap, klik More Information untuk menampilkan instruksi detil setelah event tereksekusi. Pada window baru yang baru muncul (Gambar 5), terdapat baris yang berwarna merah dimana breisi alamat dan instruksi MOV.  Nilai dari pointer tujuan pada instruksi MOV inilah yang akan digunakan nantinya.

Gambar 5. Tampilan Window Extra Info.
Gambar 5. Tampilan Window Extra Info.
Lakukan First Scan dengan Value berisi nilai pointer tujuan. Pointer dapat berupa register EAX atau EDX. Jangan lupa untuk mencentang opsi Hex karena nilai pointer berupa bilangan heksa. Setelah ditemukan alamat yang berisi nilai pointer tersebut, klik 2x juga pada alamat tersebut. Selanjutnya yaitu dengan mengklik tombol Add Address Manually kemudian centang opsi Pointer dan isi Address of pointer dengan nilai dari alamat pertama pada daftar. Klik tombol OK. Kini di daftar detil ada 3 data. Ubah nilai Value dari data ketiga menjadi 5000 sehingga data pertama pun juga menjadi 5000. Centang juga opsi Active pada data agar tidak ikut tereksekusi. Klik tombol Change pointer dan tombol Next pun menjadi aktif.

Level 7
Pada level 7 ini berisi teknik code injection untuk mengubah suatu nilai pada memory dengan cara menginjeksi kode ke proses yang aktif. Nilai yang mesti diubah yaitu nilai Health dengan nilai inisial yaitu 100. Seperti biasa, temukan alamat dari nilai dan cari instruksi yang menulisi nilai tersebut dengan Find out what writes to this address. Pada window debugger, pilih menu Show Disassembler. Pilih menu Tools kemudian Auto Assemble. Pada window Auto Assemble, pilih menu Template – Code Injection, lalu klik tombol OK untuk melanjutkan proses. Muncul template atau kode yang dapat digunakan untuk menginjeksi seperti sebagai berikut :

alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
dec [ebx+00000454]

exit:
jmp returnhere

"Tutorial-i386.exe"+226BC:
jmp newmem
nop
returnhere:

Kopi baris yang berisi kode original yaitu dec [ebx+00000454]. Di bawah baris newmem, isi dewngan kode berikut :

add [ebx+00000454], 2

Kode original sendiri berisi instruksi dec yang akan mengurangi nilai sedangkan kode yang baru dibuat yaitu untuk menambah nilai dengan angka dua. Klik tombol Execute dan pilih Yes untuk melanjutkan. Kini setiap tombol Hit me diklik, nilai Health akan bertambah sebanyak dua. Dengan sedikit pemahaman instruksi assembler, teknik code injection ini praktis diterapkan dan efisien.

Demo Cheating
Demo disini akan menggunakan game DotA Allstars. Jalankan Frozen Throne.exe. Misalkan Anda memilih Local Area Network untuk bermain di dalam jaringan LAN. Setelah game dimulai dan Anda telah memilih Hero, segera gunakan Cheat Engine untuk me-load proses Frozen Throne.exe. perhatikan jumlah gold yang Anda miliki, misalnya 4015.

Pada Cheat Engine, isi Value dengan 4015 diikuti angka nol sehingga menjadi 4015. Klik tombol First Scan. Kembali ke layar DotA, beli item sehingga jumlah gold berkurang. Misalkan jumlah gold sekarang menjadi 3515. Isi di Value dengan nilai 35150 dan klik tombol Next Scan hingga muncul alamat dari nilai tersebut. Klik 2x pada alamat tersebut agar muncul pada daftar detil pada bagian bawah. Pada daftar tersebut, klik 2x nilai 35150 dan ubah menjadi 10000000. Lihat kembali pada layar DotA dan gold Anda sekarang telah bertambah banyak.

Ditulis untuk PC Media edisi 10 2011

No comments:

Post a Comment