12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 550|回复: 0

利用CheatEngine工具Ultimap功能对抗游戏数据加密以及拓展

[复制链接]
发表于 2019-8-19 11:03:34 | 显示全部楼层 |阅读模式
前言:


昨天有个网友问我,游戏加密了咋办,我当时就震精了。加密了?干他啊!安排,必须安排!那么今天就给大家分享几个游戏数据加密的逆向方法!





步入主题:这款游戏叫做战地X盟,是一款小型FPS网络射击游戏,别看游戏小,“麻雀虽小,五脏俱全”,这个游戏也不例外,各种数据都不能让你好好逆向。

第一步,上游戏,我们拿游戏人物的子弹数量开刀,话说,大家都是这么开刀的吧,那我也开刀了:

[七颗子弹搜索七]:



还不错,有数据,那我们继续干:

[五颗子弹搜索五]:



甚好甚好,还有数据,那我们继续筛选:

[四颗子弹搜素四]:



这...有点难为人啊,于是乎,我就把所有的数据类型都试验了一个遍,依然没有数据:




搞到这里,我们必须要意识到一个问题,那就是:这个游戏数据真的被加密了!那么我们现在不妨讲一下游戏的数据加密吧:

游戏数据加密:顾名思义,就是游戏的数据被加密了呗,你还想让我咋解释...整那些乱七八糟的名词真的没必要,搞的大家都听不懂



游戏加密的后果:还能有啥后果,后果就是让你逆向不出来呗,还能咋地...




那么对抗的方法呢,来了,老弟~:

对抗方法①之闷头撞墙法:什么意思呢,游戏数据加密,我们首先要猜测子弹数量数量是不是把数据类型改掉了,比如按照常理应该是整数型,结果这个程序员脑袋一机灵改成了浮点型也是有可能的,然后我们就挨个的切换数据类型扫描减少增加,这个方法我试过了,脑门都起了好几个大包了,没找到,所以果断放弃,会出人命的!





对抗方法②之佛系未知法:意思就是我们先扫描未知的初始值,然后开枪,搜索变动,不开枪搜索未变动,听不懂是吧,来我们演示下:

[先搜索未知的初始值]:






[开枪搜索变动,不开枪搜索不变动]:



然后,最后还真的找到几个跟随子弹数量变动的地址:




但是只要你修改或者锁定就知道都是没有效果的,甚至还会崩溃,而且我们还不知道哪个是关键的数据,这就很头痛了...




加密就意味着,子弹数量的数据每次开枪变动都遵循着加密的算法,可能被放大或者缩小,或者遵循着某个算法而变大或缩小

那么问题就来了,我们怎么解决呢?其实按照上面找出的地址也是可以逆向的,但是太繁琐了,我们不如找点简单的方法,那就是Ultimap!

先来讲讲这是个什么东西:

说白了,这就是个代码执行过滤的工具,可以通过该工具找到某个时刻执行或者没执行的代码,于是乎,我们就可以找到开枪攻击的关键代码或者Call

那么,怎么开启这个工具呢?第一点,加载DBVM,唉,等等,怎么又多出来一个DBVM,这又是个什么东西?

开讲了,开讲了!什么是DBVM!

官方解释:https://www.cheatengine.org/aboutdbvm.php

DBVM是一个虚拟机,它将运行您的操作系统并扩展指令集以允许用户模式应用程序访问kernelmode。它允许程序将系统事件流重定向到不同的位置并更改其结果。(例如,在不编辑中断表的情况下将中断重定向到不同的中断处理程序)

Cheat Engine可以利用这些添加的指令来简化游戏修改和调试。特别是在Vista 64中。要使用它,只需使用DBVM启动,然后启动操作系统,通常是Windows,Cheat Engine将自动检测DBVM是否已加载并使用添加的功能。

安全性:恶意软件可以使用DBVM。因此,它需要一个64位长的密钥才能使用这些指令。其中一条说明是将默认密钥更改为其他密钥,以便其他程序在没有正确密钥的情况下无法使用它。

请注意,DBVM的当前实现要求您的cpu支持intel-vt指令集。对于AMD版本,请捐出足够的钱,以便我可以购买AMD系统来测试AMD的特定代码。

找出您的系统是否支持dbvm的一种简单方法是在CE徽标上点击以显示about屏幕。它会告诉您系统是否有能力。如果您实际上已经加载了dbvm,它甚至会告诉您正在运行的dbvm的哪个版本.



也就是说,不管他是什么东西,用UltiMap工具就必须开启dbvm



开启方法:



①:打开帮助界面




②:提示支持DBVM然后点击一下绿色的字



③:出来提示点击OK就可以了



相关文章参考: https://wiki.cheatengine.org/index.php?title=DBVM



然后我们就要开启Ultimap工具了!!!激动人心的时刻!!!



第一步:打开内存浏览器




第二步:点击Ultimap




然后我们进游戏,拿起枪,点击start:





开一枪,然后点击第二步的按钮:意思就是代码执行了,因为开枪了,开枪相关的代码肯定得执行





不开枪随便走两步,点击未执行的代码:







继续开枪,搜索执行的代码:





以此类推,通过我手动的过滤,还剩下175个地址:

然后我们点击下面的show,也就是显示过滤的结果




然后显示出来了,还有计数:



这边是极其重要的,因为我们开了四枪,所以相关的代码也应该执行了四次!

因此,我们把所有执行4次的代码,拷贝下来进行分析:

通过修改相关逻辑,最终实现了“无限子弹”,当然了,是自wei的,哭了,因为是网络游戏,所以子弹数量跟服务器是交互的哦~

具体的内存地址不放出来了,太敏感,而且有些人也可能会拿去做坏事~

这篇文章呢,只是讲解Ultimap工具,它是一个可以过滤代码执行的强大工具

拓展:

1.人物穿墙的碰撞检测
2.子弹穿墙的碰撞检测
3.各种内存call:比如攻击call,寻路Call
4.按钮等控件call

等等等等,自由发挥咯

老铁们点一波关注,刷一波666,带你









来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-5-6 19:38 , Processed in 0.109375 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表