逆向学习外传——Tower

这篇文章真的算不上什么学习文章,不过考虑到和逆向有关,还是凑一下字数加上去,当作一篇备忘吧。

破解Tower其实没什么特别的意思,毕竟是号称可能是Mac上最好用的Git客户端,可以值得一试(之前正版90多块,还是建议大家去支持)。分析的过程已经忘记了,直接上图
图1

其实就是FNLicensing.framework里的这么一个方法,返回一个枚举值来判定软件的注册状态,0x6的时候就是属于已注册。

最后运行结果:
图2

修改了以后立即打开Tower,完全没有任何警告提示和闪退情况。我总结一下:

  1. Tower的二进制执行文件完全不需要修改,因此没破坏签名,所以并不会提示来自未知开发者。
  2. Tower不会对Framework、资源文件等做文件完整性校验。
  3. 假设有人恶意修改Framework,理论上可以达到某些邪恶的目的,而不触发任何提示。
  4. 一个方法就决定了软件的注册状态,似乎有点儿戏。
  5. 综合来说,Tower对破解的安全意识相当薄弱,如果不再加强的话,任何的新版破解都是一瞬间的事情。