佐糖1.7.2免登录会员以及解锁全ai功能
注:本人也是萌新,只会简单的hook,所以拿论坛里发过的能破解的app练手app:佐糖1.7.2(百度搜索下载)
工具:雷电模拟器,frida,jadx
方法:hook相关代码
步骤:
一:免登录
1.直接搜islogin(一般都是islogin,checklogin,is_login,check_login等等),一开始也走了不少弯路,最后才发现真正的登录(如果你有经验就会发现sb这个东西,我已经好几次碰到将这个作为存放信息的对象名),直接双击进入第一个
2.仔细观察可以看到sb2就是存放一些信息的地方,然后再将islogin、cancutout、userId...等和它们的值一起放进去;aVar.a().f()的值就是判断是否登录的关键;直接双击f()跟进看看
3.可以看到f()方法返回的就是布尔类型的值,要么真、要么假;只要我们让它的值一直为真,那么我们就实现了免登录(另外两个其实也是调用f()来判断是否登录)
4.编写代码并测试效果,成功实现免登录(f()这个方法就是实现免登录的关键,app就是根据f()的返回值来判断是否登录)
二:解锁会员
1.直接搜vipinfo(你要问我为啥搜这个,因为我isvip、getvip、setvip、checkvip....等等都搜过了,并且研究了很久发现有vipinfo,它翻译过了就是”会员信息“);圈出来的两个都可以用来破会员,听我分析就知道了
2.双击跟进throw new IllegalStateException("Get vipInfo is null.");观察整个类会发现这其实是用Kotlin编写的,用来处理会员逻辑的;其中最重要的就是public wd.d f10848b;和public final boolean f() ;wd.d里面存放了会员信息,f()就是用来判断是否是会员;而f()主要就是判断会员信息是否为空,只要会员信息不为空,它就是会员
3.进入wd.d查看会员信息,这时你就会发现为啥我会在搜vipinfo的时候说下面那个也可以,因为这就是下面那个;在这里,我们只要任意修改其中一个信息就能实现会员,因为整个会员的判断就是判断会员信息里有没有东西;我们直接修改d10.append(", aiQuota=");d10.append(this.f17849o);中f17849o的值,它表示ai算粒
4.可以发现a()就是返回f17849的值;我们只要让它返回一个比0大的数就行
5.编写代码并测试效果,成功实现会员,并且ai算粒变成了9999999999(这个无效,因为算粒最终是在服务器上检测的)
三:解锁全ai功能
1.其实这个是我在研究会员的时候搜批量抠图发现的;如果不是大陆的就会解锁三个ai功能
2.直接双击isMainland()跟进,发现是个布尔,直接hook让它返回false就行
3.编写代码并测试效果,成功解锁全部功能
总结:这个app确实比较难,研究了两天才大致搞清楚一点,中间绕了不少弯,还好坚持下来了,解锁的会员功能都可以随便用,除了算粒,它是通过服务器验证的,本地修改只能看看,感谢支持,大家互相交流学习
很好,成品呢?哪位大佬发一个。 sabirjan2023 发表于 2024-7-30 11:56
我的意思是:用户是否开通会员服务器上都不检测,神麽APP...
正常的app开通会员肯定都是服务器完成记录的 但是app的会员功能并不是每次都要去访问服务器来验证你是不是会员 一般来说都是先从服务器读取你的会员信息然后存储到本地 然后app就根据本地的存储来判断你是不是会员 谢谢楼主,学习一下 谢谢楼主,先收藏了,有时间学习思路 感谢分享,电脑端一样吗? 服务器端不检测吗,AI生成肯定走 API接口吧。。。。
服务器端都不检测,那这个APP走不了远了。。。 学习一下,感谢分享 软件很实用,都是一些常用的功能,虽然你是新手,但我看起来还是厉害的样子,赞! 夏驰 发表于 2024-7-29 13:45
感谢分享,电脑端一样吗?
电脑端 你说的是网页吗 sabirjan2023 发表于 2024-7-29 13:56
服务器端不检测吗,AI生成肯定走 API接口吧。。。。
服务器端都不检测,那这个APP走不了远了。。。
检测 ai生成需要算粒 算粒就是服务器检测的