介绍
Interface Inspector 本身是一个逆向的辅助工具,可以attach到正在执行的应用上,查看界面元素在内存中的地址。
其中用到了第三方的框架mach_inject
破解
这个程序本身很好绕过License验证机制。只需要修改两个地方即可。
第一个地方便是需要绕过applicationWillFinishLaunching中的codeSignState的验证,只要将返回值的判断从0x2修改为0x1即可。
第二个地方是绕过注册registerLicenseWithName函数中的逻辑。将原来的je修改为jne就可以了。
修改完成后通过Hopper生成新的二进制程序,代码签名清除掉就可以了。
Bug修复
修复完成后就可以直接运行了,只不过在Attach程序的时候会报错。原因就是因为这个软件使用了mach_inject_bundle.framework框架,macOS 10.12上__pthread_set_self函数修改为了_pthread_set_self,不过作者已经修复了这个bug。所以只需要重新安装一下这个框架到/Library/Frameworks目录中就可以了。
后续
可以参考网上其他公开的方法来破解。
本文只作记录逆向学习使用,破解完成后切勿公开,支持正版软件。