iOS逆向之深入解析如何Hook所有+load方法及Category的处理

一、类方法 +load

  • iOS 有四种方法可方便的在 premain 阶段执行代码:
    • Objective C 类的 +load 方法;
    • C++ static initializer;
    • C/C++ attribute(constructor) functions;
    • 动态库中的上面三种方法。
  • 所有类的 +load 方法是在 main 函数之前、在主线程,以串行方式调用,因此任何一个 +load 方法的耗时大小将直接影响到 App 的启动耗时。
  • Objective C Runtime 如下:
/***********************************************************************
* call_class_loads
* Call all pending class +load methods.
* If new classes become loadable, +load is NOT called for them.
* Called only by call_load_methods().
**********************************************************************/
static voi

你可能感兴趣的:(iOS逆向安全攻防,CaptainHook,新增动态库,获取MachO,获取所有类,Category)