游戏生化危机4老版本 修改器C++代码最新(游戏名字是biohazard 4)

游戏生化危机4老版本 修改器C++代码最新(游戏名字是biohazard 4)

程序运行展示结果

在这里插入图片描述
在这里插入图片描述

使用CE获取数据基本地址

这里不做过多介绍,网上很多教程

导入到C++ 控制台获取修改游戏血条、金币、子弹

代码如下(原创代码)


#include <iostream>
#include <string>
#include <Windows.h>
#include <Psapi.h>

using namespace std;

class CSHWJ
{
private:
	DWORD_PTR base_address = 0x00400000;
	HANDLE hd;
public:
	CSHWJ() {
	}

	bool findgame()
	{
		HWND hw = FindWindowA(0, "biohazard 4");
		DWORD id;
		if (hw == 0)return false;
		GetWindowThreadProcessId(hw, &id);
		hd = OpenProcess(PROCESS_ALL_ACCESS, false, id);
		if (hd == 0)return false;
		return true;
	}

	bool zidan_get(WORD *num)
	{
		bool ool;
		DWORD Addr = base_address + 0x2FE2C4C;
		WORD ret;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(DWORD), 0);
		if (!ool) { return false; }
		Addr += 0x8;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &ret, sizeof(WORD), 0);
		if (!ool) { return false; }
		(*num) = ret / 8;

		return true;
	}

	bool zidan_set(WORD *num)
	{
		bool ool;

		if (*num > 500)
		{
			*num = -1;
			return true;
		}
		if (*num < 0)
		{
			*num = -1;
			return true;
		}

		*num = (*num) * 8;

		DWORD Addr = base_address + 0x2FE2C4C;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(DWORD), 0);
		if (!ool) { return false; }
		Addr += 0x8;
		ool = WriteProcessMemory(hd, (LPVOID)Addr, num, sizeof(WORD), 0);
		if (!ool) { return true; }

		return true;
	}

	///

	bool jinbi_get(DWORD *num)
	{
		bool ool;
		DWORD Addr = base_address + 0x2FE8E70;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(DWORD), 0);
		if (!ool) { return false; }

		*num = Addr;

		return true;
	}

	bool jinbi_set(DWORD *num)
	{
		bool ool;

		if (*num > 20000000)
		{
			*num = -1;
			return true;
		}
		if (*num <0)
		{
			*num = -1;
			return true;
		}

		DWORD Addr = base_address + 0x2FE8E70;


		ool = WriteProcessMemory(hd, (LPVOID)Addr, num, sizeof(DWORD), 0);
		if (!ool) { return false; }

		return true;
	}

	
	//xuetiao MAX 0x950
	bool xuetiao_get(WORD *num)
	{
		bool ool;
		DWORD Addr = base_address + 0x2FE8E7A;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(WORD), 0);
		if (!ool) { return false; }

		*num = Addr;

		return true;
	}

	bool xuetiao_set(WORD *num)
	{
		bool ool;

		if (*num > 0x950)
		{
			*num = -1;
			return true;
		}
		if (*num <0x10)
		{
			*num = -1;
			return true;
		}

		DWORD Addr = base_address + 0x2FE8E7A;

		ool = WriteProcessMemory(hd, (LPVOID)Addr, num, sizeof(WORD), 0);
		if (!ool) { return false; }

		return true;
	}



	bool xuetiao2_get(WORD *num)
	{
		bool ool;
		DWORD Addr = base_address + 0x61E658;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(DWORD), 0);
		if (!ool) { return false; }

		Addr += 0x5f8e;
		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(WORD), 0);
		if (!ool) { return false; }

		*num = Addr;

		return true;
	}

	bool xuetiao2_set(WORD *num)
	{
		bool ool;

		if (*num > 0x950)
		{
			*num = -1;
			return true;
		}
		if (*num <0x10)
		{
			*num = -1;
			return true;
		}

		DWORD Addr = base_address + 0x61E658;

		ool = ReadProcessMemory(hd, (LPCVOID)Addr, &Addr, sizeof(DWORD), 0);
		if (!ool) { return false; }

		Addr += 0x5f8e;

		ool = WriteProcessMemory(hd, (LPVOID)Addr, num, sizeof(WORD), 0);
		if (!ool) { return false; }

		return true;
	}
};



int main()
{
	CSHWJ game;
	
	WORD zidan_num = 0;
	DWORD jinbi_num = 0;
	WORD xuetiao_num = 0, xuetiao2_num = 0;

	float xuetiao_f, xuetiao2_f;
	char str[50] = { 0 };
	bool tf = true;
	system("mode con: cols=90 lines=1");
	system("color 1F");
	system("title gameshow");
	while (true)
	{
		tf = game.jinbi_get(&jinbi_num);
		tf = game.xuetiao_get(&xuetiao_num);
		tf = game.xuetiao2_get(&xuetiao2_num);
		tf = game.zidan_get(&zidan_num);
		
		xuetiao_f = xuetiao_num;
		xuetiao2_f = xuetiao2_num;
		str[0] = 0;
		if (!tf) {
			system("cls");
			strcpy(str, ".游戏没有运行");
			jinbi_num = 0, xuetiao_num = 0, zidan_num = 0;
			game.findgame();
		}

		if (str[0] != 0) {
			printf("%s\r",str);
		} else {
			system("cls");
			printf("| 金币:%d, 男主角血条余:%.03f%,女主角血条:%.03f%, 当前子弹: %d | me:talk...",
				jinbi_num, (xuetiao_f/0x950)*100, (xuetiao2_f / 0x4B0) * 100, zidan_num);
			zidan_num = 0xFF;
			xuetiao_num = 0x950;
			xuetiao2_num = 0x4B0;
			jinbi_num = 99999;
			game.jinbi_set(&jinbi_num);
			game.zidan_set(&zidan_num);
			game.xuetiao_set(&xuetiao_num);
			game.xuetiao2_set(&xuetiao2_num);
		}

		Sleep(100);
	}
	getchar();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值