symbol的理解

前言

在计算机中,一个函数的指令被存放在一段内存中,当进程需要执行这个函数的时候,它必须知道要去内存的哪个地方找到这个函数,然后执行它的指令。也就是说,进程要根据这个函数的名称,找到它在内存中的地址,而这个名称与地址的映射关系,是存储在 “symbol table”中。
——“symbol table”中的 symbol 就是这个函数的名称,进程会根据这个 symbol 找到它在内存中的地址,然后跳转过去执行。

正文

为了避免其他app利用symbol,执行其他app库的函数

           symbol    被分为2类 :                   
    即  public symbol 和private symbol  。(  第三类   stripped symbol)

MSHookFunction

MSHookFunction 作用于 C 和C++ 函数 ,通过编写汇编指令,在进行执行到 function 时 转而执行 replacement,同时保存在 function 的指令及其返回地址,使得用户可以选择性的执行 function ,并保证进程能够在执行完 replacement 后 继续正常运行。

ps: CydiaSubstrate(由MobileHooker、 MobileLoader 、Safe mode组成) 是对MSHookMessageEx进行封装。

iOS 的底层是用 C C++ 实现的,编译之后生成的大都是 su

猜你喜欢

转载自blog.csdn.net/u011018979/article/details/77984153