外挂制作之思路总结和基址与偏移量

本文介绍了制作游戏外挂的基本思路,包括找到游戏进程中的内存地址,通过基地址和偏移量进行数据读写。主要步骤包括查找进程ID、获取进程基地址、使用CE寻找内存地址、计算偏移量并修改数据。讨论了动态基址的概念,以及在动态内存管理中的作用。动态基址用于解决数据大小不确定时内存分配的问题,确保程序能够访问到不断变化的数据。
摘要由CSDN通过智能技术生成

从今天起开始学习如何做外挂了 , 很久之前了解过一点皮毛。 无非是读写游戏进程中的内存数据。
再读写内存数据之前首先要做的就是找到游戏进程中在内存中的地址。在基地址中,利用CE寻找到某一数据对应的内存地址。计算出偏移量。然后每次都可以通过内存的基地址加上偏移量找到想要的内存地址,进行读写。
那么步骤就出现了
①通过游戏界面找到游戏进程id
②通过进程id找到进程数据块,找到进程基地址
③利用CE寻找某一属性的内存地址
④计算出进程基地址和数据对应的偏移量,然后保存偏移量
⑤修改地址数据
这样就完成了外挂的制作。
待解决:
①是否能通过进程id找到进程基地址
②是否能通过进程基地址与数据偏移量计算出某属性的内存地址
经过我的摸索与网上搜集资料。 有些思路是错误的。比如说找到进程基址后找到偏移量,是不完全正确的。通过OpenProcess()获取进程对象句柄,然后用ReadProcess和write对内存地址的数据进行读写。改写的过程就是修改数据的过程。在此基础上整理可得:
①通过游戏界面找到进程ID
②通过进程ID获取进程对象句柄
③通过句柄读取属性内存地址中存放的数据
需要注意的是基址与偏移。
所有的程序都有基址.我的理解就是对于一个进程而言,需要一些结构体存放某个属性如怪兽的血量、等级。如果这个struct太大了,就需要动态分配,结构体成员都是指针,指针指向一片动态分配的内存。存放这个struct。现在我们可以知道,指针是全局的,它的地址不变,但是它的内容是变化的(因为是动态分配的),所以我们搜到的目标地址就是变化的了。但是如果我们每次都先找到指针,就能找到想要的数据地址了。
基本上其他的都是上面这种指针式的

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值