如何hook那些在IDA中显示为sub_xxx的函数

需求:想要通过MSHookFunction()的方式Hook 并调用sub_1F29BD8()函数;
说明: 0x1F29BD8是IDA中的基地址;g_slide是获取到的所在模块的偏移地址;0x2b69bd8便是计算出来的目标函数函数实际地址。
问题:为啥会提示算出来的地址是坏地址?
结论:实际地址计算错误。IDA地址归零的话,计算实际地址是要追加上0x100000000可以拿到真实地址了。
新问题:还是Hook不到(越狱机上也不好使)
结论:通过MonkeyDev安装到非越狱机上(iPhone8 v_11.0.3),MSHookFunction()的方式Hook不到;通过Tweak移植到越狱机上(iPhone 6s v_9.0.2)可以Hook的到目标地址。
新问题:手动调用MSHookFunction()第三个参数存下来的函数地址,总是崩溃(53行)。


结论:主动调用会崩溃的原因是调用的“时机早了”。虽然53行已经计算出来了目标地址,但是这个地址也仅仅是手动算出来的,尽管它是正确的,但是我理解53此时这个目标地址的内容并未初始化完成,所以此时调用会崩溃,并提示坏地址访问。现在我是在一个“足够靠后”的时机去手动调用这个目标函数,就不会崩溃了。【结案】