吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22666|回复: 120
收起左侧

[原创] 某某打僵尸游戏的DLC解锁

    [复制链接]
材鸟 发表于 2020-5-13 21:09
本帖最后由 材鸟 于 2020-5-15 10:34 编辑

前言!!!WARNING:本帖仅限技术讨论,学术研究!!!
本身不太爱来论坛发帖,原因有二;其一,老是因为侵权等原因被删帖,本文尽量不提及该游戏相关关键字作脱敏处理。其二,当然是可恶的“搬砖”党,犹记论坛某某发的X游加速器作品仍在被拿出来“炒冷饭”,真是吾见尤怜,还好我发的被及时删了
当然!!我还是依然来发帖了。为何??心力交瘁,乾坤斗转;两日磨一剑,岂愿明珠蒙尘,锦衣夜行之感,吾心甚忧!!!!额,说白了留着烂硬盘里不如拿出来让大伙儿学习交流~


简介
某某游戏最近推出了某某DLC(够模糊了吧),由于以往都是无关紧要的武器皮肤之类。此次竟将新地图作为DLC内容锁定!由于对该游戏有过调试经验,知其本地化数据颇多(例如 武器射速伤害 及烂大街的睾贵存档- -!可联机游戏哎~)抱着尝试的态度进行了学术研究!


工具
x64dbg *1
cheat engine *1


正文
如图1所示,可以观察到:选项第五章相较于其他选项为灰色不可选取状态,还有明显的购物车标志及提示文字
1

图片1

图片1


PS:未锁定的章节,单击后会背景会变成该章节相关的动图并出现小节选项。锁定的章节单击后不作任何反应!
此时为猜测推理环节!!!逆向本身就是一个推理的论证过程~~
假设这个假设是成立的嗷,写教程嘛,拿出来的假设肯定是我无数假设中成立的一个!实际论证的艰辛过程不足外人道也):我选中单击第一章,那么有一个数字表示1,我选中单击第二章,有一个数字表示2,以此类推。。。 由于总共才五章,那么这个数肯定不会超过一个字节,为了结果的准确性。数值类型应当为byte 一个字节!
打开cheat engine。一顿操作之后,获得结果。如图2所示,有三个数据地址
2

图片2

图片2

第一个为栈地址,可以进行剔除。
第二个以下简称【变量A
第三个以下简称【变量B
当选中并单击第五章(被锁定章节)时,数据进行了变化。如图3所示
3

图片3

图片3

由此可得:变量B的赋值优先于变量A。又因章节被锁定,而变量A无法像选中其他章节一样被赋值。可以判断变量A的赋值是在章节可选情况下进行的。变量B赋值 --》 判断地图锁定变量 --》 变量A赋值   


打开x64dbg进行附加,并使游戏正常运行。在内存窗口1 CTRL+G 跳转到变量A(图4),内存窗口2 CTRL+G 跳转到变量B(图5),便于观察。(由于CE存在中文字符编码问题,个人不太爱用)
4

图片4

图片4

5

图片5

图片5

(本想介绍如何找出变量A 与变量B的相关作用涵义,因无关紧要且怕篇幅过大略作删减。A为选中时播放背景相关,B为选中时按钮UI相关)
可以直观的看到。变量B附近,有明显的字符串,ep4_japan。变量A附近并无任何发现。又因变量B赋值优先于变量A,此时选择观察变量B。通过不断单击各个章节,发现附近数值的变化(见图6)
6

图片6

图片6

变量C 变量D 的变化为:单击章节按钮后,未锁定的会变为0,锁定的依然是1,无变动。对变量C单字节写入断点并选中不同章节来改变,使它如图7所示断下。(我在未选中章节的情况下选了第二章节)
7

图片7

图片7

7中我进行了诸多标注,先说反汇编窗口区域:此处代码为游戏引擎的变量赋值HANDLE,可以观察数据窗口里的数据格式进行对照理解。再看寄存器窗口:由于赋值HANDLE会被不同变量进行疯狂调用(例如移动鼠标,会将鼠标坐标放置到某个变量),经过多次下断调试,可以将R14寄存器的值作为特征码。


