吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2812|回复: 38
上一主题 下一主题
收起左侧

[.NET逆向] TC Games 投屏软件逆向分析(一)解锁VIP功能

  [复制链接]
跳转到指定楼层
楼主
caoyuze 发表于 2024-6-18 15:38 回帖奖励
本帖最后由 caoyuze 于 2024-6-28 01:02 编辑

一、前言

DNF手游出了有将近1个月了,以前没玩过端游,所以就体验了一下,感觉还可以(虽然还有一些小bug,还有高帧率竟然才60)。但是手机操作感觉有一点不舒服,方向不太灵活,想着用电脑模玩应该会舒服一些,于是想试一下模拟器,但是用MuMu模拟器试了一下会封号,于是,想起来以前玩手游吃鸡用过TC Games这个软件,它是将手机屏幕的游戏内容投屏到电脑,然后再按键映射操作的,就检测不到使用模拟器,所以准备试一下这个软件。后来又试了OurPlay模拟器(这个竟然不封号)以及无界趣连(和TC Games类似,但功能少很多,应该是刚出不久)也可以使用,这就是后话了。但是呢,TC Games没有VIP很多功能不能用,画质也很低,所以之后就想逆向解锁一下VIP的功能。

二、分析和爆破

1. 查壳

我们先查一下壳:


看到是用C#写的,没有壳,这就很好办了,我们直接上dnSpy静态分析源码。

2. 分析

(1)这里我们从设置页面入手,从设置里面,我们随便点个VIP的功能,看它的提示如下:


(2)在dnSpy里面我们查找设置界面的相关代码:

(3)这里,我们看到TCGames.Settings命名空间里面的前2个类是和设置相关的,查看里面的具体方法:


这样就很明显了,CastingSettings类就是投屏相关设置,ClientSettings就是客户端的一些其他设置。
(4)这里我们看到他们都有StatusOfVip方法,明显就是判断Vip的相关内容,我们直接进去看看具体逻辑,先看CastingSettings中的StatusOfVip方法:

这里没有看到关键信息,主要是来判断设备是否连接的逻辑,然后传入的是否是vip的参数也没用到。

3. 关键信息

(1)接着看ClientSettings中的:


我们看到了一些关键信息,有this.IsVip被赋值为了传入的vip参数,既然这里有IsVip字段记录是否为VIP的信息,那么一定有别的地方的方法用来返回是否是vip以及vip状态相关的方法。
(2)接下来,我们直接全局搜索IsVip相关的方法:

芜湖,直接找到了判断是否是Vip的方法,我们来看看这3个方法,到这里我们最快的方法就是直接让这3个方法返回true即可。

4. 修改

(1)如下图,直接在方法上右键编辑方法,


然后直接把整个方法体改成return true即可,修改完点编译,最后全部改完在dnSpy中点文件->全部保存即完成了程序的爆破。
(2)修改完成后我们打开修改后的软件,可以看到:


需要VIP才能用的画质设置可以使用了,然后其他的VIP键位、传音等功能也能够使用了,软件主界面左下角也有了VIP的图标(界面的主页的账户信息不用管,那个是网页查看的账户信息,不影响软件的VIP功能)。
(3)经过测试,在游戏中智能施法等VIP按键功能也能够正常使用,然后试了一下,我们的VIP键位还可以右键分享,分享出来的也是VIP键位,这个功能肯定没做服务器校验,直接能分享:

至此,如果想用它的VIP功能,我们要做的已经完成了。

三、再深入一些?

1. 上传功能

(1)我们本地的键位虽然能够用VIP的功能,但是,如果卸载的话,下次安装键位就没有了,我们看到它还有上传键位的功能,如果它这个功能只做本地的VIP校验的话岂不是可以让我们普通用户也上传?于是心动不如行动,我们用爆破后的程序,右键我们自己本地的键位点击上传:


嗯,不出意外地失败了。
(2)我们再在dnSpy里面全局搜索一下提示信息:

芜湖,啥也没有,那说明八成应该不是本地判断的,应该是凉凉了。
(3)既然它是上传的配置,应该有相关的服务器请求,这里我们直接用WireShark进行分析:

经过筛选,我们找到上传键位的接口是:http://www.tcgames.com.cn/api.ScripteInfo ,请求体内容如上,上传接口调用后,我们得到的返回结果是下面的json,这里的message字段内容果然就是我们上传失败的信息提示框内容。而且,它是直接把键位的配置详细内容直接放在请求体内请求接口了,服务器通过用户手机号字段判断你是不是VIP,如果是,就把脚本详细内容的字段的信息放到服务器上,这样,我们就无法实现普通用户的上传键位的功能了,这种做法很暴力但很有效(但是他们真不怕键位的配置文件内容很多吗,配置文件内容过多的话超过POST请求体的大小就会请求失败了,不过一般来说超不了)。
(4)如果说它是本地进行Vip校验之后,通过了再调用文件上传接口上传配置文件的话,我们就有机可乘了,这种逻辑流程也是更为通用但不安全的开发思路。

