本帖最后由 xj123 于 2025-7-4 10:45 编辑
我们主要做什么?
1.会员学习 + 免费资源: 我们是一个学编程的“一站式”平台。想深入系统学,可以交学费成为VIP会员,跟着老师学。
同时,我们也免费分享超多视频教程、学习资料和项目源代码,让大家都能受益。
2.干货分享,助你成长: 我们平台会经常免费放出好东西!比如原创技术文章、各种教程、还有特别好用(重磅)的源代码和普通代码、各种工具软件。
我们在B站已经发了超过155个免费视频教程,吸引了好多同学关注,人数还在不断增加。
3.实战教学,快速提升: 我们最看重边学边动手练,这样才能真正学会核心本领。
对于逆向而言,课程里带大家做真实的商业级别项目,让你不仅能积累项目经验,还能独立开发软件赚钱。
对于开发而言,课程里带大家做真实的企业项目,让你不仅能积累项目经验,还能提前熟悉公司里实际的工作流程。这样学下来,就算是零基础开始的同学,
学完后也能达到有2-3年工作经验的水平!
标题:用游戏理解指针 目标:查找某游戏的当前血值和最大血值 操作过程:(每一步必须详细,要用截图的方式+文字表达的表达方式)
1.创建角色: 2.进入游戏后图片: 3.使用快捷键Ctrl+Shift+ESC打开“任务管理器”,点击此游戏的进程并右键,点击“转到详细信息”,即可看到进程名(如图),右键点击“属性”,查看一下游戏的进程名,即图4的“GameClient.exe”  (1)打开ce进程 ①打开ce工具并点击第一个按钮,如图1 ② 选择包含游戏的进程名,即包含“GameClient.exe”的进程即可,并点击Open(打开),如图2所示 
(2)设置ce ①先选择“2Bytes”来查询人物血量,如果不能查到就改为“4Bytes”,如图1。注释:“2Bytes”的意思为2字节,可容纳65535个bit位,人物血量可能在0~65535这个区间内,故选“2Bytes”作为查询区间。 ②在游戏中查看人物血量,如图2中的血量为23,即在“Value”对话框中输入“23”,则会输出所有关于“23”的信息,如图3 分析:此时看到有若干个关于23的信息,至此不知道哪个地址是我所创建的人物的血值的存放地址。因此需要改变一下人物的血值,如:做任务或者打怪升级等等。在这里我完成了一个任务后血值发生的变化,血值变为了27。 ③再把新的血值输入到Value对话框,点击“Next Scan”(此键大意为“下一次扫描”)即为在第一次扫描的结果上进行再一次扫描。结果如下图所示:
分析:此时还有7个地址为相同的数值,所以需要多次改变血值才能找到真正存放血值的地址。故重复上一步操作即可。 ④测试可能为血值的地址:双击你认为可能为血值的地址,即可在下面显示,如下图框选部分内容
⑤修改当前血值和最大血值,观察游戏界面,如果有变化即找到的血值的真正位置。操作:双击这两项的数值,即可更改。 
⑥如图,更改了上面的数值,人物的最大血值变成了相对应的数,所以上面的地址(0F4377AE)是人物的血量上限。
⑦如图,更改了下面的数值,人物的当前血值变成了相对应的数,所以下面的地址(0F4377A6)是人物的当前血量。
补充内容:根据以上步骤操作后,现在当前血量的地址为0602A7A6,血量上限的地址为0602A7AE,下图是改变了数据的描述。
分析:存放人物血量的位置(即地址)在C语言中被称为“指针”。 引入C语言的指针: 在C语言中定义并赋值指针的语法为: 定义指针:int* p; 注:此处的“p”可以为任何变量名 给指针赋值:int* j1=(int*)0602A7A6; 在C语言中获取指针内容的语法为: int newblood=*j1;
至此,用指针查找人物血量的实验就做完了,并用C语言声明、赋值和获取数据
本文章根据手把手项目开发 - 一站式开发项目培训平台中的视频教程整理而成,以下是我的QQ:1405086479,有意向一起交流技术或者有意向学开发技术的可以联系。
|