[外挂3] 编程读出坐位号

 

 

a、远程读取进程数据

b、打开远程进程

c、读取远程进程数据

 

首先百度一个cheat engine软件,自学一下很简单

 1 API函数介绍

 2   1、FindWindow               //获取窗口句柄

 3   2、GetWindowThreadProcessId //获取窗口进程ID

 4   3、OpenProcess              //打开指定进程

 5   4、ReadProcessMemory        //读指定进程 内存数据

 6  游戏进程名: 

 7  游戏窗口标题:

 8  HWND FindWindow(

 9   LPCTSTR lpClassName,  // NULL 忽略

10   LPCTSTR lpWindowName  // 窗口标题

11 );

12  

13 BOOL ReadProcessMemory(

14   HANDLE hProcess,  // 进程句柄 

15   LPCVOID lpBaseAddress,

16                     // 基址0x00B8D8E0

17   LPVOID lpBuffer,  // 存放数据缓冲区

18   DWORD nSize,      // 要读取数据的字节数

19   LPDWORD lpNumberOfBytesRead 

20                     // 实际读取的字节数

21 );

 

在VC代码里添加座位号的变量m_num 类型是UINT,新增一个按钮

[外挂3] 编程读出坐位号

 1 void CFewDlg::OnButton2()//读取坐标号

 2 {

 4     //1、FindWindow               //获取窗口句柄

 5     //2、GetWindowThreadProcessId //获取窗口进程ID

 6     //3、OpenProcess              //打开指定进程

 7     //4、ReadProcessMemory        //读指定进程 内存数据

 8     HWND gameh=::FindWindow(NULL,"井字棋");//获取窗口句柄

 9     //获取窗口进程ID

10     DWORD processid;

11     ::GetWindowThreadProcessId(gameh,&processid);

12     HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,processid);    //打开指定进程

13     //读指定进程 内存数据

14     DWORD byread;

15     LPCVOID pbase=(LPCVOID)0x03F8EEA0;//读取当前的指针,强制转换为LPCVOID指针

16     LPVOID  nbuffer=(LPVOID)&m_num;   //保存当前的指针,强制转换为LPVOID指针

17     ::ReadProcessMemory(processH,pbase,nbuffer,4,&byread);

18     UpdateData(false); //更新变量的值到 编辑框

19 }

第15行的0x03F8EEA0是从CE中获得的一个地址:

[外挂3] 编程读出坐位号

所以结果为55
 

你可能感兴趣的:(编程)