首页
社区
课程
招聘
[原创]iOS平台几个福利app的破解(Artibee/AcgArt、Acg Stay、Cosplay)
发表于: 2019-2-13 02:59 62744

[原创]iOS平台几个福利app的破解(Artibee/AcgArt、Acg Stay、Cosplay)

2019-2-13 02:59
62744

早在13年就购买了Acgart的正版授权,后来作者将acgart下架,重上了一款换皮应用Artibee,内购需要重新购买。

因为作者没有完善的老用户补偿方案,遂不再付费。前段时间分手之后,时间突然多出来许多,管不住双手的我总是要找点事情做。

于是乎,本着学习为主的精神,对几款福利软件动手做了破解。

按照惯例,将可执行文件拖进ida,应用停更的比较老,没有上最新的混淆手段,比较好分析。

Artibee只发布过free版本,需要内购升级成完全版才能保存图片和看高分辨率图片,因此第一步需要破解成完全版。

根据应用使用逻辑,在点击保存按钮时,会弹出需要内购完全版页面。在字符串中查找到showPurchaseController。

查看交叉引用的方法SlideshowViewController clickSaveButton

f5一下,很清晰的看到逻辑。点击保存按钮后,依次校验/Documents/db/目录下的两个sqlite文件。

sqlite文件的文件名是gtxpqmrldu和ygshvqrrgb输出的结果,长度为40位。

逻辑仅校验文件是否存在,而不校验文件内容,因此可以看做是伪装成sqlite的授权文件。

                         gtxpqmrldu


                          ygshvqrrgb

观察gtxpqmrldu和ygshvqrrgb的逻辑可知,输出均为openudid的变形,

首先将40位的udid在13位/20位的位置切割,前后部分调转顺序之后拼接;

然后做字符替换操作:一个是将a替换成7,4替换成m;另一个是将9替换成f。

替换操作使用了componentsSeparatedByString和componentsJoinedByString方法,前者为按参数分割并删除分隔符,

后者为连接字符串并设置参数为连接符,实际操作为替换字符串。

自行根据openudid生成相应的授权文件,既可破解Artibee的fullversion和使徒模式。

老版本的r18内容需要修改plist文件中的ispro值为true,新版经目测在init的时候检查了ispro的值,

建议顺手改一下这里。plist的位置为应用对应沙盒的\Library\Preferences\work.xukeliapp.artibee.plist。

顺便一提,不知道自己设备openudid的话,可以直接在上面提到的plist中找到。


破解效果见上图,内页图过于黄暴,不予展示。

ACG Stay 和 CosPlay是iOS上另外两款非常实用的福利软件。目前均已下架,但是可以在pp助手上下载。

惯例拖进ida。因为这两款应用是同一作者,破解思路也完全一样,因此合并在一起。

找入手点,先将设备语言更改为英文。随意收藏几张图片后,提示需要vip才可以收藏14张以上的图片。


在function中搜索vip

猜想第二个函数是右图中弹窗的构造函数

点进去验证了我的猜测,确实如此。那第一个函数就是判断是否有vip授权的函数了么?

分析收藏按钮的具体实现代码,确实是通过检测isVipUser的值来确定是否可以收藏超过14张图片。继续分析isVipUser函数。

isVipUser函数的返回值实际上是isNoAdBought的返回值,继续跟进去

isNoAdBought是检测是否内购的具体功能函数,这里通过hook把isNoAdBought的返回值改为true解决问题。

有的同学可能会提问,为什么不直接修改isVipUser的返回值,而去修改isNoAdBought的返回值?


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-2-14 12:07 被myhloli编辑 ,原因: Artibee的算法分析漏了字符串分割颠倒顺序再拼接的过程,已补上
上传的附件:
收藏
免费 4
支持
分享
打赏 + 10.00雪花
打赏次数 2 雪花 + 10.00
 
赞赏  zybkqy   +5.00 2019/04/26
赞赏  Editor   +5.00 2019/02/14 感谢分享~
最新回复 (16)
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
建议图片存在论坛本地一份,现在图片全是外链“https://blogcdn.myhloli.com/wp-content/uploads/2019/02/image-15-1024x618.png”,时间长了,会丢失。
注:一般的链接,论坛编辑器会自动本地化,但有些URL,由于一些限制,不能自动本地化。这个URL就是这个情况。
最后于 2019-2-13 10:08 被kanxue编辑 ,原因:
2019-2-13 10:07
0
雪    币: 386
活跃值: (98)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
kanxue 建议图片存在论坛本地一份,现在图片全是外链“https://blogcdn.myhloli.com/wp-content/uploads/2019/02/image-15-1024x618.png”, ...
已经把外链图片全部本地化
2019-2-13 10:51
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
myhloli 已经把外链图片全部本地化[em_84]
2019-2-13 11:16
0
雪    币: 6266
活跃值: (1276)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5

.

最后于 2020-5-25 13:59 被xmhwws编辑 ,原因:
2019-2-13 17:37
0
雪    币: 0
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我Android被抛弃了吗???
2019-2-13 22:06
0
雪    币: 5596
活跃值: (2173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
第一个app算法没看懂, ba54574f64cd455b2cbd61f32cba871eafcb740c计算结果是啥?

算出来了,还测试通过了
55b2cbd61f32cb7871e7fcb7m0cb75m57mf6mcdm.sqlite

61f32cba871eafcb740cba54574f64cd455b2cbd .sqlite

需要开始锁,隐藏菜单才会出现。

最后于 2019-2-14 11:49 被wanttobeno编辑 ,原因:
2019-2-14 10:23
0
雪    币: 386
活跃值: (98)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
wanttobeno 第一个app算法没看懂, ba54574f64cd455b2cbd61f32cba871eafcb740c计算结果是啥?
写的时候忘记了一步,从第13位切割/从第20位切割,然后颠倒顺序之后再连接上。最后算出来是你那个结果。
最后于 2019-2-14 12:01 被myhloli编辑 ,原因:
2019-2-14 10:39
0
雪    币: 386
活跃值: (98)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
无知的瑜 我Android被抛弃了吗???
安卓直接装个ehview或者哔卡不也挺好的吗
2019-2-14 10:40
0
雪    币: 123
活跃值: (1675)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
2019-2-14 11:29
0
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习了!真的实用!
2019-3-6 18:01
0
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
那么问题来了,acgstay无法保存图片咋办
2019-4-14 15:32
0
雪    币: 386
活跃值: (98)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
mb_lfpxpdbe 那么问题来了,acgstay无法保存图片咋办
你装了我附件里的deb插件就能保存了啊
2019-4-15 17:57
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
myhloli 你装了我附件里的deb插件就能保存了啊
大神,能加一下我Q Q:5177477吗?有编程的事情求助,自己实在不会,谢谢
2019-4-18 21:18
0
雪    币: 189
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
感谢大佬分享!!!
2019-4-23 22:21
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
wanttobeno 第一个app算法没看懂, ba54574f64cd455b2cbd61f32cba871eafcb740c计算结果是啥?算出来了,还测试通过了55b2cbd61f32cb7871e7 ...
ios12.4越狱,artibee1.3.1,生成变形后的openuid,plist也将isPro改为YES,但是没有开启完全版本。有个现象就是plist在每次打开Artibee的时候都会内容都会重置
2019-10-15 17:17
0
游客
登录 | 注册 方可回帖
返回
//