xj123 发表于 2025-7-18 11:06:56

通过游戏学指针系列1,2集

一.准备环境一1启动文件夹WooolClient1006760中的名扬传世.exe2注册账号(若未达到18岁,可以搜索一下,注意:注册必须要姓名和身份证)3若不使用,可将文件夹重新压缩,之后使用时再解压
二.准备环境二1.准备一个过保护的或是普通的工具:ce(在以下网址下载)(1)ce工具的用处:此工具专门用来搜数据,是逆向,学习指针的好帮手2此工具如何用(1)确定一下这个游戏所在的进程(进程:每个应用程序都对应一个东东,这个东东就是进程(注意:此概念看懂即可))任务栏右键----启动任务管理器----选中进程----游戏----右键----转到详细信息----此时可以看到进程名GameClient.exe(2)ce工具如何用a.启动----选择第一个按钮----打开----选择进程名b.如何设置,核心点,数据类型(范围按无符号选)Byte:中文含义是字节,一个字节是8位,8位上0或者1,所以一个字节如果8位都是11111111,那么最大值就是255,最小值位02 bytes :1111111111111111 255*255=655354 bytes:0-42亿左右(3)例如:查找人物的血值,目前是49,那么我选择那个类型Byte 可以排除(因为血值到了20级左右大概率就有了,所以这个范围太小了)2 byte(也可以表示为word):如果游戏设计者制定了规则,人物的最大血值为60000,最大的等级为999级,那么我们就可以选择这个数据类型来存放血值4 byte(也可以表示为dword) 也可以选择存放血值











三.分析游戏人物血值1.用ce加载游戏,然后搜血值,点击firat scan(中文含义是首次扫描,意味着第一查找有哪些地址存放了人物的血值)可以看到此时有很多的地址存放的血值都与搜索的血值一样,那么我们要判断真正的血值应该存放在哪个地址呢?如图所示:
2想办法改变人物的血值,可以通过做任务让角色的血值升一升,然后再重新的输入变化的血值,然后点Next scan,这时候跳出来了的地址只有5,6个,然后现在就是需要我们观察一下有哪个地址变化了(这是一个持久性的观察)如图所示:
3. 改变以上地址中的31为310,更改以后游戏中的血值也可以更改,如下图:
四.在c或c++语言中的表示方法:分析:存放人物血量的位置(即地址)在C语言中被称为“指针”。引入C语言的指针:在C语言中声明并赋值指针的语法为:声明指针:int* p; 注:此处的“p”可以为任何变量名给指针赋值:int* j1=(int*)0x0602A7A6;在C语言中获取指针内容的语法为:int newblood=*j1;
至此,用指针查找人物血量的实验就做完了,并用C语言声明、赋值和获取数据

goople 发表于 7 天前

果断MARK,前十有我必火!

xj123 发表于 6 天前

goople 发表于 2025-7-20 09:16
果断MARK,前十有我必火!

不用谢,相互进步,可以加我们群:1044504834,一直学习进步

asmprofan 发表于 7 小时前

看了LZ的帖子,我只想说一句很好很强大!
页: [1]
查看完整版本: 通过游戏学指针系列1,2集