Zxis 发表于 2021-11-1 18:52

【新人试水】某笔记软件的会员破解

本帖最后由 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:24

本帖最后由 涛之雨 于 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,
> 这样应该能实现免登陆。。。
> 如果没有其他的检测的话)

。怎么巴拉巴拉说了这么多(七百多字)。。。溜了溜了

4461 发表于 2021-11-2 08:41

跟大侠学习,只有自己动手,才能丰衣足食!谢谢!

bobo丶 发表于 2021-11-1 19:00

跟大佬学习

地藏王菩萨 发表于 2021-11-1 19:06


跟大佬学习,感谢楼主分享。

91MrZhang 发表于 2021-11-1 19:07

厉害啊,楼主tql

blindcat 发表于 2021-11-1 19:10

用心讨论,共获提升!

速水真澄 发表于 2021-11-1 19:15

膜拜大神

ZXB654321 发表于 2021-11-1 19:20

不错不错、学而时习之、{:1_921:}

dream 发表于 2021-11-1 19:27

学习学习 不错的样子

pdc9911 发表于 2021-11-1 19:27

自己动手丰衣足食

lcylidong 发表于 2021-11-1 19:44

不错,分享学习一下了。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【新人试水】某笔记软件的会员破解