0x01 定位关键点
License点开会有提示字样,关键字:days of trial left
image-20221212174856312.png (92.92 KB, 下载次数: 0)
下载附件
2023-2-10 18:51 上传
hopper打开程序,搜索关键字,定位到CTApplicationController的trialStatus方法
image-20221212175050662.png (477.18 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
image-20221212175242402.png (162.09 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
根据上图的逻辑,可以看到是从rax中取时间,然后从这个时间开始计算剩余的天数,然后进入[self trialStartDate]看一下
image-20221212180118134.png (512.39 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
可以看出来是从本地文件中取CTStartDate2的内容,没有什么校验机制,所以我们需要找出这个文件位置,NSFileManager这个类就是操作文件的,参数内容也是固定的,所以我们可以attach进程之后直接调用相同的方法就可以知道具体的文件目录
image-20221212180344876.png (65.23 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
然后文件名可以看到.%@.plist的字样,这个后缀一般就是属性文件,可以确定是格式化输出文件名,结合上面的目录就可以得到具体位置
image-20221212181534703.png (164.09 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
0x02 hook获取文件地址
let val1 = ObjC.classes.NSFileManager.defaultManager().URLsForDirectory_inDomains_(0xe,0x1);
console.log(val1);
let val2 = ObjC.classes.NSBundle.mainBundle().bundleIdentifier();
console.log(val2);
image-20221212182619789.png (64.79 KB, 下载次数: 0)
下载附件
2023-2-10 18:52 上传
0x03 Crack
执行之后可以看到上面的输出,由此确定具体的文件是:~/Library/Application Support/.com.contextsformac.Contexts.plist
这是一个隐藏文件,打开之后就会看到内容,将时间值往后改就可以了,这样就会将试用到期时间从未来的时间开始算
image-20221212182935134.png (130.46 KB, 下载次数: 0)
下载附件
2023-2-10 18:53 上传
0x04 参考