当前位置: 首页 > news >正文

2.x86游戏实战-跨进程读取血量

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

本次游戏没法给

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

接下来会写C/C++代码,C/C++代码不是很难,然后为了快速掌握逆向这个技能,我不会写C/C++语言基础的教学,也不需要学,跟着下方写的代码直接抄,然后跟着文字描述理解一下代码实现的功能,就可以了,当后面抄的C/C++代码多了自然就会C/C++语言了(这样学会的C/C++会导致基础非常不扎实,如果不想浪费时间,那就等学会了逆向(逆向是思路并不是写代码,所以直接抄C/C++代码)再回头看C/C++基础)

上一个内容:1.x86游戏实战-认识CE

效果图:

首先打开Visual Studio 2022

然后选择单击下图红框,创建新项目

然后选择c++

然后选择控制台应用

然后设置项目名称、位置(意思是代码存放位置)、解决方案名

下图是为了展示项目名称与解决方案名称的区别,然后点创建

项目名称与解决方案名称的区别,解决方案这个概念它是用来概括项目的,多个项目组合起来就可以叫做一个解决方案,一个项目也可以叫解决方案,不理解也没事,不重要

项目创建好,如下图红框位置,它有一段代码,这段代码不重要

然后上一个内容中CE读取了游戏中的数据,这种操作叫做跨进程读取,那么这种操作怎么实现的?

涉及两个函数,OpenProcess 和 ReadProcessMemory

OpenProcess用来打开一个进程

ReadProcessMemory用来读取指定进程中的内存

在攻防对抗中,防的一方一般会给 OpenProcess 函数做拦截,让它返回一个无权限的句柄,后面会写如何提权 ,这句话看到这里可能不懂,看完下方的代码里写的文字就会懂了

需要的东西

Pid

测试读取的数据

代码:

然后有一个东西,鼠标单击 函数,然后按F1键

会打开函数的说明

下图的说明是中文的,也有可能是英文的,如果是英文的那就用浏览器的翻译工具进行网页翻译

然后下图红框,函数说明里会有这种[in] [out]这种东西,[in]的意思是我们给函数传递的东西,[out]的意思是给函数一个内存地址,然后函数会给这个内存地址里写东西,写的东西是什么就看看说明

// ConsoleApplication4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include "Windows.h"int main()
{/*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* buffer = (DWORD*)0x60BAA6A0;DWORD ret;/*h要读取谁的内存buffer内存地址ret内存地址的数据4读取4个字节NULL没用ReadProcessMemory(h, buffer, &ret, 4, NULL); 这一句的意思是,从h的内存中的0x60BAA6A0位置开始读取4字节,放到ret它里面,如果ret的大小没有4字节会显示有问题或程序崩溃*/ReadProcessMemory(h, buffer, &ret, 4, NULL);printf("%d", ret);
}

http://www.lryc.cn/news/385509.html

相关文章:

  • element-plus 日期选择添加确定按钮
  • Redis优化之持久化
  • ubuntu22.04 编译安装libcurl C++ library
  • js函数闭包解析
  • 查看Oracle、MySQL、PostGreSQL中的依赖关系
  • 多线程(基础)
  • BUG cn.bing.com 重定向的次数过多,无法搜索内容
  • 【数据科学】学习资源汇总(不定时更新)
  • 完美解决ValueError: column index (256) not an int in range(256)的正确解决方法,亲测有效!!!
  • # 音频处理4_傅里叶变换
  • 提升网络速度的几种有效方法
  • @PathVariable注解的使用及源码解析
  • 服务器配置重点看哪些参数
  • WSL Ubuntu 如何设置中文语言?
  • 「51媒体」政企活动媒体宣发如何做?
  • K近邻回归原理详解及Python代码示例
  • idea 开发工具properties文件中的中文不显示
  • 让DroidVNC-NG支持中文输入
  • android dialog 显示时 activity 是否会执行 onPause onStop
  • 如何在MySQL中按字符串中的数字排序
  • memcacheredis构建缓存服务器
  • Linux基础- 使用 Apache 服务部署静态网站
  • 接口自动化测试框架实战(Pytest+Allure+Excel)
  • 如何预防和处理他人盗用IP地址?
  • 【ai】李沐 动手深度学学v2 环境安装:anaconda3、pycharm、d2
  • 前后端分离对软件行业及架构设计的影响
  • 深入解析Dubbo架构层次
  • 关于GPIO的上拉、下拉,无上下拉
  • Python 语法基础二
  • HTML5与HTML:不仅仅是标签的革新