一个dylib的诸多疑惑

偶然调试发现了一个库出现这种情况:

* thread #1: tid = 0x61157, 0x01372e94 dhCenter.dylib, queue = 'com.apple.main-thread', stop reason = instruction step over
    frame #0: 0x01372e94 dhCenter.dylib
->  0x1372e94: andeq  pc, r0, r0, asr #5
    0x1372e98: .long  0xf2494478                ; unknown opcode
    0x1372e9c: .long  0xf8da26ac                ; unknown opcode
    0x1372ea0: .long  0xf64b1000                ; unknown opcode

疑问:这是什么情况? 开发商是如何做到的?
我使用IDA和hopper进一步分析了下,发现了下面几个问题:

  1. dylib的函数之间的引用全部消失了(在lldb里面的调用栈里面也看不到)。
  2. 里面的全部函数都是sub_开头(除开一个mod_load_init),实际情况是不可能出现这种。
  3. 打印相关的字符串等也是全部找不到,这个我猜测是加密了的(但是因为无法查看函数见联系,也无法调试,所以无法验证)。

最最重要的一点,开发商怎么实现的? 如何仿照实现一个。我感觉这个对逆向针对性非常强。

发现很不好描述这个帖子的主题,只能随便一个。

做了个OC的RunTime尝试,hook object_setIvar函数,发现就只有几个(4,5)类调用了这个api。why?

没二进制你说个贾斯丁比伯