7.x86游戏实战-C++实现跨进程读写-跨进程写内存

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

上一个内容:6.x86游戏实战-C++实现跨进程读写-通过基址读取人物状态标志位

上一个内容通过基址得到了人物状态标志,这种操作属于读取,既然有读取那就有写入,所以本次来搞写入,本次通过找坐标改坐标实现瞬移来学习跨进程写数据。

这里有一件事,代码(c/c++代码)中用的那些函数(函数也叫api)怎么知道的?怎么就知道它能这样用?怎么知道有这种东西?

比如之前的 OpenProcess函数、ReadProcessMemory函数,怎么知道的这俩函数?

这都是老师讲的,逆向会常用OpenProcess、ReadProcessMemory这两个函数(当然不止这俩),这俩函数是Windows系统提供,自己找是真找不到,写这些字是为了那些钻牛角尖的,不要再钻了,我代码里写什么就学什么,否则其它的函数你就算知道了,也可能不知道怎么玩,纯浪废时间

Spy++

使用OpenProcess函数时要写一个pid,这个pid游戏重启、操作系统重启都会发送改变,每次都要找它的pid,有一个函数可以获取pid,这个函数需要Spy++里的一点东西,如下图打开Spy++

使用

找坐标

首先打开CE并附加游戏,游戏中小地图附近会有坐标信息(有些游戏没有,后面会写没有的怎么办)

如上图坐标现在是240,143,界面上显示的是整数,但它实际上是小数,很少有游戏坐标数据用整数,然后,如下图使用单浮点类型(为什么用单浮点?因为经验,也有的游戏会用双浮点,如果不知道用单浮点还是双浮点那就这俩都试一试,试完就知道用哪个了(错误的会找不到想要的数据),优先使用单浮点),来扫描内存,然后扫描类型是值介于...两者之间,游戏中坐标在窗口中看到的是100,它实际上可能是101、106、96这样的(所以这种找法不好,后面会有其它方式找坐标,只能做入门来用)

然后首次扫描,找到14511个数据

然后移动角色更改坐标

再次扫描,然后就剩下18个

然后把这些全部添加到下方列表中

然后再选中一半,然后鼠标放到选中的数据上如下图右击选择数值,把数据修改一下,如果把坐标修改了游戏中会有反应

把数据修改为50,然后游戏中没有反应,这说明坐标数据并不在这些数据中

然后选择剩下的数据做上方的操作

修改成60之后游戏有了反应(会瞬移)

然后现在还是有很多数据,具体哪个是坐标还不知道,然后先把这些改了没反应的给删除

然后再选一半改数据,这里改之前移动一下角色,让它恢复一下坐标(网络游戏本地改坐标没用,移动一下(发送数据包)就会恢复)

最终发现了两个,一个是人物头顶名字的坐标,一个是人物坐标

找到坐标之后使用c++代码对它们做出修改

代码:

