【新人试水】某笔记软件的会员破解
本帖最后由 Zxis 于 2021-11-1 19:28 编辑RT,最近在拿小米平板做笔记,用了几款软件觉得这个不错。结果一看,部分功能要会员。连续翻页居然会员才能用?!实在反人类。
打算找找现成的。无奈没有,只能自己试试了。纯小白,啥安卓逆向基础都没有,往各位大神指点其中原理。
工具:MT管理器(有无会员都可)
非会员试用会员功能会有如上提示。先随手去除个签名校验:
按教程,直奔Arsc搜索“会员”:
跟进去复制ID,回Dex编辑器搜索:
搜索出来好几个,依次点进去看了下,应该是第二个。
进去往上翻找到关键函数isPro。跟进去看看是啥。
然后这边看不懂TAT
上面有个Is login应该是判断登陆的。大致意思是看v1的值?如果是会员则v1赋值1,否则v1为0且直接返回。
那我也给v1赋值1试试看?
然后打包测试,就糊里糊涂地破解好了……
附一张WSA子系统测试图
希望各位大神指点下其中原理
附:有时会显示自己是普通会员,但功能依旧可以用,不知道啥原因……
本帖最后由 涛之雨 于 2021-11-2 09:28 编辑
原理的话我没看软件,就你的图说一下吧。
首先“去除签名校验”就是通过一些手段修改软件获取到的签名信息成一开始的信息,
然后和他已经定义好的签名信息对比。(这个了解即可)
arsc搜索会员就是通过资源定位软件字符串,一般来说as编写的软件,特别是国际化的软件会把字符串都放到string.xml里方便修改和国际化,(一些sdk的话就会在dex里,比如支付宝啊,微信啊)
搜索那串数字勾选16进制是根据刚才搜到的字符串id,找到调用的位置
搜索出来的图片有三个,上面两个都有可能,最下面一个是字符串id的一个标注(vip_user_hint),上面两个才有可能是通过id获取字符资源的代码
向上翻有个isPro这个就是一个典型的tf函数(我起的名字hhhh,也可以叫01函数,还是我起的名字)返回的不是0就是1(这里的0是false,1是true)
isPro里的函数大概意思就是
```
L4799:调用函数获取是否登录(又是一个tf函数)
L4805:判断返回的数值是不是0(false),如果没登录(false)就直接返回false
(return v1,
上面赋值了const v1,0 ,
中间那个/4的话就是数字最大4位二进制,
也就是最大数是1111(B)=7(D),
这里无所谓,
没有特别标注默认就是4位
);
否则跳转到L4810
L4811+L4813:获取r.h这个整数型参数的值(应该是判断是否是会员)
L4817:老判断了,这个你应该也知道了,不是会员就是false,是会员就是true
```
> (小声逼逼你在最后L4822添加了一行赋值1,
> 为什么不把L4803行那个0改成1,
> 这样应该能实现免登陆。。。
> 如果没有其他的检测的话)
。怎么巴拉巴拉说了这么多(七百多字)。。。溜了溜了 跟大侠学习,只有自己动手,才能丰衣足食!谢谢! 跟大佬学习
跟大佬学习,感谢楼主分享。 厉害啊,楼主tql 用心讨论,共获提升! 膜拜大神 不错不错、学而时习之、{:1_921:} 学习学习 不错的样子 自己动手丰衣足食 不错,分享学习一下了。