昨天在逛的时候,无意间看到一款还算好用的MacOS App,
Manico
,在Mac App Store上可以免费下载。也可以免费使用。就是用几次就会弹出一个感谢试用,要继续使用的话,就要内购,否则这个框就会经常谈出来。
App Store,下载下来,后面是需要内购的
使用几次之后就会弹出内购弹框
好了进入今天的正题,最近手头比较紧张,舍不得花钱(¥25)
我们的目标是不花钱把这个框给去掉,正常使用。
前段时间刚学习了一下逆向,今天来尝试一下,我本来以为这个跟iOS App一样,如果更改了
.app
包里面的文件之后,App会运行不了,要进行重签名的,后面发现不用重签名,修改了二进制文件之后,重新替换一下就行了,恩,比较简单。
我原本的思路:
- 打开包,获取可执行文件(Mac-o)
- class-dump,获取可执行文件的头文件
- 找到上面试用弹框的h文件
- hook一下弹出这个Dialog的方法
- 得到新的可执行文件,放回原来的位置
- 把整个
.app
重签名一下,运行(后面发现根本不需要这一步)
按照这个这个步骤执行下去,发现到第二步的时候就失败了 %>_<%。因为这个app里面有的或者都是用Swift写的,class-dump失败了,后面再查看汇编的时候,发现确实有Swift文件
好吧,进行到这里感觉干不下去了。。。。。准备放弃了
后面抱着学习的态度,想着去看看他的汇编代码也不错,就在网上下载了一个软件
第一步:
直接就把刚才从.app
中拷贝出来的Mac-o文件拖到这个app里面欣赏欣赏。
在左边发现,可以看到类名,方法名
第二步:
然后就突然的灵光一现,既然是要我内购(IAP),那肯定是有内购的相关方法的,恩,内购单词咋写来着。。。pur? purchase。。
然后就是一顿搜索
然后就是观察一些方法了,会发现有一个叫
doShowPurchaseDialog
的方法,差不多应该就是每次弹出上面的那个试用的弹框的方法了。
第三步:
修改这个方法的执行,我们要的是不弹出这个框,所以直接把这个方法的执行改成return
就行了。
选择Modify-->Assemble Instruction,在里面输入ret
(return
的汇编代码)
第四步:
把修改了的Mac-o文件保存为新的可执行的文件
选择File-->Product New executable... -->导出
第五步:
把新导出的可执行文件替换回原来的位置(Content->MacOS
),运行App,这个试用弹框就不会在出来了(节省25大洋)
还有另外一种方法,可以参考这篇文章
慢慢来,一步一个巴掌印~~~