C++ VS2013 修改金錢 二

1.添加一個編輯框、一個靜態文本和一個按鈕,修改相應的Caption


2.修改編輯框ID爲IDC_Memory,按鈕ID爲IDC_Buttom_EDITMemory,並添加變量


4.爲了實時的顯示,我們添加定時器

在OnInitDialog窗口初始化函數中添加

	SetTimer(1,100,NULL);
5.類嚮導:Ctrl+Shift+X

	switch (nIDEvent)
	{


		case 1:
			

			HANDLE hp = GetGameProcessHanlde();
			DWORD buf = 0,byread,bywrite;
			ReadProcessMemory(hp, (PVOID)0x6a9ec0, &buf, sizeof(buf), &byread);
			ReadProcessMemory(hp, (PVOID)(buf + 0x82c), &buf, sizeof(buf), &byread);
			ReadProcessMemory(hp, (PVOID)(buf + 0x28), &buf, sizeof(buf), &byread);
			m_u_memory = buf;
				UpdateData(FALSE);

		break;
	}

	UpdateData(true);//更新窗口狀態至變量
	UCHAR buf[2];
	DWORD bywrite;

	HANDLE hp = GetGameProcessHanlde();
	if (hp == NULL)
	{
		::MessageBox(0, L"打開進程出錯", 0, MB_OK);
		return;
	}
	//讀取數據 




	if (m_b_cd)

	{
//禁用掉冷卻時間
		buf[0] = 0x90;
		buf[1] = 0x90;




	}
else
{
	//啓用冷卻時間
	buf[0] = 0x7e;
	buf[1] = 0x14;
}
	//把buf內的數據寫入 0x0487296
	WriteProcessMemory(hp, (LPVOID)0x0487296, buf, sizeof(buf), &bywrite);
	CloseHandle(hp);

HANDLE GetGameProcessHanlde()
{
	HWND h = ::FindWindow(NULL, L"植物大戰殭屍中文版");
	if (h == 0)
	{
		::MessageBox(0, L"遊戲未打開", 0, MB_OK);
		return NULL;
	}
	//1005194
	DWORD pid, bywrite;
	GetWindowThreadProcessId(h, &pid);
	//GetWindowThreadProcessId
	//OpenProcss
	//EnableDebugPriv();//提升進程權限 VS2008以後的版本才需要
	HANDLE hp = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
	//
	return hp;
}


6.在編輯框下添加函數

	KillTimer(1);
7.雙擊按鈕,生成按鈕按下函數
	SetTimer(1, 1000, NULL);



	HANDLE hp = GetGameProcessHanlde();
	DWORD buf = 0, byread, bywrite;
	ReadProcessMemory(hp, (PVOID)0x6a9ec0, &buf, sizeof(buf), &byread);
	ReadProcessMemory(hp, (PVOID)(buf + 0x82c), &buf, sizeof(buf), &byread);
	

	UpdateData(true);
	WriteProcessMemory(hp, (PVOID)(buf + 0x28), &m_u_memory, sizeof(buf), &byread);


附件:附h附t附tp附:附/附/do附附wnl附oad附.csdn.附net/附附deta附附附il附/附e附附xpenf/8附592附25附

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