怎么用ce查找单机游戏的物品代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用ce查找单机游戏的物品代码相关的知识,希望对你有一定的参考价值。
只要增减所持物品数量进行搜索轻松搜索到。然后点击对应地址,查看内存,向前4位左右一般就是物品代码。
主要信息:
在过去,欧共体国家对进口和销售的产品要求各异,根据一国标准制造的商品到别国极可能不能上市,作为消除贸易壁垒之努力的一部分,CE认证应运而生。因此,CE认证代表欧洲统一(CONFORMITE EUROPEENNE)。
事实上,CE认证还是欧共体许多国家语种中的"欧共体"这一词组的缩写,原来用英语词组EUROPEAN COMMUNITY缩写为EC,后因欧共体在法文是COMMUNAUTE EUROPEENNE,意大利文为COMUNITA EUROPEA。
葡萄牙文为COMUNIDADE EUROPEIA,西班牙文为COMUNIDADE EUROPE等,故改EC为CE。当然,也不妨把CE认证视为CONFORMITY WITH EUROPEAN。
CE认证标志并非由任何官方当局、认证机构或测试试验室核发,而应由制造商或其代理商根据上述八种模式中的一种(或混合),自行制作和加贴。部分欧盟官方规定的产品,需在获得欧盟官方机构(公告号机构)颁发的带有公告号的CE证书后,方可加贴CE标志。
参考技术A 一般来说,搜索物品数量。这个很简单吧,不加密的游戏只要增减所持物品数量进行搜索轻松搜索到。然后点击对应地址,查看内存,向前4位左右一般就是物品代码。。偶尔程序差距,所以向前的位数略有改变。。总之尝试就行了。Cheat Engine(CE)教程
目录
前言
CE有个自带的教程,包括精确扫描、未知初始值、浮点数、代码查找、指针、代码注入、多级指针、共享代码,本篇记录下
一、简介
Cheat Engine ,简称CE,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:
- 内存扫描
- 十六进制编辑器
- 调试工具
- 可以进行反汇编调试、断点跟踪、代码注入等诸多高级功能
- 支持 lua 语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua 插件,使游戏进程与 CE 进程进行交互。 CE 的大部分功能都可以通过 lua 来操作
- 它还支持 D3D Hook 功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试
- 自带变速功能,通过 Hook 游戏相关函数改变游戏速度
- 自带了一个 Trainer 的功能,可以将自己在 CE 中实现的功能单独生成一个 exe 文件,并可以使用 lua 创建比默认样式更加复杂的窗体或功能
下载:建议到吾爱破解下
二、教程
开始教程
打开进程
1、精确值扫描
简单流程:
- 精确扫描100
- “打我”
- 精确扫描新的数值
- 重复直到只有一个地址并修改值为1000
2、未知初始值
流程:
- 未知搜索
- “打我”
- “减少的数值”
- 重复直到只有一个地址并修改值为5000
3、浮点数
流程:类似精确值扫描,改为浮点数即可
4、代码查找
流程:
- 用上面的办法找到地址
- 右键“找出是什么改写了这个地址”
- 指令改为空
替换为空即可
5、指针
流程:
- 找到地址
- 查看“是什么改写了地址”
- 查看“详细信息”
- 搜索指针地址并修改值为5000
6、代码注入
流程:
- 找到地址
- 找到代码
- 反汇编
- 根据要求修改
几个解释
alloc(newmem,2048) // 申请 2048 字节的内存,newmem 就是这个内存地址
label(returnhere) // 定义用于跳转的标签 returnhere
label(originalcode) // 定义用于跳转的标签 originalcode
label(exit) // 定义用于跳转的标签 exit
修改如下:
7、多级指针
流程:
- 找到地址
- 找到指针
- 不断找指针
- 修改值
注意这里有个偏移量18
然后“是什么访问了地址”
这里提示的地址和上一次提示的地址是一样的
研究下:
mov esi,[esi]
这条指令访问了这个地址- 那么
[esi]
原来是啥?原来的esi
不就是这个我们监视的地址
找到基址了!!
此时,真正的内存地址是
[[[["Tutorial-i386.exe"+2566E0]+0C]+14]+00]+18
到此即可
其实CE自身是有搜索指针的功能的,就不用上面这样一步一步来
8、共享代码
流程:
- 找出4个血量地址
- 查找代码
- 区分敌我
- 修改代码
浏览内存
发现有个队伍编号1和2
区分出敌我,那就简单了
进行代码注入
分析:
- 原始代码是
mov [ebx+04],eax
,意思就是,血量处于ebx+04
的位置 - 再看 Dave 的血量地址和队伍编号地址,两者做个差值(16进制减法,可以用计算器算),应该是
0C
,如果血量是ebx+04
,那么队伍编号就应该是ebx+04+0C
就是ebx+10
了 - 我们需要在运行原来代码之前判断一下 [ebx+10] 是否等于 1
修改如下:
完结撒花!
结语
学会使用CE的基本功能
以上是关于怎么用ce查找单机游戏的物品代码的主要内容,如果未能解决你的问题,请参考以下文章
Windows 逆向OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看 05869544 地址数据 | 仅做参考 )(代码
Windows 逆向使用 CE 分析内存地址 ( 运行游戏 | 使用 CE 工具分析游戏内子弹数量对应的内存地址 | 内存地址初步查找 | 使用二分法定位最终的内存地址 )