逆向破解MacOS App

昨天在逛的时候,无意间看到一款还算好用的MacOS App,Manico,在Mac App Store上可以免费下载。也可以免费使用。就是用几次就会弹出一个感谢试用,要继续使用的话,就要内购,否则这个框就会经常谈出来。

App Store,下载下来,后面是需要内购的
Manico

使用几次之后就会弹出内购弹框


内购

好了进入今天的正题,最近手头比较紧张,舍不得花钱(¥25)
我们的目标是不花钱把这个框给去掉,正常使用。

前段时间刚学习了一下逆向,今天来尝试一下,我本来以为这个跟iOS App一样,如果更改了.app包里面的文件之后,App会运行不了,要进行重签名的,后面发现不用重签名,修改了二进制文件之后,重新替换一下就行了,恩,比较简单。

我原本的思路:

  1. 打开包,获取可执行文件(Mac-o)
  2. class-dump,获取可执行文件的头文件
  3. 找到上面试用弹框的h文件
  4. hook一下弹出这个Dialog的方法
  5. 得到新的可执行文件,放回原来的位置
  6. 把整个.app重签名一下,运行(后面发现根本不需要这一步)

按照这个这个步骤执行下去,发现到第二步的时候就失败了 %>_<%。因为这个app里面有的或者都是用Swift写的,class-dump失败了,后面再查看汇编的时候,发现确实有Swift文件


class-dump

好吧,进行到这里感觉干不下去了。。。。。准备放弃了
后面抱着学习的态度,想着去看看他的汇编代码也不错,就在网上下载了一个软件


hopper
第一步:

直接就把刚才从.app中拷贝出来的Mac-o文件拖到这个app里面欣赏欣赏。

直接OK

大学学的汇编都还给老师了

在左边发现,可以看到类名,方法名
类名

第二步:

然后就突然的灵光一现,既然是要我内购(IAP),那肯定是有内购的相关方法的,恩,内购单词咋写来着。。。pur? purchase。。
然后就是一顿搜索

purchase

然后就是观察一些方法了,会发现有一个叫doShowPurchaseDialog的方法,差不多应该就是每次弹出上面的那个试用的弹框的方法了。
doShowPurchaseDialog

第三步:

修改这个方法的执行,我们要的是不弹出这个框,所以直接把这个方法的执行改成return就行了。
选择Modify-->Assemble Instruction,在里面输入retreturn的汇编代码)

ret

第四步:

把修改了的Mac-o文件保存为新的可执行的文件
选择File-->Product New executable... -->导出


导出
第五步:

把新导出的可执行文件替换回原来的位置(Content->MacOS),运行App,这个试用弹框就不会在出来了(节省25大洋)

还有另外一种方法,可以参考这篇文章

慢慢来,一步一个巴掌印~~~

你可能感兴趣的:(逆向破解MacOS App)