190514-读取基址与偏移的几种方式
基址分为固定基址,与随机基址
一般的EXE里 数据段和代码段 相关的地址是固定的
通常DLL里找到的基址都是动态的
常见的基址 形式
一、固定基址
先说固定的基址 举个例子 某个游戏的角色相关的几个地址:
0x400056 //int 血量
0x40006c //float x坐标
0x400070 //float y坐标
或者
[0x458800AC]+0x180 //血量
[0x458800AC]+0x784 //float x坐标
[0x458800AC]+0x788 //float y坐标
//如果上边的地址 在游戏 重新进入后 依然可以通过这个地址读取到正确的值 一般来说这个基址就是固定类型的
二、另一种 动态基址
如果是动态地址 一般是编译器里 随机基址:是
像这种用CE分析出来的基址 一般是这种形式
game.exe+0x780C //血量
game.exe+0x7810 //x坐标
game.exe+0x7814 //y坐标
多级指针形式例子
[game.exe+0x880C]+0x78 //int 血量
[game.exe+0x880C]+0x18c //坐标x float
[game.exe+0x880C]+0x190 //坐标y float
//接下来说说 读取基址的办法
//读取内存数据一般常见的有2种方式
方式1:跨进程读写内存,一般用 ReadProcessMemory来封装接口
int R4INT(UINT_PTR pbase)
{
int dwRet=0;
SIZE_T byReadSize=0;
int ir=ReadProcessMemory(游戏进程句柄,(PVOID)pbase,&dwRet,sizeof(UINT_PTR),&byReadSize);
return dwRet;
}
float R4F(UINT_PTR pbase)
{
float dwRet=0;
SIZE_T byReadSize=0;
int ir=ReadProcessMemory(游戏进程句柄,(PVOID)pbase,&dwRet,sizeof(UINT_PTR),&byReadSize);
return dwRet;
}
方式2: 本地进程读写内存接口,一般可以用指针 如 *(int*),或者*(float*)
例:
int R4INT(UINT_PTR pbase)
{
return *(int*)pbase;
}
float R4F(UINT_PTR pbase)
{
return *(float*)pbase;
}
//读取基址偏移例子:
game.exe+0x780C //血量 R4INT((UINT_PTR)GetModuleHandle("game.exe")+0x780C);
game.exe+0x7810 //x坐标 R4F((UINT_PTR)GetModuleHandle("game.exe")+0x7810);
game.exe+0x7814 //y坐标 R4F((UINT_PTR)GetModuleHandle("game.exe")+0x7814);
[game.exe+0x880C]+0x78 //int 血量 R4INT(R4INT((UINT_PTR)GetModuleHandle("game.exe")+0x880C)+0x78);
[game.exe+0x880C]+0x18c //坐标x float R4F(R4INT((UINT_PTR)GetModuleHandle("game.exe")+0x880C)+0x18c);
[game.exe+0x880C]+0x190 //坐标y float R4F(R4INT((UINT_PTR)GetModuleHandle("game.exe")+0x880C)+0x18c);
[0x458800AC]+0x180 //血量 R4INT(R4INT(0x458800AC)+0x180);
[0x458800AC]+0x784 //float x坐标 R4F(R4INT(0x458800AC)+0x784);
[0x458800AC]+0x788 //float y坐标 R4F(R4INT(0x458800AC)+0x788);
0x400056 //int 血量 R4INT(0x400056)
0x40006c //float x坐标 R4F(0x40006c)
0x400070 //float y坐标 R4F(0x400070)
190514-读取基址与偏移的几种方式相关推荐
- Java如何读取文件文本内容的几种方式汇总
本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java如何读取文件文本内容的几种方式汇总 - joshua317的博客 package com.joshua317;imp ...
- Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式
Spring获取ApplicationContext方式 我自己常用的方法: 读取一个文件1 //创建Spring容器 2 ApplicationContext ctx = new ClassPath ...
- SpringBoot笔记:SpringBoot2.3读取应用配置参数的几种方式
文章目录 yml格式文件 方式一:@ConfigurationProperties注解方式 方式二:@Value注解方式 方式三:Environment获取方式 测试结果 propetries格式文件 ...
- python pydicom读取dicom文件信息的几种方式
使用pydicom读取单张dicom信息 看这篇文章之前,请各位对dicom文件有一定的了解. 知道上面那张图片里面的各个栏目如group,VR代表着啥再继续往下看 现有一张dicom文件,如何读取它 ...
- 使用mvc模式读取服务器上的文件,ASP.NET MVC之读取服务器文件资源的两种方式
初次认识asp.net mvc时,以为所有文件都需要走一遍路由,然后才能在客户端显示, 所以我首先介绍这一种方式 比如说:我们在服务器上有图片: ~/resource/image/5.jpg 我们就需 ...
- springboot读取linux文件_SpringBoot读取Resource下文件的几种方式
最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传:这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方 ...
- python 读取wav 音频文件的两种方式
python 中,常用的有两种可以读取wav音频格式的方法,如下所示: 1 import scipy 2 from scipy.io import wavfile 3 4 import soundfi ...
- python读取Excel绘制饼图的两种方式
python的两种数据作图方案 matplotlib简单方便,适合数据作图或科学作图(论文发表) pyecharts流程略复杂,但功能强大,图形具有交互式,适合项目开发或商业分析报告,但是它是一个非常 ...
- poi 读取excel合并单元格两种方式
说明: excel合并是用选择的两个或更多单元格创建一个单元格的过程.合并单元格时,如果有多个选择的单元格包含数据,则将保留左上角或右上角(取决于当前的视图方向)单元格中的数据,并删除其余的所有数据. ...
最新文章
- 并发 vs 并行 (Concurrency Is Not Parallelism)
- c语言如何将浮点数转换为字节,浅谈C语言整型与浮点型转换
- 汇总|C++系统计时方法以及系统时间戳获取方法
- asp.net 1.1 web.config 讲解
- Servlet / Tomcat / Spring 之间的关系
- 多少个没收到会收敛_做多少个俯卧撑算是合格?坚持做俯卧撑,会有什么变化?...
- CentOS7 0安装Maven
- 【Android 安装包优化】Android 中使用 SVG 图片 ( SVG 矢量图简介 | Android 中生成 Vector 矢量图资源 )
- php刷新公测,2021新时代来临,Z-BlogPHP 1.7 重磅公测
- OpenCV A-KAZE匹配的实例(附完整代码)
- .NET 框架兼容性简介
- 桌面图标设计里的计算机是灰色的,小技巧教您如何将Windows 10上的桌面图标设置中的回收站为灰色!...
- Project Euler Problem 10-Summation of primes
- 基于mfc的图形学实例_前端图形学(二十)——退后!!我要开始进入3D世界了...
- 程序员面试金典——9.5字符串排列
- Pytorch模型构造方法
- 获取p12证书详情,返回证书详情实体
- 电工基础知识-配电室安全须知
- 百度飞桨AI达人创造营 | Day01:创意是如何诞生的
- JVM--GC相关记录
热门文章
- 仿京东购物界面放大镜效果
- “Windows Server 2012 R2安装VMwareTools提示“安装程序无法验证是否已安装所需的Microsoft更新KB2919355”的解决办法
- 阿里、微盟、碧桂园,抢占智慧餐饮高地
- U盘重装win10出现的异常情况
- 下过富士康工厂、做过华为外包,这位程序员是如何花 6 年逆袭成为技术大佬的?...
- 微型计算机硬件组成框图视频讲解,第1章 微型计算机的概述.ppt
- Android6.0 APN
- CA_PID描述在的表示 CAT(EMM_PID)与PMT (ECM_PID)
- 2020蓝桥杯省赛单片机2
- 身为一个程序员,如何做到自律?