本帖最后由 Soft98 于 2023-7-27 07:12 编辑
Contexts For Mac无限试用
0x01 定位关键点
License点开会有提示字样,关键字:days of trial left
hopper打开程序,搜索关键字,定位到CTApplicationController的trialStatus方法
根据上图的逻辑,可以看到是从rax中取时间,然后从这个时间开始计算剩余的天数,然后进入[self trialStartDate]看一下
可以看出来是从本地文件中取CTStartDate2 的内容,没有什么校验机制,所以我们需要找出这个文件位置,NSFileManager这个类就是操作文件的,参数内容也是固定的,所以我们可以attach进程之后直接调用相同的方法就可以知道具体的文件目录
然后文件名可以看到.%@.plist 的字样,这个后缀一般就是属性文件,可以确定是格式化输出文件名,结合上面的目录就可以得到具体位置
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);
0x03 Crack
执行之后可以看到上面的输出,由此确定具体的文件是:~/Library/Application Support/.com.contextsformac.Contexts.plist
这是一个隐藏文件,打开之后就会看到内容,将时间值往后改就可以了,这样就会将试用到期时间从未来的时间开始算
0x04 参考
|