可执行文件 MachO

2020-08-18  本文已影响0人  Lee_dev

1、MachO 如何加载到内存的?

通过 DYLD 加载
ASLR : 当 DYLD 加载每一个可执行文件(MachO)时在前面添加随机偏移地址
PIC : 当 MachO 调用系统外部函数时,会在 _DATA 段建议创建指针8字节用来存放外部函数地址(比如nslog),指针由DYLD 操作
_TEXT 放代码

思考:C语言也能实现动态特性

fishhook 只能修改系统级别的 C 函数。
为什么?
在加载MachO时,DYLD会在DATA区域添加系统级别的C函数的地址指针,而自己创建的C函数代码在TEXT区,地址已经在编译的时候固定,不是从系统中加载

上一篇下一篇

猜你喜欢

热点阅读