破解过程(本教程使用的MWeb版本为3.3.4)
根据激活弹窗,可以看出用的第三方库DevMateKit。
Xcode添加符号断点
activationController:activationStepForProposedStep:
通过调用栈,往上找到-[AppDelegate applicationDidFinishLaunching:] 0x000000010010c1cf
里面调用了setupTimeTrial:withTimeInterval:
往上看进入这个分支的条件,找到了判断是否激活的函数:1002aac70
。
分析函数体
可以知道这是DevMateKit
的这个函数:
BOOL DMKIsApplicationActivated(DMKevlarError *outKevlarError);
实施破解
把error置空,return YES:
sub_1002aac70:
00000001002aac70 cmp rdi, 0x0
00000001002aac74 je loc_1002aac7d
00000001002aac76 mov qword [rdi], 0x0
loc_1002aac7d:
00000001002aac7d mov rax, 0x1
00000001002aac84 ret
; endp
重签名,破解成功!