-
-
[原创]【MacOS破解】破解市场屏保区Top1的软件
-
发表于:
2021-12-16 17:05
95766
-
[原创]【MacOS破解】破解市场屏保区Top1的软件
PS:Mac区的帖子太少了。
我最近下载了一个屏保软件,据说Mac屏保软件中排行Top 1的,最重要素材真的很好,
可惜需要付费才能下载更多素材。
如图,(支持正版,本文章仅供学习交流使用)点击下载会弹出购买窗口,
因为我已经破解完成没办法打开购买窗口,所以不能截图了。
界面功能比较简单,一个付费、一个素材库列表,未购买下载素材会提示付费。
所需工具:
1. HopperDisassember
2. Frida
3. class-dump
分析篇:
整体思路:
为了保证软件响应速度,一般来讲会员状态都会写入在本地,假如我们能找到软件写用户状态的地址,就可以完成复购校验了。
UI分析:
支付窗口有两个按钮,新用户购买和老用户恢复购买,这两个都可以作为我们的切入点,我选择的是”恢复购买“作为切入点,找到软件的二进制文件,所在路径:
/Applications/Live Wallpaper.app/Contents/MacOS/Live Wallpaper
预先通过class-dump -H Live Wallpaper 生成头文件,以备不时之需。
拖入到HopperDisassember中,用采用字符串搜索,"恢复购买“,发现找不到,猜测该软件采用了本地语言包的方式,进入到资源目录:/Applications/Live Wallpaper.app/Contents/Resources,
本地有一个文件:zh-Hans.lproj,通过名字判断出这是汉化包,进入到页面搜索:find ./ -name '*.strings' -print|xargs grep '恢复购买'
汉化包连类名都我们标记出来。
恢复的英文是:restore,这个函数应该是恢复购买的逻辑了,点击进去
查看反汇编代码:
通过汇编代码,知道重点在SiShiPurchaseHelper:startRestore 这个方法中,二话不说,进入到代码区,上面的汇编代码晦涩难懂,HopperDisassmber可以给我们生成伪代码,位置如下图:
这样就直观多了:
这里发现代码没办法跟进去了,通过查阅资料,SKPaymentQueue是一个APL在Mac下支持的lib库用于桌面的支付操作,所以一定有一个Delegate回调方法用于处理支付的校验,怎么找呢?
我们回到刚才生成的头文件文件夹下,执行Linux命令: ls *SK*,意思是查找所有包含SK字符串的头文件名:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-12-22 10:46
被Mr.梵高编辑
,原因: 修改部分文字错误