前言:

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

步入主题:这款游戏叫做战地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

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

  1. ai杀手级_游戏花了太长时间才能利用stadias杀手级功能

    ai杀手级 On July 1, Crayta, a game that allows people to collaborate on making other games, exclusively ...

  2. 如何通过第三方工具维护计算机,无需第三方优化软件利用电脑自身维护功能优化系统...

    原标题:无需第三方优化软件利用电脑自身维护功能优化系统 电脑使用久了,开机缓慢.运行卡顿是常见的事,这时我们就会想着对电脑进行一些优化加速设置.很多用户会选择使用第三方的优化软件,如"XX管 ...

  3. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏

    第二堂课布置了一个Mission Impossible:如何利用Matlab GUI制作猜数字游戏 这个任务对很多人来说会非常困难,首先要面对的是 Matlab GUI的机制,这是完全未知的机制,在面 ...

  4. 因为这款工具的存在:游戏开发的门槛被降到了人人都会

    这是最亲民的游戏开发工具,给你造梦和填粪的可能性 无论是一闪而过的灵感,还是陪伴终生的梦想,每一个玩家或多或少都会产生由自己去开发游戏的念头.有的人在这个目标上坚定地走着,并最终得以踏入游戏开发者殿堂 ...

  5. 分布式服务器架构下的3v3团队对抗游戏

    [Warning] 本仓库作为本人的毕设课题,主要是初学者的学习/实践,谨慎用于正式用途. Github仓库链接:https://github.com/ZerlenZhang/distributed- ...

  6. java游戏输赢统计_java利用多线程和Socket实现猜拳游戏

    本文实例为大家分享了利用多线程和Socket实现猜拳游戏的具体代码,供大家参考,具体内容如下 实例:猜拳游戏 猜拳游戏是指小时候玩的石头.剪刀.布的游戏.客户端与服务器的"较量", ...

  7. ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生

    ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生 目录 基于load_mock_customer数据集(模拟客户)利用f ...

  8. linux下利用valgrind工具进行内存泄露检测和性能分析

    http://blog.csdn.net/yanghao23/article/details/7514587 valgrind通常用来成分析程序性能及程序中的内存泄露错误 一 Valgrind工具集简 ...

  9. 从《黎明杀机》看非对称对抗游戏的魅力

    直播平台总是热门游戏的风向标,只要突然霸屏的游戏基本就是迅速走红的主儿. 在去年,<黎明杀机>这款多人在线恐怖惊悚类游戏就在主播的带动下犹如病毒迅速火遍全网,许多主播热衷于扮演杀手或者幸存 ...

最新文章

  1. 卫星数据现已加入 Azure 豪华套餐,在太空向女神表个白?
  2. qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...
  3. linux文件系统 环形结构图,环形缓冲器(转)
  4. C Tricks(十六)—— 复制字符串
  5. shell基本理论知识
  6. R语言—简介、安装、包(package)的安装与加载
  7. matlab散点图注释,MATLAB中散点图的绘制方法
  8. Laravel 路由知识回顾记录 转自laravel 学院Laravel5.8
  9. 鸟哥的linux私房菜——蔡德明
  10. 高德地图开放平台的使用
  11. [4G5G专题-9]:RRU 数字上变频DUC与数字下变频DDC
  12. js实现购物车加减和价格运算
  13. Laravel 第十章 API测试和文档
  14. Python实现元胞自动机——十字路口
  15. 2017校招信息每日汇总(更新至8.4)
  16. 【大学物理·恒定电流的磁场】磁感应强度
  17. 高鲁棒!高实时!慕尼黑工业大学开源RGB-L SLAM!
  18. 怎么使用GK888CN打印机批量打印条码
  19. 【三维目标检测】Part-A2(一)
  20. 分享一个c++连线小游戏

热门文章

  1. 计算机无法唤醒,电脑休眠后无法唤醒怎么办 电脑休眠后无法唤醒原因及解决方法...
  2. 最新分布式训练深度学习框架
  3. Samba客户端工具
  4. python海水密度计算(图形界面)源代码
  5. PHP单文件读取excel操作数据库
  6. mysql树形结构 无限分类_使用 authenticationDatabase 参数连接 aliyun 上的 MongoDB - SegmentFault 思否...
  7. 计算机等级二级 领慧,计算机二级考试真题-Word-领慧讲堂大学生人生规划海报...
  8. 图像处理总复习4、图像恢复
  9. clickhouse-backup 备份恢复测试
  10. docker容器使用docker-squash压缩体积