某视频app分析破解-转了一圈又回到原点

查看 208|回复 9
作者:spcspcspcspcspc   
朋友分享一个视频app,非会员每天可以看一次免费视频。拿来破解下。
想直接看结果的直接看最后部分
推广可以换3天会员,我们还是先从推广这里破解,毕竟不需要修改程序,兑换的会员永久可用,后期升级也不用再次破解。第一步 抓包:{"sign=75708acd1f8b068edb4ffe4c523e9ed8","data=6d62546b省略76ee5","_ver=v1","timestamp=1677588163"}


1.png (20.95 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

Jadx打开,搜索“_ver”,结果太多,前面加个双引号再搜索。



2.png (33.2 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

只有两条,点进去发现还是在一个位置。 _ver、data、sign都对上了,f551e其实就是timestamp。可以看到data数据是执行m13880e,Ctrl+单击m13880e。


3.png (10.96 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

继续Ctrl+单击mo33246f


4.png (10.89 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

继续Ctrl+单击 EncryptUtil.encrypt


5.png (27.04 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

又是调用libsojm.so模块。解压apk,找到libsojm.so,用IDA载入。


6.png (40.9 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传



7.png (43.29 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

然后混淆的太厉害,水平有限,搞不懂。尝试新写个app调用libsojm.so,直接崩溃,应该是so内部有限制。看来想解密是不行了。回到上面EncryptUtil.encrypt的地方发现也有个几个函数,盲猜decrypt应该是解密的函数,decryptHls解密视频数据,decryptImg解密图片数据。decrypt上右击-查找用例。


8.png (20.35 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

点击第二条。


9.png (10.96 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

同样mo33244b右击-查找用例


10.png (13.52 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

进第一条


11.png (10.02 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

继续m13878a右击-查找用例


12.png (11.05 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

进第二条


13.png (17.48 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

果然是获取返回数据中的data,然后解密。我们可以用MT管理器的注入日志功能来打印出解密后的数据。


14.png (63.11 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

模拟器中打开MT管理器,找到app点击,左下角功能,注入日志记录。


15.png (50.14 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

回到jadx中标签栏右击-复制类名  “com.省略.lib.encrypt.C4354c”,C4354c是便于我们阅读jadx自己命名的名称,只保留最后一位,真实类名是 com.省略.lib.encrypt.c,粘贴到MT管理器中,然后确定。会生成一个_log结尾的app。


16.png (25.04 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

点击新的app-查看-点击classes.dex-DEX编辑器++-全选-确定。


17.png (39.35 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

搜索-新的搜索-搜索类名 com.省略.lib.encrypt.c 结果就一个,点击进去。


18.png (86.42 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

点击右上角三个点-搜索-Lmt-下一个 把这两行剪切,这就是MT管理器注入的日志记录功能[Java] 纯文本查看 复制代码  .local v0, "0001.java:1":V
    invoke-static {v0}, Lmt/LogF1E2C9;->a(Ljava/lang/Object;)V



19.png (60.51 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

点击右上角左边的指南针按钮,选择M图标o的方法点切换。因为上面分析了我们要记录mo33254o中的解密数据,所以选择o,M表示method方法。


20.png (58.4 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

向下找到method结尾的地方。1032行可以看出调用com.省略.lib.encrypt.c 中的a方法,就是上面Jadx的m13878a。1034是把结果给p1,1036行返回结果。所以我们在1035行添加日志记录,再结果出来还未返回的时候记录。粘贴上面剪切的代码,v0改为p1,然后一路返回,保存,签名。安装新的app,打开app,然后在MT2/logs目录下会有.log文件。打开发现如下的数据:{"daily_view":1,"data":{省略省略"type":"android","version":"5.7.1","web_url":""}},"isVip":false,"msg":null,"status":200}直接看到“isVip”。。。简单问题想复杂了。。。从这里开始看


21.png (20.85 KB, 下载次数: 0)
下载附件
2023-3-8 16:27 上传

回到Jadx,搜索isVip,点第二条。


22.png (30.19 KB, 下载次数: 0)
下载附件
2023-3-8 16:28 上传

response.body、isVip、daily_view,猜测是获取返回信息,然后提取isVip和daily_view。上面的“服务器异常,请稍后再试”可以用来定位。


23.png (44.77 KB, 下载次数: 0)
下载附件
2023-3-8 16:28 上传

MT搜索“服务器异常,请稍后再试”,搜索类型为代码。也可以用上面的类定位方法。Jadx中类名为AbstractC5124g,所以选择g的那条。


24.png (79.79 KB, 下载次数: 0)
下载附件
2023-3-8 16:28 上传

向下找到isVip和daily_view。


25.png (108.1 KB, 下载次数: 0)
下载附件
2023-3-8 16:28 上传

修改如上图。然后本地会员破解完成。兜兜转转又回到原点,一开始就搜索isVip的话就一步到位了。只是简单破解,能看免费视频了,其他功能再慢慢研究吧。

微软, 下载次数

vane12138   

这种视频软件我也有
dydw2022   

棒棒哒!!!!!!
安歌   

不错,大佬牛!!!
Simpleton   

不错不错
MISTWALKER   

多谢破解
lgslegend   

厉害了了
deffedyy   

这种还好,么有复杂算法
意识的   

尽量在Java层操作,so层很多时候就算知道要改哪里也不好操作的
deffedyy   

是什么APP能不能分享出来
您需要登录后才可以回帖 登录 | 立即注册