Trao đổi với tôi

http://www.buidao.com

10/13/10

[Reverse] Hướng dẫn viết hack game (game trainer) - Part 3

Chap 3 : Vô hạn lượt đổi (unlimited continue)


Cũng như lần trước nhưng có 1 vài thay đổi,
đó là tôi biết địa chỉ của biến điểm là 004B6088
vậy tôi sẽ khoanh vùng lại tìm kiếm cho nhanh (theo kinh nghiệm thì 1 biến ở đó thì biến còn lại cũng chỉ ở gần gần đó thôi, ko đi xa đâu) nên tôi tìm như sau (lần này tôi tìm cả integer 4byte nữa) như trong hình sau


Thật tuyệt vời, chỉ tìm 1 lần là ra luôn, nó là 1 số nguyên 4byte và có địa chỉ là 004B60AA
vậy tôi demo luôn, cách thức cũng ko khác lần trước là mấy
PHP Code:
#include

void SetContinueTo999()
{
HWND hwnd =FindWindow(L"ThunderRT6FormDC", L"³s³s¬Ý2");
if (!
hwnd)
{
MessageBox(HWND_DESKTOP,L"Bạn phải bật pikachu lên chơi trước đã",L"Thông báo",MB_OK);
}
else
{
DWORD pid;
int temp=0;
GetWindowThreadProcessId(hwnd,&pid);
HANDLE handle=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,pid);
int *address=(int*)0x4B60AA;
WriteProcessMemory(handle,address,&temp,sizeof(temp),0);
MessageBox(HWND_DESKTOP,L"Đã add thành công",L"Thông báo",MB_OK);
}
}

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
SetContinueTo999();
return
EXIT_SUCCESS;
}
và code chạy trên DEV-C :
PHP Code:
#include

void SetContinueTo999()
{
HWND hwnd =FindWindow("ThunderRT6FormDC", "³s³s¬Ý2");
if (!
hwnd)
{
MessageBox(HWND_DESKTOP,"Ban phai bat pikachu len choi truoc da","Thông báo",MB_OK);
}
else
{
DWORD pid;
int temp=0;
GetWindowThreadProcessId(hwnd,&pid);
HANDLE handle=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,pid);
int *address=(int*)0x4B60AA;
WriteProcessMemory(handle,address,&temp,sizeof(temp),0);
MessageBox(HWND_DESKTOP,"Ðã add thành công","Thông báo",MB_OK);
}
}

int main()
{
SetContinueTo999();
return
1;
}