一.准备环境一 1启动文件夹WooolClient1006760中的名扬传世.exe,在以下网址下载: http://www.shou8shou.cn 2注册账号(若未达到18岁,可以搜索一下,注意:注册必须要姓名和身份证) 3若不使用,可将文件夹重新压缩,之后使用时再解压 二.准备环境二 1.准备一个过保护的或是普通的工具: ce(在以下网址下载:http://www.shou8shou.cn) (1)ce工具的用处:此工具专门用来搜数据,是逆向,学习指针的好帮手 2此工具如何用 [size=12.0000pt](1)确定一下这个游戏所在的进程(进程:每个应用程序都对应一个东东,这个东东就是进程(注意:此概念看懂即可)) 任务栏右键----启动任务管理器----选中进程----游戏----右键----转到详细信息----此时可以看到进程名GameClient.exe (2)ce工具如何用 a.启动----选择第一个按钮
----打开----选择进程名b.如何设置,核心点,数据类型(范围按无符号选) Byte:中文含义是字节,一个字节是8位,8位上0或者1,所以一个字节如果8位都是11111111,那么最大值就是255,最小值位0 2 bytes :1111111111111111 255*255=65535 4 bytes:0-42亿左右 (3)例如:查找人物的血值,目前是49,那么我选择那个类型 Byte 可以排除(因为血值到了20级左右大概率就有了,所以这个范围太小了) 2 byte(也可以表示为word):如果游戏设计者制定了规则,人物的最大血值为60000,最大的等级为999级,那么我们就可以选择这个数据类型来存放血值 4 byte(也可以表示为dword) 也可以选择存放血值
三.分析游戏人物血值 1.用ce加载游戏,然后搜血值,点击firat scan(中文含义是首次扫描,意味着第一查找有哪些地址存放了人物的血值)可以看到此时有很多的地址存放的血值都与搜索的血值一样,那么我们要判断真正的血值应该存放在哪个地址呢? 如图所示: 2想办法改变人物的血值,可以通过做任务让角色的血值升一升,然后再重新的输入变化的血值,然后点Next scan,这时候跳出来了的地址只有5,6个,然后现在就是需要我们观察一下有哪个地址变化了(这是一个持久性的观察) 如图所示: [size=12.0000pt]3. 改变以上地址中的31为310,更改以后游戏中的血值也可以更改,如下图: 四.在c或c++语言中的表示方法: 分析:存放人物血量的位置(即地址)在C语言中被称为“指针”。 引入C语言的指针: 在C语言中声明并赋值指针的语法为: 声明指针:int* p; 注:此处的“p”可以为任何变量名 给指针赋值:int* j1=(int*)0x0602A7A6; 在C语言中获取指针内容的语法为: int newblood=*j1; 至此,用指针查找人物血量的实验就做完了,并用C语言声明、赋值和获取数据
|