Example :
Step 1 : Seperti biasa, Siapkan alat Tempur
- MSVC++ 2008 / 2010
- Cheat Engine / MHS
Step 2 : Find Value & Offset
Buka Cheat Engine, Select prosses.Misal target saya iw4sp.exe
Scan Jumlah ammo seperti biasa di CE.
Misal jumlah ammo kita 100, Scan 100 di CE (4byte)
Setelah di scan maka akan muncul banyak addres dengan value 35, supaya kita tau mana value ammo nya kita scan trus.
Ntembakan beberapa peluru hingga peluru nya berkurang.
Misal tadi awalnya 100 setelah di tembakan jadi 95
trus scan 95 (nextscan)
nah, sekarang addresnya mulai berkurang, misal hasil scan 95 tadi addresnya tinggal 4, lakukan hal yang sama seperti di atas untuk mengetahui addres ammonya, misal addresnya tinggal 1, nah itulah addres/value dari ammo nya.
Lanjut...
Klik kanan di addres nya > Browser this memory region.
Misal value yang di scan trakhir adalah 90, maka cari value 90 nya (biasanya di awal value)
Untuk memudahkan Convert 90(decimal) ke Hex.
Caranya buka kalkulator > view scientific.
Bulat hitamnya di "Dec" sama "Degrees"
Ketik 90 di kalkulator trus pindahkan bulat item dari "Dec" ke "Hex"
Maka hasilnya adalah "5A"
Trus Lihat di Value (memory region CE) adakah value "5A" ?
Pasti ada
Misal saya dapet "35 5A 81 7C 21 04"
Nah yang saya bold itu value 5A tadi.
Trus Klik kiri di 5A>add addres to the list.
Close memory viewer nya, lihat di list CE, distu ada 1 addres dengan value "355A817C21".
Nah Value sudah di temukan.
Step 2 : Find Pointer
Klik kanan di addres tadi > Pointer scan for this pointer.Atur max pointernya, misal saya ubah jadi 1 > OK >simpen dengan nama apa saja.
nah setelah scan pointernya kita dapet "BASE ADDRES" sama "OFFSET 0"
Misal Base addres saya : iw4sp+0x54F00 Dengan Offset : 00x47FA (OFFSET 0)
Nah offset sudah di temukan.
Step 2 : Ramuan
Buka MSC++ >buat project baru > EmptyMasukan Source ini :
#include <windows.h> #include <stdio.h>
BYTE ByteAsli[6] = {0x35, 0x5A, 0x81, 0x7C, 0x21, 0x04}; //Byte Aslinya BYTE RubahByte[6] = {0x35, 0xFF, 0x81, 0x7C, 0x21, 0x04}; //Byte untuk merubah Byte Asli (FF = 255) DWORD Kaskus = 0; LPTSTR COD = "iw4sp.exe"; // Target prosesnya void Patch(void *adr, void *ptr, int size) { DWORD NewProtection; VirtualProtect(adr,size,PAGE_EXECUTE_WRITECOPY, &NewProtection); memcpy(adr,ptr,size); VirtualProtect(adr,size,NewProtection, &NewProtection); } DWORD WINAPI LoopFunction(LPVOID param) { while (1) { if(GetAsyncKeyState(0x01)&1) // Hotkey (Klik kanan) { DWORD Maho = (DWORD)GetModuleHandleA(COD); { if (Maho > 0) { Kaskus = Maho + 0x47FA; // offset dari dari Pointer tadi Patch((void *)(Kaskus),(void*)(PBYTE)RubahByte, 6); //"RubahByte". disini fungsi patch untuk merubah byte asli Sleep(100); // di kasih sleep biar gak Crash Patch((void *)(Kaskus),(void*)(PBYTE)ByteAsli, 6); // Fungsi buat ngerubah byte asli yang telah di rubah td/ di kembalikan ke byte asli ,supaya tidak DC. } Sleep(10); } } } return (0); } BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved ) //DLL Main { // ngurangin beban kerja dll DisableThreadLibraryCalls(hDll); if (dwReason == DLL_PROCESS_ATTACH) { CreateThread(0, 0, LoopFunction, 0, 0, 0); } return TRUE; }
Credit :
Indrascott & Kuya.Gaol / Me
"Jangan segan untuk bertanya, bila agan kesulitan silahkan tinggalkan komentar di bawah, maka akan saya bantu semaksimal mungkin "
Gak Bisa DI copy/Paste Gan...
BalasHapusMasa Aku Harus Ngetik Basenya...
Sudah di Fix :)
HapusThanks masukanya :24
Ok Gan Thx Yah.. :D
HapusSama-sama magan :-h
HapusPatch((void *)(Kaskus),(void*)(PBYTE)RubahByte, 6); //"RubahByte". disini fungsi patch untuk merubah byte asli
BalasHapus(Gan Maksud nya Apa Gan)
Maklum Newbie
Itu fungsi untuk merubah byte aslinya, atau fungsi untuk menyuntikan code hacknya.
HapusTerimakasih atas komentarnya :)
gan?
BalasHapuspb indo kan gk bisa minimize/altab?
iya emang udah lama gk bisa gan.
Hapuscoba agan nyari di forum atau blog yg share winmode / alt tab.
bang minta visual C++ Dong
BalasHapus