之前在iOS逆向过程中,并不常用Hook方式去协助逆向,偶尔有用也是通过frida去定位打印一些固定算法的参数和结果。在iOS逆向领域,最基础的Hook方式或者说工具就要说到Theos了,本篇主要分享记录一下我在使用Theos Hook阿里系X-sign的一些心得。
Theos简介
Theos是一款跨平台的越狱开发工具包,可以在Win、Linux、MacOS等平台下工作。由于Theos实现了对Cydia Substrace的封装,因而能实现对Objective-C运行时的Hook,也能实现对C语言函数的Hook。iOS平台下的Hook插件主要依赖于Theos中的Tweak插件,实质就是iOS平台的动态库(dylib),利用Cydia Substrace提供的组件进行加载。
至于如何安装Theos以及创建工程这里就不在一一叙述了,网上可以查到的资料实在太多。
Tweak.xm编写
“.xm”后缀表示源文件支持Logos和C/C++语法,如果是”.x”后缀,说明源文件仅支持Logos和C语法。
我们的Hook代码都写在该文件当中。
|
|
这里不得不提一下class-dump还是很有用的,通过该工具dump出来的类和函数用于辅助Tweak插件编写太方便了,参数个数、类型以及返回值类型一目了然。
总结
本篇主要简单记录一下自己Tweak Hook过程,相当于留个笔记,并没有太多的技术在内,后续有其他Tweak用法会加进去。