Tutorial Patch Memory

Example :



Step 1 : Seperti biasa, Siapkan alat Tempur
  1. MSVC++ 2008 / 2010
  2. 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 > Empty
Masukan 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;
}  


"Jangan segan untuk bertanya, bila agan kesulitan silahkan reply, maka akan saya bantu semaksimal mungkin

Credit : 
Indrascott & Kuya.Gaol 
"Jangan segan untuk bertanya, bila agan kesulitan silahkan tinggalkan komentar di bawah, maka akan saya bantu semaksimal mungkin "

1 komentar:

musikbrisik mengatakan...

bang mau nanya klo untuk game lostsaga teori sama aja apa ngga? kya skill cooldown gitu gmana cara scannya kan ga ada valuenya?

Poskan Komentar

  • Digg
  • del.icio.us
  • StumbleUpon
  • Yahoo! Buzz
  • Technorati
  • Facebook
  • TwitThis
  • MySpace
  • LinkedIn
  • Google
  • Reddit
  • Netvibes
Design by eckoCS1Copyright © 2010 Cheater Baturaja | Powered by Blogger