吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9926|回复: 57
收起左侧

[MacOS逆向] 手动破解moom,绕过Mac上moom的试用次数限制

  [复制链接]
LeadroyaL 发表于 2019-11-13 14:50
本帖最后由 LeadroyaL 于 2019-12-26 19:19 编辑

Moom 介绍

Moom 是 Mac 上一款很常用的分屏小工具,主要就是为了把窗口靠左、靠右、铺满等操作,更多详情见官网的介绍:https://manytricks.com/moom/

它本身是一款收费软件,但是在试用期内可以无限制使用,之前用的是网上下载的破解版的 Moom,更新了之后就进入试用期了,不敢用网上其他人破解的版本,怕安插后门,于是自己修改了一下,挺简单的,改几个字节就可以。

本文使用的版本号是:Version 3.2.16 (3277)

操作

确定函数范围

先搜字符串,试用期的计算是试用Moom的功能100次,有文本可以搜,grep "Mooms remaining" * -R,发现是在/Applications/Moom.app/Contents/MacOS文件里。

超过100次之后,每次使用会弹出如下窗口,尝试搜字符串"Your 100-use trial limit has been reached. In order to continue using Moom, please buy a license.",也在这个文件里

WX20191113-142918@2x.png

确定校验函数

恰好上文提到的这两个字符串都出现在这个函数里
char __cdecl -[PMMainController updateReminderButtonWithIncrementedUseCounter:applyRefractoryPeriod:showLicense:showAlert:](PMMainController *self, SEL a2, char a3, char a4, char a5, char a6)

我看不懂objc写的程序,大致的逻辑是,检验试用次数,弹窗,最后返回一个0 或 1,看起来返回0就是校验通过的意思。(如果不是,就试试改成1 行不行,还好我改成 0 就可以用了)

111.png

修改为永远返回0

中间的逻辑太复杂了,直接从函数开头跳到函数结尾,在结尾处 xor eax,eax就行。

__text:00000001000180B8                 push    rbp
__text:00000001000180B9                 mov     rbp, rsp
__text:00000001000180BC                 push    r15
__text:00000001000180BE                 push    r14
__text:00000001000180C0                 push    r13
__text:00000001000180C2                 push    r12
__text:00000001000180C4                 push    rbx
__text:00000001000180C5                 sub     rsp, 58h
.......
__text:00000001000188E3                 add     rsp, 58h
__text:00000001000188E7                 pop     rbx
__text:00000001000188E8                 pop     r12
__text:00000001000188EA                 pop     r13
__text:00000001000188EC                 pop     r14
__text:00000001000188EE                 pop     r15
__text:00000001000188F0                 pop     rbp
__text:00000001000188F1                 retn

这里是函数开头结尾保护寄存器的代码,不可以乱改,容易出问题。把00000001000188E3前的最后一条汇编改成xor eax,eax,把00000001000180C5后的第一条汇编改成jmp指令,就能完成我们的目标。

最终汇编的效果是:

__text:00000001000180B8                 push    rbp
__text:00000001000180B9                 mov     rbp, rsp
__text:00000001000180BC                 push    r15
__text:00000001000180BE                 push    r14
__text:00000001000180C0                 push    r13
__text:00000001000180C2                 push    r12
__text:00000001000180C4                 push    rbx
__text:00000001000180C5                 sub     rsp, 58h
__text:00000001000180C9                 jmp     loc_1000188E0
.........
__text:00000001000188E0                 xor     eax, eax
__text:00000001000188E2                 nop
__text:00000001000188E3                 add     rsp, 58h
__text:00000001000188E7                 pop     rbx
__text:00000001000188E8                 pop     r12
__text:00000001000188EA                 pop     r13
__text:00000001000188EC                 pop     r14
__text:00000001000188EE                 pop     r15
__text:00000001000188F0                 pop     rbp
__text:00000001000188F1                 retn

222.png

最终的diff是:(以Version 3.2.16 (3277)为准)

00180C9:
45 89 cc 45 89 -> e9 12 08 00 00
00188e0:
0f be c0 -> 31 c0 90

最终效果:完全正常使用(我已经使用了一个月了,没有任何问题)

2019年11月29日17:52:47 更新:刚刚偶尔发现,本文其实是不完美的,因为测试时候 SIP 是关着的就没注意到这个细节,只有关闭 SIP 后才能成功,否则如果文件被修改了,Mac 操作系统会拒绝执行它。【强烈建议不要学我,请开启 SIP】

2019年12月04日17:45:29 再次更新:解决SIP 引起的无法篡改,额外patch 2 个字节

首先有一个命令,用来移除签名字段。注意这里移除的是App的签名,不仅仅是单独可执行文件的签名。

codesign --remove-signature Moom.app

之后执行,Moom会报错,如图,说已经被篡改请不要使用。
QQ20191204-174749@2x.png

对此,我们去搜索相关的内容,找到了如图的代码,看起来是先弹框然后退出。
QQ20191204-174919@2x.png

外层是由一个if-else控制的,我们把跳转语句nop 掉,就不会走到这个函数了,对应的 patch 位置是:

00DCD1
74 0f -> 90 90

完美收工!



整个Moom.app太大了无法上传,仅上传原本的文件Moom的二进制文件 Moom.zip (344.77 KB, 下载次数: 54) ,完整的Moom.app可以在官网下载到:https://manytricks.com/download/_do_not_hotlink_/moom3216.dmg

免费评分

参与人数 14威望 +1 吾爱币 +16 热心值 +13 收起 理由
yang.424 + 1 用心讨论,共获提升!
但塘春 + 1 + 1 我很赞同!
风度男子 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
icode2019 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bobbybg + 1 + 1 用心讨论,共获提升!
a091a + 1 热心回复!
1or0y1 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
dioxide + 1 + 1 谢谢@Thanks!
钱德宾 + 1 用心讨论,共获提升!
xjaiqq + 1 + 1 热心回复!
zlw85747 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
三木零 + 1 + 1 热心回复!
zhamg520 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Coolman 发表于 2019-11-15 14:27
端倪 发表于 2019-11-13 16:56
有没有Mac版的图片处理软件,最好跟Windos的画图软件一样操作,因为我找了很多软件,都没那个感觉,谢谢了

Paintbrush 还行,感觉略笨拙一些
端倪 发表于 2019-11-15 15:42
Coolman 发表于 2019-11-15 14:27
Paintbrush 还行,感觉略笨拙一些

谢谢,我试试,希望不是跟Pixelmator一样就好了
ankangtai 发表于 2019-11-13 14:53
wangleilei1226 发表于 2019-11-13 14:54
顶,大神就是多
星海you云 发表于 2019-11-13 14:59
不明觉厉
liu114685 发表于 2019-11-13 15:08
默默的膜拜大神
夏之天狼星 发表于 2019-11-13 15:20
不明觉厉,也米有MAC帮顶
三木零 发表于 2019-11-13 15:24
搞破解好像就是看懂他逻辑的吧,自身的逻辑思维也要强
SCL 发表于 2019-11-13 15:41
厉害了。。。。
minite 发表于 2019-11-13 15:50
对于我这种小白难度还是太大了
ljw19891989 发表于 2019-11-13 16:15
学习了,编程还是我的弱项,哎
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-19 22:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表