高数神器Symbolab逆向教程(新手向)

查看 75|回复 8
作者:WZTong   
搜索全网发现没人对此软件逆向做教程,即使有也存在较高阅读权限,故自己花时间摸索后将全过程记录于下方
不设回复后可见,拒绝白嫖,还请回复,大佬勿喷
教程开始:
首先使用arsc编辑器,搜索外国软件关键词"subscription",成功找到类似"subscription_expired"订阅过期的疑似目标字符串
dex中常规搜索此id未找到结果(只能找到R.id的映射),推测是使用直接引用,故直接搜索"subscription_expired"
找到类UserAccountModel中getSubscriptionInfo方法,转成Java并观察if语句
发现多处this.application.getPersistance().getSubscriptionType(),由英文得此处大概率为关键代码
回到Smali,跳转到getSubscriptionType(找到方法名,长按选择跳转)
得到的是接口类,选择上方指南针,长按选择“查找重写方法”
找到具有实际意义的Persistance.getSubscriptionType()
此处可选择查找调用处,看此方法需要满足什么条件可使程序进入VIP状态,题主使用了第二种方法
因为此类疑似关键工具类,此方法返回的String又不方便确定数值,故查看此类中是否存在其他返回Boolean的方法
这边找到的是isWebSubscribed()和getGooglePlaySubscriptionValid(),实际本软件还可通过更改其他方法破解
进入Smali编辑,令其返回true (新手可直接复制以下内容,覆盖原方法)
.regusters 2
const/4 v0, 0x1
return v0
回编译保存,成功破解,点击订阅,显示“一次购买”

方法, 的是

hgwlh   

学生福利,楼主太棒了
shaic   

Groza   

感谢分享,积累一下经验
reidentify   

感谢大佬。。
pgfj18   

谢谢你的分享
miracleshots   

感谢分享!!!!
mc224301   

高数支配的噩梦!
13514391179   

楼主很棒!正好用得到 期待一个wolfram alpha
您需要登录后才可以回帖 登录 | 立即注册

返回顶部