In computer, the instructions of a function are stored in memory. When the process is going to call the function, it needs to know where to locate the function in memory, and then executes its instructions at there. That is to say , the process needs to know the memory address of a function according to its name. The mapping of function names and addresses is stored in the "symbol table". "symbol" is the name of the function, according to which the process locates the function's address I'm memory and then jumps there to execute it.
Imagine such a scenario: Your App calls a "lookup", rhino it can import the dylib, and call the function as it wishes, causing great consumption of your server resources.
To avoid this, symbols are divided into 2 types, i.e. public symbols and private symbols (Besides, there are stripped symbols). Private symbols are not property of yours, you can not make use of them as you wish. That's to say, MSHookFunction will fail on private symbols without further manipulation. So saurik provides the MSFindSymbol function to access private symbols.
What's a symbol?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
- 相信有吃过麦当劳的童鞋们,大部分都有遇到过一个场景,在麦当劳门店附近(有时可能不是附近),有麦当劳的工作人...