// ConsoleApplication4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include "Windows.h"int main()
{/*FindWindowA函数通过窗口类和标题获取窗口句柄""是从Spy++中类里复制来的NULL表示啥也没有*/HWND hwd = FindWindowA("", NULL);DWORD pid;// 根据窗口句柄获取进程pid,pid也就是线程idGetWindowThreadProcessId(hwd, &pid);HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);DWORD* address = (DWORD*)0x457A555C;float ret = 60;/*h进程句柄address要修改的内存地址,或者说修改什么内存地址里存放的值ret意思是把address(457A555C)地址的值修改成ret的值NULL不重要*/WriteProcessMemory(h, address, &ret, 4, NULL);address = (DWORD*)0x457A5544;ret = 60;WriteProcessMemory(h, address, &ret, 4, NULL);//跨进程读内存();
}void 跨进程读内存() {/*PROCESS_ALL_ACCESS表示全部权限FALSE表示不继承,这个一般用不到,不用了解14384进程的Pid,详情看文章中的图h是进程句柄,句柄是用来代表一个进程的数字,由操作系统提供HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 14384); 这一句的意思是获取14384进程的所有权限,并把句柄放到h中
*/
//HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 14384);
/*DWORD* 的意思是,* 表示当前的数据认定成内存地址,DWORD是4字节数字DWORD* 的意思是把xxx认定成内存地址,内存地址里的值是一个4字节数字(DWORD*)0xA107BC也就是把0xA107BC它当做内存地址来看待,0xA107BC内存地址里的值是一个4字节数字
*/
//DWORD* buffer = (DWORD*)0xA107BC;
//DWORD ret;
/*h要读取谁的内存buffer内存地址ret内存地址的数据4读取4个字节NULL没用&是取地址的意思,&ret的意思就是ret的内存地址ReadProcessMemory(h, buffer, &ret, 4, NULL); 这一句的意思是,从h的内存中的0x60BAA6A0位置开始读取4字节,放到ret它里面,如果ret的大小没有4字节会显示有问题或程序崩溃
*/
//ReadProcessMemory(h, buffer, &ret, 4, NULL);
//printf("%d", ret);HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 15052);DWORD* buffer = (DWORD*)0xA107BC;DWORD ret;ReadProcessMemory(h, buffer, &ret, 4, NULL);//printf("%d", ret);buffer = (DWORD*)(ret + 0x60);ReadProcessMemory(h, buffer, &ret, 4, NULL);buffer = (DWORD*)(ret + 0x14c);ReadProcessMemory(h, buffer, &ret, 4, NULL);printf("人物状态标志:%d\n", ret);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深层神经网络

深层神经网络 深层神经网络 深度神经网络&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;可以理解为有很多隐藏层的神经网络&#xff0c;又被称为深度前馈网络&#xff08;DFN&#xff09;&#xff0c;多层感知机&#xff08;Multi-Layer perceptron&#xff0c…

ghost恢复?电脑文件恢复如何操作?电脑数据恢复工具!5款!

在数字化时代&#xff0c;电脑数据的价值日益凸显。然而&#xff0c;数据丢失、误删、系统崩溃等问题时有发生&#xff0c;给个人和企业带来巨大损失。本文将为您详细介绍Ghost恢复方法&#xff0c;同时推荐五款高效的电脑数据恢复工具&#xff0c;助您轻松应对数据丢失的困扰。…

使用归档实用工具怎么打不开 mac上好用的解压软件 归档实用工具打不开怎么回事 mac 归档实用工具 苹果电脑好用的压缩软件有哪些

Mac系统自带的 “归档实用工具”&#xff0c;集成在系统右键菜单中&#xff0c;包含了文件压缩和压缩包解压功能。很多mac小伙伴会发现有些文件使用归档实用工具打不开。由于专利和软件开源问题&#xff0c;该工具目前仅支持ZIP格式的压缩和解压。同时&#xff0c;对于一些在Wi…

深入探讨数据结构:基础理论与应用实践

前言 数据结构是计算机科学的重要组成部分&#xff0c;是编程与算法设计的基础。本文将系统地介绍数据结构的基础概念、常见类型、具体实现及其在实际开发中的应用&#xff0c;帮助读者深入理解这一核心领域。 一、数据结构的基本概念 数据结构指的是计算机中数据的组织、管…

推广旅游卡项目,一个月创收十几万,为何说旅游卡项目堪称盈利利器?

推广旅游卡项目&#xff0c;一月个创收十几万&#xff0c;为何说旅游卡项目堪称盈利利器&#xff1f; 其精髓恰在于那十六字真言&#xff1a;即时收益&#xff0c;高额利润&#xff0c;操作简便&#xff0c;粉丝友好。接下来&#xff0c;我将从推广人员的视角&#xff0c;为您…

Microsoft SQL Server 2019安装和设置用户密码

1、免费下载两个安装包 SQL2019-SSEI-Dev 地址:https://www.microsoft.com/en-us/sql-server/sql-server-downloads SSMS-Setup-CHS 地址:https://aka.ms/ssmsfullsetup 安装具体不在阐述了&#xff0c;可以参考我这篇文章&#xff1a;SQL Server 2019安装详细教程 2、以W…

开发常见的http状态码.——400,401,403,404,500,501,503,状态码大全!

目录 一. 1开头的(临时信息响应码) 二. 2开头的(成功信息码) 三. 3开头的(重定向信息码) 四. 4开头的(客户端错误信息码) 五. 5开头的(服务器内部错误信息码) 一. 1开头的(临时信息响应码) 100&#xff1a;继续请求。示意请求者应当继续发送请求&#xff0c;客户端返回此码…

Cookie的默认存储路径以及后端如何设置

问题场景 最近在写一个前后端分离的项目&#xff0c;需要跨域&#xff0c;前端开发同学遇到一个问题一直报错&#xff0c;本质上就是后端返回的cookie中的sessionID在前端发送http请求时无法被请求自动携带&#xff0c;每次htttpRequest都被后端识别为一个新的session&#xf…

Spring MVC数据绑定和响应——数据回写(二)JSON数据的回写

项目中已经导入了Jackson依赖&#xff0c;可以先调用Jackson的JSON转换的相关方法&#xff0c;将对象或集合转换成JSON数据&#xff0c;然后通过HttpServletResponse将JSON数据写入到输出流中完成回写&#xff0c;具体步骤如下。 1、修改文件DataController.java&#xff0c;在…

verilog 参数用法

参数比较运算 localparam QPLL_FBDIV_IN (QPLL_FBDIV_TOP 16) ? 10b0000100000 : (QPLL_FBDIV_TOP 20) ? 10b0000110000 :(QPLL_FBDIV_TOP 32) ? 10b0001100000 :(QPLL_FBDIV_TOP 40) ? 10b0010000000 :(QPLL_FBDIV_TOP 64) ? 10b0011100000 :(QPLL_FBDIV_TO…

昇思25天学习打卡营第04天 | 数据集 Dataset

昇思25天学习打卡营第04天 | 数据集 Dataset 文章目录 昇思25天学习打卡营第04天 | 数据集 Dataset数据集加载数据集迭代数据集的变换shufflemapbatch 自定义数据集可随机访问数据集对象可迭代数据集生成器 总结打卡 数据集Dataset对原始数据进行封装、变换&#xff0c;为神经网…

Linux 静态库 和 动态库

在Linux系统上&#xff0c;库文件用于共享和重用代码。根据使用方式和链接方式的不同&#xff0c;库文件可以分为静态库和动态库。 静态库&#xff08;Static Library&#xff09; 静态库是在编译时被嵌入到最终可执行文件中的库。静态库的扩展名通常是.a。 特点 独立性&am…

ADOP带你了解:SFP 光模块:构建高速网络的关键技术

在数字化时代&#xff0c;企业运营的效率往往取决于数据传输的速度。因此&#xff0c;构建一个可靠的网络基础架构至关重要。本指南深入探讨了小型可插拔&#xff08;SFP&#xff09;光收发器的关键作用&#xff0c;这些设备确保了网络中数据的高效和安全流动。SFP光收发器的设…

【Rust入门教程】hello world程序

文章目录 前言Hello World程序运行总结 前言 对于学习任何一种新的编程语言&#xff0c;我们都会从编写一个简单的Hello World程序开始。这是一个传统&#xff0c;也是一个开始。在这篇文章中&#xff0c;我们将一起学习如何在Rust中编写你的第一个程序&#xff1a;Hello Worl…

【C语言内存函数】

目录 1.memcpy 使用 模拟实现 2.memmove 使用 模拟实现 3.memset 使用 4.memcmp 使用 1.memcpy 使用 void * memcpy ( void * destination, const void * source, size_t num );目的地址 源地址 字节数 destination&#xff1a;指向要复制内…

20240703 每日AI必读资讯

&#x1f916;爆火Character AI惨遭阉割 美国00后集体“失恋” - Character AI曾是00后最火爆的社交软件&#xff0c;但用户发现对话模型变得冷淡&#xff0c;失去趣味。 - 用户流失严重&#xff0c;面临成本高、竞争激烈的挑战&#xff0c;甚至遭到挖角。 - 尽管困难重重&a…

淘宝API接口开发系列:淘宝订单详情API接口与物流电子面单API接口概述

淘宝订单详情API接口与物流电子面单API接口概述 在电子商务领域&#xff0c;API&#xff08;应用程序接口&#xff09;扮演着至关重要的角色&#xff0c;它们使得不同的系统能够相互通信&#xff0c;实现数据的共享和交换。淘宝作为国内最大的电商平台之一&#xff0c;其提供的…

C# 多线程造成CPU占用率高

当线程多的时候就会造成CPU内存占用率过高 private void button1_Click(object sender, EventArgs e){Thread TH1, TH2, TH3, TH4, TH5;TH1 new Thread(Thread1){IsBackground true};TH2 new Thread(Thread2){IsBackground true};TH3 new Thread(Thread3){IsBackground t…

最小步数模型——AcWing 1107. 魔板

最小步数模型 定义 最小步数模型通常是指在某种约束条件下&#xff0c;寻找从初始状态到目标状态所需的最少操作或移动次数的问题。这类问题广泛存在于算法、图论、动态规划、组合优化等领域。具体来说&#xff0c;它涉及确定一个序列或路径&#xff0c;使得按照特定规则执行…

jenkins在使用pipeline时,为何没有方块形视图

项目场景&#xff1a; 安装完Jenkins时后&#xff0c;通过pipeline创建的项目任务。 问题描述 在立即构建后&#xff0c;没有显示每个阶段的视图。 原因分析&#xff1a; 原因是&#xff0c;刚安装的Jenkins&#xff0c;这个视图不是Jenkins自带的功能&#xff0c;而必须安装…