高数神器Symbolab逆向教程(新手向)
搜索全网发现没人对此软件逆向做教程,即使有也存在较高阅读权限,故自己花时间摸索后将全过程记录于下方不设回复后可见,拒绝白嫖,还请回复,大佬勿喷
教程开始:
首先使用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
回编译保存,成功破解,点击订阅,显示“一次购买” 学生福利,楼主太棒了 <iframe src="//player.bilibili.com/player.html?aid=246819737&bvid=BV1nv411Y7t9&cid=304422034&page=2" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> 感谢分享,积累一下经验 谢谢你的分享 感谢分享!!!! 高数支配的噩梦! 楼主很棒!正好用得到 期待一个wolfram alpha