FauxPas试用时间破解

以下内容仅用于学习逆向工程。用到的工具有Hopper,lldb。

FauxPas是一款非常不错的项目检查工具。之前写过用FauxPas找到潜在Bug,介绍了FauxPas的功能。在使用过期后,尝试hack一下。

绕过证书窗口

使用的是1.4版本的FauxPas,先拖入Hopper,找到方法-[XAAppDelegate applicationDidFinishLaunching:]。读汇编代码到00000001000043cc时,可以看到一个条件跳转,后面的方法有 @selector(enterLockdownMode)@selector(trialNagVC) 。那么看起来这里如果不跳转会跳出试用失败窗口,我们修改成


00000001000043cc jmp 0x10000446b


这时候运行起来,打开了程序的主窗口,但是无法使用,菜单栏的打开是禁用的。

解锁UI

这个问题解决起来花费的时间比较多。将AppDelegate里的调用去掉了,UI依然未解锁。最后想到了直接去搞getter方法。找到了方法-[XAAppDelegate userInterfaceEnabled]:,这个方法里唯一的跳转,通过lldb调试发现走到了跳走的分支。我们把跳转禁用,UI就可以使用了。


0000000100004e56 nop


阻止Sparkle弹窗

现在可以使用了,但是每次打开应用都会提示Insecure update error!。可以从弹窗中读到使用了Sparkle来做程序升级。在Github上的项目里搜索这段错误代码,找到所在的类SUUpdater。在代码里找到调用的地方


0000000100004cbd         mov        rdi, qword [ds:objc_cls_ref_SUUpdater]


lldb调试也证实这里会在启动时被调用,随后弹窗。然后让后面调用的逻辑失效。


0000000100004ccb nop


消除窗口过期提示

暂时还不知道怎么修改静态字符串。找到了加载的地方,阻止跳转到添加提示的代码段。


000000010010aa71 nop


解除试用倒计时

至此基本完成了,唯一的遗憾是打开项目开始检查时会有15秒的倒计时,暂时还没有找到hack的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值