为什么LD_PREALOAD在系统调用上起作用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么LD_PREALOAD在系统调用上起作用?相关的知识,希望对你有一定的参考价值。
LD_PRELOAD
的想法是在原始文件之前加载,例如,在libc.so之前编译要加载的mylib.so
,因此,当进程要使用printf
时,它搜索以1加载1并找到它放在mylib.so
上(因为它首先被加载)而不是libc.so
,因此它在mylib.so中的printf中使用,而不是libc.so中的printf。
我理解为什么它要对像libc.so中的printf这样实现的函数进行工作。
但是当我想挂接write
函数或另一个syscall
函数时,为什么它起作用?进程没有在其中搜索功能,因此直接进入内核。
LD_PRELOAD
是否在静态编译的二进制文件上工作?为什么?
2。为什么LD_PRELOAD
在二进制文件上进行动态编译并在syscall上建立钩子?
体系结构是ARM
答案
该过程未在
.so
中搜索功能
以上是关于为什么LD_PREALOAD在系统调用上起作用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥应用于 bootstrap.css 的更改在发布时不起作用,但在 localhost 上起作用?
在 Ionic 中,为啥路由在 iPhone 上不起作用,但在构建版本和离子服务上起作用
MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用