Dasar Game Hacking Part II

Dasar Game Hacking Part II

Pada part I kita sudah mempelajari dasar dari hacking game yaitu memory hack, pada part II ini kita akan mempelajari DMA dan bagaimana cara mengatasinya.

DMA, apa itu? DMA merupakan singkatan dari Dynamic Memory Allocation yang biasa digunakan pada game-game sekarang. Singkatnya game meload value ke memory secara acak setiap kali jalan / refresh guna menghindari adanya trainer yang menulis ke memory fix.

Karena kita tidak bisa mengubah lokasi memori pada game berbasis DMA, maka untuk
mengatasinya kita perlu untuk langsung mencari letak kodenya.

Kita mulai saja, disini saya mengandaikan minesweeper mengunakan DMA, hanya sebagai contoh saja, selanjutnya bisa kalian kembangkan.


Tools silakan cari di google :

1. Tsearch
2. Minesweeper <-bawaan windows
3. Minuman / Makanan yg enak
4. Sedikit logika

Pertama buka tsearch, lalu jalankan minesweeper, seperti pada part 1 tujuan kita akan menghentikan waktu dari minesweeper.

Saya asumsikan kalian sudah mengerti pemakaian tsearch pada part 1, cari address number dari timer, disini saya mendapatkan address 010056F0 (note:belum tentu sama pada komputer anda).

Pada menu pilih AutoHack->Enable Debugger, lalu pilih AutoHack->AutoHack Window, kemudian akan muncul AutoHack Window.

Pada Address yang kita dapatkan di cheat list, klik kanan kemudian pilih AutoHack, Address yang kita dapatkan akan muncul di sebelah kanan bawah jendela AutoHack (coba lihat saja).

Mainkan kembali minesweeper, kalian akan melihat pada autohack window breakpoint yang kita pasang pada memori 010056F0 mengenai sasaran

Pada bagian bawah Jendela Autohack, terdapat beberapa bar yaitu :
[debug event][disassembler][thread][register]

Klik pada bar [disassembler], lalu klik pada salah satu list di jendela AutoHack, saya klik pada (1003020: inc dword ptr[0x10056f0]), maka pada bar [disassembler] akan muncul kode-kode asembler yang akan kita pahami.

Kode Asm (bisa berbeda dikomputer kalian) :
0100301e 7D12 jge short 0x01003032
01003020 FF05F0560001 inc dword ptr [0x10056F0]
01003026 E88CFBFFFF call 0x01002BB7

mengapa hanya tiga kode saja yang dibahas?, karena hanya kode yang penting yang saya bahas.

perhatikan line berikut "inc dword ptr [0x10056F0]"!!
Pada line tersebut dalam bahasa asembler berarti naikkan satu nilai pada pointer 10056F0 (memori address yg kita dapatkan ingat ?), berarti line ini adalah tempat dimana timer akan menaikkan nilainya.

Lalu bagaimana? cukup mudah kok, agar timer tidak berjalan maka kita cukup menop-kan line tersebut. Hal ini dibuat mudah dalam tsearch, pada jendela menu AutoHack pilih edit->patch, maka pada line tersebut akan berubah menjadi seperti ini.
0100301e 7D12 jge short 0x01003032
01003020 90 nop
01003021 90 nop
01003022 90 nop
01003023 90 nop
01003024 90 nop
01003025 90 nop
01003026 E88CFBFFFF call 0x01002BB7

coba kalian mainkan minesweeper kembali, lihat apakah timer berjalan atau tidak? untuk mengembalikan ke kondisi semula, pada jendela menu AutoHack pilih edit->unpatch.

Mungkin ada yang bingung kenapa banyak sekali pemakaian nop ?

Perhatikan lagi pada line "01003020 FF05F0560001 inc dword ptr [0x10056F0]"
Pada line tersebut terdapat baris "FF05F0560001" yang jika dipisah menjadi "FF 05 F0 56 00 01" (terdapat 6 bukan ?), maka jika kita hendak menop-kan maka harus memakai 6 buah nop pula, karena nop bernilai 1 sedangkan line tersebut bernilai 6.
Singkatnya "FF 05 F0 56 00 01" diubah menjadi "90 90 90 90 90 90".
Sekarang kita akan membuat trainer khusus DMA.

Pada Tsearch terdapat fasilitas ini dengan mengunakan TMK, pada jendela AutoHack menu pilih
"TMK->Button Script" maka akan muncul kode yang bisa kita masukan mengunakan TMK.