2. 加密相关

(1)之前的IsVip方法的加密校验我们也可以大致看一下:


这里,是用了它自己写的DES工具类的加密方法,具体加密流程以及密钥我们不用管,它这里拿到IsSvip字段后进行加密,如果值为"0P5RbaZ9ml8="或者"wVp/KEYnVKg="就返回真。
(2)我们来看一下它们解密后是什么,看到DesUtil中也有Decrypt解密方法,我们直接打印一下这两个字符串解密后的值即可(dnSpy的断点调试好像有问题,所以这里我直接用MessageBox输出查看一下),最后得出结果如下:


这里我们看到它的VIP状态标识字段有1和2两种值,经过测试,这两种VIP没发现什么区别(可能为了以后做差异化?)。到此,对此软件的研究也就结束了,大家有兴趣的话可以再深入了解一些。

四、总结

解锁VIP功能需要修改的2处:TCGames.AppCenter命名空间下的TGWebUserHandler类的isVip和isVipOne方法的内容改成1行return true即可(isVipOne方法必须改,isVip方法可以不改,isVip只影响软件主界面左下角的VIP图标显示):




免费评分

参与人数 20威望 +1 吾爱币 +36 热心值 +16 收起 理由
xiuro + 1 + 1 谢谢@Thanks!
hxd97244 + 1 + 1 用心讨论,共获提升!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zzf0012 + 1 我很赞同!
xigXIG + 1 我很赞同!
一只树袋熊 + 1 谢谢@Thanks!
wangjiuye + 1 期待成品
fanny188 + 1 谢谢@Thanks!
小k666 + 1 + 1 用心讨论,共获提升!
极地企鹅 + 2 + 1 我很赞同!
AnLin9826 + 1 真复杂厉害
wzc01111274 + 1 + 1 未学会,期待成品
FitContent + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xieyulei + 1 + 1 我很赞同!
LSugar + 1 + 1 我很赞同!
woaininiaiwo + 1 我很赞同!
top777 + 1 + 1 谢谢@Thanks!
Yifan2007 + 1 热心回复!
jy138290 + 1 + 1 谢谢@Thanks!
Caraciold_Jr + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

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

推荐
wtujoxk 发表于 2024-6-22 10:34
本帖最后由 wtujoxk 于 2024-6-22 10:42 编辑

谢谢楼主

根据楼主思路做了个劫持补丁,无需修改软件,补丁就是让getIsSvip返回1或者2就行

public int getIsSvip()
{
        return 1;//这里返回2也行
}

补丁……  不解释,不负责,不承诺

如果官网不改,理论上后续版本可用!
HookTCGames.zip (266.89 KB, 下载次数: 74, 售价: 15 CB吾爱币)

推荐
 楼主| caoyuze 发表于 2024-6-21 20:27 |楼主
xiaozhang0372 发表于 2024-6-21 16:37
这个是PC端的,安卓端能逆向么?想学习一下

安卓端主要是加固,没有加固的apk也很好逆向,我就偶尔玩一下。其实很多安卓应用去MT论坛搜下都有逆向思路,有的怎么改都给你说了,有的改好的都懒得自己动手分析了。
沙发
Lty20000423 发表于 2024-6-19 07:45
3#
王诚 发表于 2024-6-19 08:08
太复杂了,不懂,谢谢。
4#
Yifan2007 发表于 2024-6-19 08:39
其实上来直接搜vip或者svip这类就行了,这种软件命名大多都很统一

免费评分

参与人数 1热心值 +1 收起 理由
yeah_go + 1 热心回复!

查看全部评分

5#
reignobe 发表于 2024-6-19 09:00
苦vip久矣  先前玩火影忍者手游用的就是这款
6#
xxl1039 发表于 2024-6-19 09:03
感谢分享,学习了。
7#
adj 发表于 2024-6-19 09:27
看不懂,但是看着就很厉害!!
8#
zuxin521 发表于 2024-6-19 09:47
非常棒的原创分享,但是试图教会我,是不可能的
9#
msmvc 发表于 2024-6-19 10:44
在不爆破的前提下,最好是能算出注册码,这样用着放心,毕竟你也不知道程序里有没有地雷
10#
whuang111 发表于 2024-6-19 13:42
为什么我修改isVipOne方法,保存后,卡在TCGAMES图标 进不去软件了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-7-4 16:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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