中国式家长的做弊实现之利用c语言进行内存修改ios
首先的话,做者是个小白,还在努力学习之中,对于编程语言能够说是只知其一;不知其二,
而后弄这样一个博客吧,分享一下本身的学习经历,也但愿能给一些新手一点帮助。web
一开始就是我本身玩中国式家长,以前两天肝了10个小时,以为挺有意思的,而后如今不想玩了,
可是28块钱买下来的游戏,怎么能白白闲置在这里呢,因而就成了个人练手之做,
今天就拿他来祭天。编程
OK若是你玩过这个游戏你就会发现这个游戏的悟性能够说是很是重要了,因此做为初学者,咱们固然要对他的悟性进行修改了。
我一开始先找到悟性,而后找出了他的基址
而后由于我找出来了,那我就直接上图
编程语言
不过真的是过久没摸过ce了,这个悟性基址我找的是头昏眼花。不过好在仍是弄出来了
587B504 偏移 D4 88 1D0 8 318
知道基址了就很好弄下来了svg
而后打开咱们的VC,由于我只弄了一个功能,并且功能只有5次偏移,因此我就写一个5次偏移学习
#include
#include "stdafx.h"
#include
#include
using namespace std;
int gameaddress = 0x587b504; //游戏基址;
HANDLE gameprocess; //句柄类型 获取
//5次偏移
int *get5point(int gameaddress,int p1,int p2,int p3,int p4,int p5)
{
int iBase, iP1, iP2,iP3,iP4,*iP5;
if (!ReadProcessMemory(gameprocess, (LPVOID)gameaddress, &iBase, 4, NULL))
{
return NULL;
}
if (!ReadProcessMemory(gameprocess, (LPVOID)(iBase + p1), &iP1, 4, NULL))
{
return NULL;
}
if (!ReadProcessMemory(gameprocess, (LPVOID)(iP1 + p2), &iP2, 4, NULL))
{
return NULL;
}
if (!ReadProcessMemory(gameprocess, (LPVOID)(iP2 + p3), &iP3, 4, NULL))
{
return NULL;
}
if (!ReadProcessMemory(gameprocess, (LPVOID)(iP3 + p4), &iP4, 4, NULL))
{
return NULL;
}
iP5=(int *)(iP4+p5);
return iP5;
}
//修改悟性
void wxxg()
{
int *pwx=get5point(gameaddress,0xD4,0x88,0x1D0,0x8,0x318);
float wx = 150;
cout<
WriteProcessMemory(gameprocess, pwx,&wx, 4, NULL);
}
int _tmain(int argc, _TCHAR* argv[])
{
//获取游戏窗口所在进程的进程ID,也就是PID
HWND hWnd = FindWindow(NULL, TEXT("中国式家长"));
if (NULL == hWnd)
{
printf("查找窗口失败\n");
return 0;
}
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
printf("进程ID:%d\n", dwProcessId);
//获取进程句柄
gameprocess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
if (NULL == gameprocess)
{
printf("打开进程失败\n");
return 0;
}
wxxg();
getchar();
return 0;
}
而后我在52的ID是 这是昵称的昵称spa