cth kode:
*/hasil dari button script
Tmk button script
Copy and Past into tmk using ctrl+V
Ex: Patched script for a ON button
and Unpatched script for a OFF button
Patched script:
Poke 1003020 90 90 90 90 90 90
UnPatched script:
Poke 1003020 FF 05 F0 56 00 01
pada TMK kita membuat 2 buah tombol yang bernama "Berhenti" dan "Jalan".
dimana pada "write memori actions" tombol berhenti kita memasukan "Poke 1003020 90 90 90 90 90 90".
sedangkan pada "write memori actions" tombol jalan kita memasukan "Poke 1003020 FF 05 F0 56 00 01"

Gimana mudah bukan? untuk masalah TMK, coba baca bagian "Tutorial TMK by Pinnacle", sangat bagus untuk yang mao belajar bikin trainer
Pertanyaan seputar Tutor ini !

T: kenapa tidak muncul apa-apa pada jendela AutoHack?
J: Mungkin karena kamu belum memasukan breakpoint, coba ikuti satu persatu tutor ini.

T: Pada list AutoHack terdapat 3 atau lebih, yang mana yang merupakan address yang benar ?
J: Jawaban dari pertanyaan ini membutuhkan sedikit pemahaman soal asembler dan logika
kamu, coba kamu pikirkan logika berikut, timer akan menaikan satu nilai setiap detik ex 29+1=30, pada asm perintah menaikkan value adalah INC, jadi pada line yang terdapat tulisan INC, besar kemungkinan bahwa baris tersebut adalah baris dimana timer menaikkan nilainya.

T: Saya mengerti tapi di list ada 2 address yang sama, yang mana yang benar ?
J: Kalau saya harus memilih, kenapa tidak dicoba satu-satu? coba list atas di-patch dulu dan lihat apakah timer masih berjalan? kalau masih coba patch yang berikutnya. Kemungkinan address sama memang ada, tapi hanya salah satu yang benar.

T: Mengapa kita menganti line dengan nop ? dan apa itu nop ?
J: Nop berarti no operation yang bernilai hex 90, maksud dari perintah nop adalah tidak melakukan apa-apa. Perintah yang kita ganti adalah INC yang menaikkan nilai, maka nop cukup agar nilai tidak naik. Berbeda jika perintah adalah "JMP,JNE,JGE,dll" maka berbeda pula patch yang harus kita lakukan.

T: Bisa ga kalo ga pake TMK buat bikin trainernya?
J: Bisa, karena basic pembuatan trainer hampir sama, maka kamu bisa memakai trainer maker lain seperti GTS, dll.

T: Apa perlu belajar asembler ? kan susah tuh ?
J: Yang perlu dipelajari adalah dasar dari asembler, seperti register dan perintah-perintahnya,
tidak perlu kamu langsung bisa, kamu bisa mulai pelan-pelan mempelajarinya kok

T: Dimana saya bisa belajar asembler ? dan kenapa tools seperti tsearch dan yang lain tidak diberikan ? kan saya tidak punya dan tidak tahu dimana harus mencarinya
Khusus pertanyaan diatas, kamu bisa mencari pada "google", tujuan saya tidak memberikan tools yang dibutuhkan karena satu sebab :
J: "Kalian punya Mata, Telinga, Mulut, dan Otak kan ? lakukan apa yang bisa kamu lakukan. Bukankah ini merupakan suatu wujud petualangan dalam belajar ?!"
Perlu kalian cam-kan baik-baik, tidak ada manusia yang berbakat, seperti yang pernah dikatakan thomas alva edison "Bakat adalah 1% ilham ditambah 99% kerja keras".

Sebelumnya maaf jika ada ucapan yang menyinggung, dan jangan lupa nantikan tutor lanjutan dan beberapa tutor yang moga-moga akan saya post segera.

Credit to CyberX – Kritik dan saran nya, -Fendie- GTS nya, Mopez Pembuat tutorial, Whitehat, Mandy thanks atas dokumentasi nya, Game Hacking Archieve and all nyit2er

Sumber : N3

comment 0 komentar:

Posting Komentar

Delete this element to display blogger navbar

 
© Berbagi Itu Indah | Design by Blog template in collaboration with Concert Tickets, and Menopause symptoms
Powered by Blogger