Renovasi Web by Alindro

Saturday, October 26, 2013

Tutorial Cara Membuat Address Logger

No comments
Credits : d0m1n1k (FindPattern), Gecko http://n3.vc/11A1, All Member TTK



Tools yang dibutuhkan :

1. FindPattern

2. Address Sygnature





1. FindPattern

Tambahkan code ini ke projectmu agar bisa menggunakan FindPattern(…);



bool Match(const BYTE* pData, const BYTE* bMask, const char* szMask){for(;*szMask;++szMask,++pData,++bMask)         if(*szMask=='x' && *pData!=*bMask )                 return false;return (*szMask) == NULL;}DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask){for(DWORD i=0; i < dwLen; i++)         if(Match( (BYTE*)( dwAddress+i ),bMask,szMask) )                 return (DWORD)(dwAddress+i);return 0;}



2. Mendapatkan signature dari suatu address

Mungkin bagian ini adalah hal yang membingungkan bagi pemula ^^ karena berhubungan dengan bytes.

Setelah kita dapat mengetahui FindPattern hal selanjutnya yang paling penting adalah Sygnature. Sygnature yang akan dipasang di FindPattern harus Static (tidak berubah) bukan Dinamyc (berubah) karena kalau Sygnaturenya salah/dinamyc maka FindPattern tidak akan menemukan address yang akan dicari. Contoh bytes yang Static/Dinamyc seperti ini







E9 15480523   JMP 23456789

FF15 98104000 CALL DWORD PTR DS:[0xDEAD]

Hijau = Static

Merah = Dinamyc



Kenapa E9 bisa dikatakan Static??? ^^ karena E9 tidak akan berubah walaupun game direstart/game patch. Dan sebaliknya Address dalam bentuk byte (Merah) dinamyc karena akan berubah setelah game patch. Gampang nya kalo lihat di Olly ada spasi diantara dua tipe bytes tersebut untuk lebih mudah, liat gambar kalo belom mudeng ^^. (Noh liat yang dikasih gambar panah). Dah mudeng belum beda static sama dinamyc? Kalo belum mudeng silahkan reply di thread :D





Pada tutor kali ini saya akan mencari address yang membuat timer di minesweeper bertambah. Setelah saya breakpoint saya menemukan address ini (tutor mencari asm-nya diskip) : 1002FF5



01002FF5 |. FF05 9C570001                INC DWORD PTR DS:[100579C]01002FFB |. E8 B5F8FFFF                  CALL 010028B501003000 |. 6A 01                                PUSH 1



Dari address tersebut didapatkan signature : FF 05 ?? ?? ?? ?? E8 ?? ?? ?? ?? 6A 01



Versi  C++ :

Pattern : \xFF\x05\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x6A\x01

Mask : xx????x????xx

Pattern untuk byte yang dinamyc kita tulis dengan 00

Mask untuk byte yang dinamyc kita tulis dengan ?

Mask untuk byte yang static kita tulis dengan x



Contoh Penggunaan :

DWORD dwBase = (DWORD)GetModuleHandle(“minesweeper.exe”);DWORD dwLog = FindPattern(dwBase, 0x5000000, (PBYTE)”\xFF\x05\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x6A\x01”, “xx????x????xx”);char cbuffer[255];sprintf(cbuffer, “Logged Address : 0x%X”, dwLog);MessageBox(NULL, cbuffer, “Result”, 0); // Pop-up hasil log lewat msgbox// Saat ini ente sudah mendapatkan hasil dari logging terserah mau diapain, mau di hack juga bolehMEMwrite((void*)dwLog, (PBYTE)”\x90\x90\x90\x90\x90\x90”,6 );//opsional





Q: Pada FindPattern mengapa dwLen kita isi dengan 0x500000?

A: Karena kita akan mencari address yang berada pada 0x01002FF5, maka dwLen harus diisi lebih besar dari address yang akan dicari.







01003000  |.  6A 01 PUSH 1

Q: Mengapa menjadikan 01 static sedangkan di ollydbg diantara 6A dan 01 ada spasi?

A: Karena 01 itu bukan byte berbentuk address sehingga kecil kemungkinan akan berubah saat game patch



Tips : Mencari sygnature dapat dilakukan dengan bantuan sygmaker

http://n3.vc/11A2



#Sumber : N3 + Ukn0wnCheats

No comments :

Post a Comment