前言

平时我们开发过程中,难免会要进行真机的调试。有没有一款应用能让真机和模拟器一样方便使用呢? 我在搜索了一番后,发现一款应用叫 Wormhole ,免费使用3天,后续升级Pro 45元。

破解

方式1

本想通过抓包分析下应用协议,然后进行拦截替换,但是发现协议包都是加密的,而且是双向证书认证,无法进行中间者模式攻击。该方式在尝试后放弃。

方式2

直接进行硬核破解,修改汇编指令集,替换可执行2进制文件

第一步

安装相关程序包 Wormhole ,将程序包安装到 Applications

第二步

将 /Applications/Wormhole.app/Contents/MacOS/Wormhole 二进制文件拖到 Hopper

截屏2021-08-18 下午2.04.02

选择 Debug -> Select Debugger

截屏2021-08-18 下午2.08.43

启动应用后,我们可以通过LLDB 或者 Hopper工具 调试挂载进去。接下来我们分析汇编的一些代码逻辑,我们省略中间过程直接讲结果。

截屏2021-08-18 下午2.16.20

搜索关键字 active , 双击打开 CheckActiveResponse函数

截屏2021-08-18 下午2.18.21

if (*(int32_t *)(rsi + 0x10) == 0xc8) //判断返回Code是否是200
 if (ChoosePlatformWidget::UpdateProState(rdi) == 0x0) //判断该用户状态是否 激活状态

所以我们只需要修改下面这个判断,让他永久成立即可。

截屏2021-08-18 下午2.24.02

找到对应的汇编代码,修改 je => jne ,然后重新生成二进制文件,替换原先的文件。