DMA LEVEL HACK
Hai... dah lama pangya ga ada tutorial ....
mungkin dengan ada nya yg satu ini kita nyit2ers mulai semangat lagi berkreasi bukan hanya menggunakan.
sebelumnya harap maklum kalau byk salah2 kata dan membingungkan, saya belum pernah menulis tutorial sebelumnya. hehehehehe
Tools:
Rookie E = 1; Beginner E = 6; Junior E = 11; Senior E = 16;
Rookie D = 2; Beginner D = 7; Junior D = 12; Senior D = 17;
Rookie C = 3; Beginner C = 8; Junior C = 13; Senior C = 18;
Rookie B = 4; Beginner B = 9; Junior B = 14; Senior B = 19;
Rookie A = 5; Beginner A = 10; Junior A = 15; Senior A =20;
dan seterusnya.... sampe terakhir Master A = 50; cape tulisnya :ngacir:
Langkah:
silakan kembangkan buat mencari address2 DMA yg lain, metode hampir sama sebenrnya hanya mungkin
level pointer yg bervariasi, dari 1, 2, 3, 4, dst.....
TUTOR INI DITUJUKAN UNTUK PEMBELAJARAN BUKAN UNTUK SHOW OFF DSB....
regards
1642EQ
Hai... dah lama pangya ga ada tutorial ....
mungkin dengan ada nya yg satu ini kita nyit2ers mulai semangat lagi berkreasi bukan hanya menggunakan.
sebelumnya harap maklum kalau byk salah2 kata dan membingungkan, saya belum pernah menulis tutorial sebelumnya. hehehehehe
Tools:
- Vicious Engine
- Pangya 3.21 (untuk pangya versi berikutnya, cara tetap sama hanya address yg berbeda)
- Mata yg jeli untuk membaca
- Kesabaran
Rookie E = 1; Beginner E = 6; Junior E = 11; Senior E = 16;
Rookie D = 2; Beginner D = 7; Junior D = 12; Senior D = 17;
Rookie C = 3; Beginner C = 8; Junior C = 13; Senior C = 18;
Rookie B = 4; Beginner B = 9; Junior B = 14; Senior B = 19;
Rookie A = 5; Beginner A = 10; Junior A = 15; Senior A =20;
dan seterusnya.... sampe terakhir Master A = 50; cape tulisnya :ngacir:
Langkah:
- Jalankan Vicious Engine (cara setting liat di thread lain!!)
- Jalankan Pangya Sampai Menu Login
Klik Process Watcher di V.Engine, Pilih ProjectG.exe - Cari address level di komputer kamu
- Di menu login search 0 (4 bytes)
- Masukkan password kamu lalu login seperti biasa, next search 3 (rookie C)
- Log out lagi dan search 0
- Ulangi langkah diatas sampai ketemu 1 address (bisa dengan mengganti char lain) seperti cth pada gambar
lalu klik 2x address tersebut sehingga muncul di kolom bawah!
- Kembali ke menu login, lalu klik kanan di address kita tadi, pilih -> Find out what writes to this address, lalu login lagi sehingga debugger menangkap baris asm yg menulis level kita seperti cth pada gambar.
- Ok. kita menemukan baris asm yg menulis level untuk char kita:
0053eef3 - mov [eax+000000e4],cl
kopi isi register cl ke alamat (eax+000000e4) atau dengan kalimat kita
kopi isi register cl ke alamat level hack kita!!
isi register cl = 3 (karena rookie C) - Dari address yg kita punya tadi, kita bisa membuat rumus sbb:
eax+000000e4 = 011AA1D4
011AA1D4 merupakan address level di komputer saya.
di setiap komputer, code eax+000000e4 pasti sama, sementara kita tahu bahwa address level di tiap
komputer belum tentu sama, jadi melihat rumus tadi kita bisa menebak bahwa isi register EAX yg belum tentu
sama di setiap komputer ^^; yg membuat address level di komputer saya menjadi 011AA1D4
- Di menu login search 0 (4 bytes)
- Cari Pointernya
- Berangkat dari bahwa program pangya yg kita miliki adalah sama antara saya dan anda, baik itu ukuran (size) maupun versinya, beserta isi asm code didalamnya, maka pasti ada base address yg membentuk address tadi sehingga address level kita berbeda di tiap komputer, atau dengan kata lain : banyak jalan menuju roma, tetap saja kita memulai dari titik kita berdiri, tidak peduli ke kiri atau ke kanan dahulu yg penting kita mulai dari titik kita berdiri ini. oleh karena itu roma akan berbeda2 dari sudut pandang kita, si A bilang roma di timur saya, yah memang roma berada di timur si A (dari sudut pandang dia), si B berkata roma ada dibelakang saya, memang kenyataan si B membelakangi roma, dsb. hal ini merupakan ilustrasi dari DMA (Dynamic Memory Allocation); dimana pun posisi address level kita yg berbeda2 di tiap komputer, kita tetap berangkat dari titik yg sama pada awalnya. Lalu apa gunanya DMA? Hal ini tidak akan dibahas di sini, silakan mencari dari artikel2 lain / googling ^^
- Dari kesimpulan diatas, berarti kita tinggal mencari titik awal (base address) pembentuk address level kita.
Dengan menyelesaikan rumus kita di atas, di dapat EAX = 011AA1D4 - E4 = 011AA0F0.
Kita akan mencari pembentuk EAX kita sehingga EAX bernilai 011AA0F0 - Cara 1:
coba kita search (4bytes) 011AA0F0 : wow kita menemukan hanya 1 address yg berisi nilai ini!!!
0082AFF0 berisi value 0x011AA0F0 ("0x" merupakan tanda untuk pointer).
coba kita lihat apakah ada pembentuk 0082AFF0 lagi? (pointer level 2),
search 0082AFF0 : waduh kenapa byk sekali addresss yg muncul :ngacir:
ok sampai sini kita stop dulu, dengan asumsi bahwa pembentuk EAX ada di alamat 0082AFF0.
Cara 2:
coba kita tekan Show Dissasembler
posisi cursor kita akan berada di 0053EEF3 mov [eax+000000e4],cl
coba kita search keatas, kapan terakhir register EAX di akses.
(dlm urutan terbalik)
mov [eax+000000e4],cl <----- kita ada disini
mov cl,[ebp+0b] <----- ah ga ada eax, lewat!!
call 00425c80 <---- auw ada call, coba kita trace fungsi call ini. Goto address 00425c80
00425C80 - mov eax,[0082aff0]
00425C85 - ret
wow kopi isi dari alamat 0082aff0 ke register EAX !!
code [0082aff0] pasti akan sama disetiap komputer, hanya isinya yg berbeda ternyata
sudah ketebak dong isi dari alamat 0082aff0 adalah 011AA0F0 (dlm urutan terbalik: F0 A0 1A 01) dikomputer saya tapi ^^. kita tentu tidak perlu tahu bagaimana perbedaaan isi dari alamat 0082aff0 bisa terjadi bukan? mau berapapun valuenya, tetap ada di alamat 0082aff0 setiap hari, setiap minggu, sampai suatu saat GM patch ^^.
- Bikin File .CTnya
Klik Add Address Manual
Pilih Pointer, isi kolom Address of Pointer dengan 0082aff0, offset dengan E4.
pada kolom address paling atas yg berwarna abu2 langsung berisi 011AA1D4
wow address yg pertama kali kita dapatkan....
sekarang address di engine anda akan berbentuk P->011AA1D4 (tergantung addresss di kompi anda)
jadi ga usah search lagi lain kali anda bermain pangya ^^.
silakan kembangkan buat mencari address2 DMA yg lain, metode hampir sama sebenrnya hanya mungkin
level pointer yg bervariasi, dari 1, 2, 3, 4, dst.....
TUTOR INI DITUJUKAN UNTUK PEMBELAJARAN BUKAN UNTUK SHOW OFF DSB....
regards
1642EQ