一.准备环境一
1启动文件夹WooolClient1006760中的名扬传世.exe,在以下网址下载:
http://www.shou8shou.cn
2注册账号(若未达到18岁,可以搜索一下,注意:注册必须要姓名和身份证)
3若不使用,可将文件夹重新压缩,之后使用时再解压 二.准备环境二
1.准备一个过保护的或是普通的工具:
ce(在以下网址下载:http://www.shou8shou.cn)
(1)ce工具的用处:此工具专门用来搜数据,是逆向,学习指针的好帮手
2此工具如何用
(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个,然后现在就是需要我们观察一下有哪个地址变化了(这是一个持久性的观察)
如图所示:
3.改变以上地址中的31为310,更改以后游戏中的血值也可以更改,如下图:
四.在c或c++语言中的表示方法:
分析:存放人物血量的位置(即地址)在C语言中被称为“指针”。
引入C语言的指针:
在C语言中声明并赋值指针的语法为:
声明指针:int* p; 注:此处的“p”可以为任何变量名
给指针赋值:int* j1=(int)0x0602A7A6;
在C语言中获取指针内容的语法为:
int newblood=j1; 至此,用指针查找人物血量的实验就做完了,并用C语言声明、赋值和获取数据 本文章根据手把手项目开发 - 一站式开发项目培训平台中的视频教程整理而成,以下是我的QQ:1405086479,有意向一起交流技术的可以加我。
|