好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 spcspcspcspcspc 于 2023-3-10 16:17 编辑
朋友分享一个视频app,非会员每天可以看一次免费视频。拿来破解下。
想直接看结果的直接看最后部分
推广可以换3天会员,我们还是先从推广这里破解,毕竟不需要修改程序,兑换的会员永久可用,后期升级也不用再次破解。第一步 抓包:{"sign=75708acd1f8b068edb4ffe4c523e9ed8","data=6d62546b省略76ee5","_ver=v1","timestamp=1677588163"}
Jadx打开,搜索“_ver”,结果太多,前面加个双引号再搜索。
只有两条,点进去发现还是在一个位置。 _ver、data、sign都对上了,f551e其实就是timestamp。可以看到data数据是执行m13880e,Ctrl+单击m13880e。
继续Ctrl+单击mo33246f
继续Ctrl+单击 EncryptUtil.encrypt
又是调用libsojm.so模块。解压apk,找到libsojm.so,用IDA载入。
然后混淆的太厉害,水平有限,搞不懂。尝试新写个app调用libsojm.so,直接崩溃,应该是so内部有限制。看来想解密是不行了。回到上面EncryptUtil.encrypt的地方发现也有个几个函数,盲猜decrypt应该是解密的函数,decryptHls解密视频数据,decryptImg解密图片数据。decrypt上右击-查找用例。
点击第二条。
同样mo33244b右击-查找用例
进第一条
继续m13878a右击-查找用例
进第二条
果然是获取返回数据中的data,然后解密。我们可以用MT管理器的注入日志功能来打印出解密后的数据。
模拟器中打开MT管理器,找到app点击,左下角功能,注入日志记录。
回到jadx中标签栏右击-复制类名 “com.省略.lib.encrypt.C4354c”,C4354c是便于我们阅读jadx自己命名的名称,只保留最后一位,真实类名是 com.省略.lib.encrypt.c,粘贴到MT管理器中,然后确定。会生成一个_log结尾的app。
点击新的app-查看-点击classes.dex-DEX编辑器++-全选-确定。
搜索-新的搜索-搜索类名 com.省略.lib.encrypt.c 结果就一个,点击进去。
点击右上角三个点-搜索-Lmt-下一个 把这两行剪切,这就是MT管理器注入的日志记录功能[Java] 纯文本查看 复制代码 .local v0, "0001.java:1":V
invoke-static {v0}, Lmt/LogF1E2C9;->a(Ljava/lang/Object;)V
点击右上角左边的指南针按钮,选择M图标o的方法点切换。因为上面分析了我们要记录mo33254o中的解密数据,所以选择o,M表示method方法。
向下找到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”。。。简单问题想复杂了。。。从这里开始看
回到Jadx,搜索isVip,点第二条。
response.body、isVip、daily_view,猜测是获取返回信息,然后提取isVip和daily_view。上面的“服务器异常,请稍后再试”可以用来定位。
MT搜索“服务器异常,请稍后再试”,搜索类型为代码。也可以用上面的类定位方法。Jadx中类名为AbstractC5124g,所以选择g的那条。
向下找到isVip和daily_view。
修改如上图。然后本地会员破解完成。兜兜转转又回到原点,一开始就搜索isVip的话就一步到位了。只是简单破解,能看免费视频了,其他功能再慢慢研究吧。 |
-
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|