OK,得到了这么多信息。未锁定=0  锁定=1,而所有变量赋值都要经过这条HNDLE。这里我不选择回溯,因为代码看多了会吐- -!直接利用x64dbg的条件断点功能在这作一个简单的HOOK(见图8。将所有未锁定=0赋值为锁定=1会发生什么呢?(至于为什么不是1赋值为0?这里的变量是所有变量!UI属性1=true 变为0=false ,会卡BUG


8

图片8

图片8

单击了【选择章节】按钮刷新了一下章节列表,如图9所示可以看到将所有章节变成了如章节五般需要DLC的状态。证明方法可行,如何找出是哪个地址改变的结果?回看图7介绍部分,依据R14的值可作为特征码,修改条件断点为图10所示(文本条件为排除两个无关并且频次较高的特征),保存后单击【选择章节】按钮进行列表刷新,并且快速禁用断点避免记录较多的垃圾数据。
9

图片9

图片9

10

图片10

图片10

如图11所示,禁用记录断点后查看日志。依据五个章节一共赋值5次,筛选出寄存器的值出现过相同仅5次的文本。得出两份数据,r14=0x80000044 5次  rdx=0x211BA6CE530 5次,再将两份数据进行单独比较,可以发现r14=0x80000044的数据源于rdx=0x211BA6CE530。下文将rdx的值0x211BA6CE530称为【变量E】!
11

图片11

图片11

回到单字节HANDLE,条件断点设置如图12,单击【选择章节】断下。此时可以手动将5al赋值为0,你会发现如图13所示。成了???你在想Peach!!此时第五章确实可选,且单击后背景图会相应改变。但是并没有弹出相应小节供选择(依然不可用),单击其他可用章节并无异常。此时再次单击选择章节断下!
12

图片12

图片12

13

图片13

图片13

断下后F8或堆栈回溯到如图14所示处,下文以【五个章节DLC图标赋值CALL】代称!假设你头铁继续走下去的话,你会发现如图15所示处,我愿称之为dispatch
14

图片14

图片14

15

图片15

图片15

找到【五个章节DLC图标赋值CALL】后,下断。并取消之前的条件断点!单击【选择章节】后会断下,此时可以在寄存器R8稳定的获得变量E(该变量地址可能会变动) 。在数据窗口1中转到变量E,并多次断下观察变量E附近数据!(见图16 / 17
16

图片16

图片16

17

图片17

图片17

可以得出,在对被锁定的第五章赋值是否为DLC时,内存固定位置出现season_pass  marseille字样,且原数据变量类型由4(字符串)变为5(长整数)。尝试在变量赋值HANDLE,长整数类型处如图18所示设置条件断点进行日志输出。并单击【选择章节】按钮看看5次断下对这两个地址赋值了什么!
18

图片18

图片18

在累计断下五次后,查看日志输出(见图19,发现第四次到第五次(第五章DLC图标赋值前行为)之间出现了不同的数据。
19

图片19

图片19

将第一个出现的值0x1814CEF7920定义为变量A,第二个出现的值0x180FBD3A2E0定义为变量B。并在数据窗口1和数据窗口2分别转到两个值。(图20 / 21 所示)
20

图片20

图片20

21

图片21

图片21

发现这两个变量具有相同的数据结构,偏移0xD0处为最显眼的字符串,偏移0x18处都指向同一个地址,在数据窗口3中转到该地址看看。

可以看到图22所示,DlcState WTF!!!我们来捋一捋,当需要对某个对象进行DLC封锁时,它会到这个结构取state,可能是返回一串数据结构的地址或者简单的01。。。此时我已经不想分析下去了,因为已经消耗了我两个日夜的时间,肝快爆了!经过尝试,用CE搜了变量B,并将所有结果值赋0后。得到了我要的结果!图23所示!!!
22

图片22

图片22

23

图片23

图片23

成品及源码什么的由于版主要求就不作发布了!这文上午11点写到目前晚上9点,发帖又要疯狂审核,累成狗了。想来以后不会再发贴了,且看且珍惜~

免费评分

参与人数 49威望 +2 吾爱币 +148 热心值 +46 收起 理由
行酒令 + 1 + 1 我很赞同!
hxl159263 + 1 + 1 谢谢@Thanks!
Flo + 1 + 1 谢谢@Thanks!
掉一只鱼了我 + 1 + 1 谢谢@Thanks!
咸鱼一浩 + 1 + 1 热心回复!
rockmanlz119 + 1 + 1 谢谢@Thanks!
19936040638 + 1 热心回复!
kunng + 1 + 1 谢谢@Thanks!
xyx208 + 1 + 1 我很赞同!
zyt_8023 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
科技月半(老二) + 1 + 1 用心讨论,共获提升!
默默默默陌 + 1 + 1 我很赞同!
鱼丸车仔面 + 1 + 1 谢谢@Thanks!
zgzg + 1 谢谢@Thanks!
sakurao + 1 + 1 我很赞同!
kilkilo502 + 1 热心回复!
lishixin23 + 1 + 1 谢谢@Thanks!
u223110 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yudan5921 + 1 + 1 我很赞同!
急眼兔 + 1 + 1 谢谢@Thanks!
marko + 1 + 1 我很赞同!
leafleave + 1 + 1 谢谢@Thanks!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Lccccc。 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
奇异硕士 + 1 + 1 我很赞同!
pyj + 1 + 1 谢谢@Thanks!
yAYa + 3 + 1 热心回复!
lmjg520 + 1 + 1 我很赞同!
色皮猪 + 1 + 1 我很赞同!
wfjxw2008 + 1 + 1 谢谢@Thanks!
Das-Fest + 1 + 1 用心讨论,共获提升!
自由之心 + 2 + 1 加油,大神!
biseshadow + 1 + 1 我很赞同!
32154678925 + 1 + 1 热心回复!
生而为人. + 1 + 1 我很赞同!
yifang + 1 + 1 感谢博主
trusheyard + 1 + 1 用心讨论,共获提升!
hefeisf + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
H0san + 1 + 1 热心回复!
id1123 + 1 + 1 可以可以
Black_山猫 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wkxq + 2 + 1 我很赞同!
Towneast + 1 + 1 谢谢@Thanks!
wanjuny + 1 谢谢@Thanks!
wlpt5 + 1 我很赞同!
EVUi + 1 + 1 谢谢@Thanks!
Hmily + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
2240156055 + 1 我很赞同!
司f医2 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

  • · |主题: 33, 订阅: 2

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

设计师三七 发表于 2020-5-14 14:42
我还以为是植物大战僵尸呢
wudi5299122 发表于 2020-5-14 15:21
what are you nong sha lei? IS means this article also need to unlock?
板熊 发表于 2020-5-14 13:40
txqq520 发表于 2020-5-14 13:57
我以为是生化危机 原来是我想多了?
onecombo 发表于 2020-5-14 14:12
赶上直播了,学习一下
g339054798 发表于 2020-5-14 14:15
连接呢- - 咋没有了
skingnemo 发表于 2020-5-14 14:38
进入备战状态,学习观望中。。。。
流浪星空 发表于 2020-5-14 14:38
哈哈 还有预告呢
xggmmm 发表于 2020-5-14 14:44
解锁的好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 13:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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