Last login: Tue Aug 18 10:50:38 on ttys004 Welcome to fish, the friendly interactive shell ⋊> ~ lldb /Volumes/Wormhole/Wormhole.app/Contents/MacOS/Wormhole 10:54:05 (lldb) target create "/Volumes/Wormhole/Wormhole.app/Contents/MacOS/Wormhole" Current executable set to '/Volumes/Wormhole/Wormhole.app/Contents/MacOS/Wormhole' (x86_64). (lldb) run Process 24114 launched: '/Volumes/Wormhole/Wormhole.app/Contents/MacOS/Wormhole' (x86_64) 2020-08-18 10:54:13.903662+0800 Wormhole[24114:471239] flock failed to lock maps file: errno = 35 2020-08-18 10:54:13.904696+0800 Wormhole[24114:471239] flock failed to lock maps file: errno = 35 2020-08-18 10:54:14.518369+0800 Wormhole[24114:471199] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x124baea40> F8BB1C28-BAE8-11D6-9C31-00039315CD46 2020-08-18 10:54:14.565026+0800 Wormhole[24114:471199] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine 2020-08-18 10:54:14.565509+0800 Wormhole[24114:471199] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine 2020-08-18 10:54:14.565859+0800 Wormhole[24114:471199] HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine Process 24114 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00007fff6efb3dfa libsystem_kernel.dylib`mach_msg_trap + 10 libsystem_kernel.dylib`mach_msg_trap: -> 0x7fff6efb3dfa <+10>: retq 0x7fff6efb3dfb <+11>: nop
libsystem_kernel.dylib`mach_msg_overwrite_trap: 0x7fff6efb3dfc <+0>: movq %rcx, %r10 0x7fff6efb3dff <+3>: movl $0x1000020, %eax ; imm = 0x1000020 Target 0: (Wormhole) stopped. (lldb) b 0x10001aa60 Breakpoint 1: where = Wormhole`ChoosePlatformWidget::CheckActiveResponse(ResponseData*) + 736, address = 0x000000010001aa60 (lldb) c Process 24114 resuming Process 24114 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x000000010001aa60 Wormhole`ChoosePlatformWidget::CheckActiveResponse(ResponseData*) + 736 Wormhole`ChoosePlatformWidget::CheckActiveResponse: -> 0x10001aa60 <+736>: testb %bl, %bl 0x10001aa62 <+738>: je 0x10001aaf5 ; <+885> 0x10001aa68 <+744>: leaq -0x60(%rbp), %rdi 0x10001aa6c <+748>: leaq -0x98(%rbp), %rsi Target 0: (Wormhole) stopped. (lldb) re read bl bl = 0x00 (lldb) re write bl 1 (lldb) c Process 24114 resuming 2020-08-18 10:55:41.952721+0800 Wormhole[24114:471199] Current os version:10.15.5
发现破解成功,pro功能能用了,手机验证一下,没问题
所以要想跳转到成功,反转下跳转指令就可以了,修改汇编指令,je替换为jne
由于hopper是demo版本,不能输出二进制,不过我们能查看修改内容,红色部分就是。
使用hex fiend进行二进制修改,将8D 00 00 00 48 8D 7D A0 48 8D B5 68 FF FF FF E8 74 15 0D 00 48 8D 3D 3D AF F7 00 BE 07 00 00 00前面的值修改成85即可