FPS方框透视辅助开发教学2:编写代码读取玩家数据-游戏安全逆向社区论坛-技术社区-学技术网

FPS方框透视辅助开发教学2:编写代码读取玩家数据

前情回顾

FPS方框透视辅助开发教学1:数据挖掘和基本绘制
https://www.52xuejishu.com/forum-post/337.html

系列完整列表

FPS方框透视辅助开发教学1:数据挖掘和基本绘制
https://www.52xuejishu.com/forum-post/337.html

FPS方框透视辅助开发教学2:编写代码读取玩家数据
https://www.52xuejishu.com/forum-post/339.html

FPS方框透视辅助开发教学3:屏幕坐标转换算法、绘制文本到敌人
https://www.52xuejishu.com/forum-post/340.html

FPS方框透视辅助开发教学4:屏幕坐标转换算法完整解析
https://www.52xuejishu.com/forum-post/345.html

FPS方框透视辅助开发教学5:绘制所有敌人射线和距离
https://www.52xuejishu.com/forum-post/347.html

FPS方框透视辅助开发教学6:实现GDI绘制方框透视(完结)
https://www.52xuejishu.com/forum-post/349.html

想学习游戏辅助开发没地方?

来这里,我们有基础版299和专业版2024

【基础版】包含4套教学,赠送价值158过检测过保护CE

B站平台可直达下单,手机访问效果最佳

https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1&page=detailuniversal_detail&saleType=10&itemsId=11262567&loadingShow=1&noTitleBar=1

包含:

学习游戏安全,加入游戏安全逆向基础版社区,现在优惠价299
游戏安全逆向:入门科普大全解
https://study.163.com/course/courseMain.htm?courseId=1212474809&share=2&shareId=1020678503
游戏安全逆向工程师:CE基础
https://study.163.com/course/courseMain.htm?courseId=1209141829&share=2&shareId=1020678503
C语言0基础入门游戏辅助开发实践
https://study.163.com/course/courseMain.htm?courseId=1213365801&share=2&shareId=1020678503
易语言0基础游戏辅助电脑脚本开发(正在更新ing)
https://study.163.com/course/courseMain.htm?courseId=1213780852&share=2&shareId=1020678503

优惠下单链接,学习游戏修改作弊、辅助脚本开发、飞天遁地透视自瞄辅助技术,您的最佳选择:
平台下单地址https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1&page=detailuniversal_detail&saleType=10&itemsId=11262567&loadingShow=1&noTitleBar=1
下单后承诺以上四套内容全部开通在网易云课堂、永久观看时效、指导答疑
下单后即赠送过网络游戏检测保护的CE游戏修改器一套(价值158)

【专业版】包含12套教学,内容更多,工具更丰富,详情联系i-xiaodi

https://mall.bilibili.com/neul-next/detailuniversal/detail.html?isMerchant=1&page=detailuniversal_detail&saleType=10&itemsId=11262678&loadingShow=1&noTitleBar=1

逻辑分析

如图所示,单独抽离一个函数用来计算测试

获取amxmodx_mm.dll模块地址和hl.exe模块地址

amxmodx_mm.dll+0x97030 == 自身人物地址

自身人物地址 + 0x230 == 第二个除自身外的敌人地址

hl.exe + 0x19E10C8 == 鼠标X

hl.exe + 0x19E10C4 == 鼠标Y

图片[1]-FPS方框透视辅助开发教学2:编写代码读取玩家数据-游戏安全逆向社区论坛-技术社区-学技术网

代码整理

void Calc()
{
	DWORD Pid = GetProcessIDByName("hl.exe");
	DWORD Moudle_amxmodx = (DWORD)GetProcessModuleHandleByName(Pid,"amxmodx_mm.dll");
	DWORD Moudle_hl = (DWORD)GetProcessModuleHandleByName(Pid, "hl.exe");
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);//游戏进程句柄

	if (Moudle_amxmodx == NULL || Moudle_hl == NULL || hProcess== NULL)
	{
		printf("[info]:初始化数据出错 Moudle_amxmodx:%p   Moudle_hl:%x   hProcess:%x\n", Moudle_amxmodx, Moudle_hl, hProcess);
		return;
	}

	Moudle_amxmodx += 0x97030;

	printf("[info]:初始化数据 Moudle_amxmodx:%p   Moudle_hl:%x   hProcess:%x\n", Moudle_amxmodx, Moudle_hl, hProcess);

	//拿到自身坐标和鼠标角度
	DWORD Address_me;
	float Angle_me_X, Angle_me_Y;
	float myX, myY, myZ;
	ReadProcessMemory(hProcess, (LPCVOID)Moudle_amxmodx, &Address_me, 4, NULL);

	while (true)
	{
		//拿自己的数据
		ReadProcessMemory(hProcess, (LPCVOID)(Moudle_hl + 0x19E10C8), &Angle_me_X, 4, NULL);
		ReadProcessMemory(hProcess, (LPCVOID)(Moudle_hl + 0x19E10C4), &Angle_me_Y, 4, NULL);
		if (Address_me > NULL)
		{
			ReadProcessMemory(hProcess, (LPCVOID)(Address_me + 0x88), &myX, 4, NULL);
			ReadProcessMemory(hProcess, (LPCVOID)(Address_me + 0x8C), &myZ, 4, NULL);
			ReadProcessMemory(hProcess, (LPCVOID)(Address_me + 0x90), &myY, 4, NULL);
			printf("[data]:address->%p\n[x:%.3f z:%.3f  y:%.3f]\nangle:(%.3f,%.3f)\n\n", Address_me, myX, myZ, myY, Angle_me_X, Angle_me_Y);
		}

		DWORD Address_enemy;
		float enemyX, enemyY, enemyZ;
		//拿第二个敌人的数据
		ReadProcessMemory(hProcess, (LPCVOID)(Moudle_amxmodx + 0x230), &Address_enemy, 4, NULL);
		if (Address_enemy > NULL)
		{
			ReadProcessMemory(hProcess, (LPCVOID)(Address_enemy + 0x88), &enemyX, 4, NULL);
			ReadProcessMemory(hProcess, (LPCVOID)(Address_enemy + 0x8C), &enemyZ, 4, NULL);
			ReadProcessMemory(hProcess, (LPCVOID)(Address_enemy + 0x90), &enemyY, 4, NULL);
			printf("\n\n[data]:address_enemy->%p\n[x:%.3f z:%.3f  y:%.3f]\n\n", Address_enemy, enemyX, enemyZ, enemyY);

		}
		Sleep(200);
		system("cls");
	}
}

图片[2]-FPS方框透视辅助开发教学2:编写代码读取玩家数据-游戏安全逆向社区论坛-技术社区-学技术网

恭喜你,至此,你已经完成了50%的工作了

剩下的工作:分析绘制算法,并进行透视绘制测试

且听下回分晓

请登录后发表评论

    没有回复内容