vc植物大戰殭屍修改器簡單源代碼

打開編譯器時用管理員身份運行 否則個別函數因爲權限不夠而調用失敗 打開遊戲 用編譯器運行一下就能實現修改
#include <bits/stdc++.h>
#include "windows.h"
#include "windowsx.h"
using namespace std;

int main()
{
    //獲得窗口句柄
    HWND gameWindow=FindWindow(NULL,"Plants vs. Zombies 1.2.0.1073 RELEASE");//通過窗口標題獲得句柄
    if(gameWindow==NULL)
        cout<<"獲得窗口失敗"<<endl;
    else
        cout<<"獲得窗口成功"<<endl;
    //獲得目標進程ID
    DWORD pid;//DWORD相當於void* 無類型指針
    GetWindowThreadProcessId(gameWindow,&pid);//通過句柄獲得進程ID,並把ID的值傳遞給輸出參數pid
    //獲得線程句柄
    HANDLE hprocess=OpenProcess(PROCESS_ALL_ACCESS,0,pid);//通過進程ID打開進程
    if(hprocess==NULL)
        cout<<"打開進程失敗"<<endl;
    else
    cout<<"打開進程成功"<<endl;
    //獲取目標線程基址
    DWORD area;
    int getData=ReadProcessMemory(hprocess,(void *)0x00199178,&area,4,NULL);//通過CE查找到目標基址是0x00199178
    if(!getData)
        cout<<"讀取基址數據失敗"<<endl;
    else
        cout<<"讀取基址數據成功"<<endl;
    int sun=7625;//修改太陽的變量
    //修改數據
    int alterData=WriteProcessMemory(hprocess,(void *)(area+0x5578),&sun,4,0);//通過基址+偏移量獲得太陽數存放的準確地址
    //關閉線程句柄
    if(!alterData)
        cout<<"修改失敗"<<endl;
    else
        cout<<"修改成功"<<endl;
    CloseHandle(hprocess);
    return 0;
}

版本不一樣的話 這段代碼窗口標題 基址 偏移量需要改,也就是Plants vs. Zombies 1.2.0.1073 RELEASE 0x00199178 0x5578窗口標題不用多說

基址 偏移量 我用的CE找的  有的版本偏移好多次

推薦一個用CE查找基址和偏移量的圖文教程點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章