为什么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函数时,为什么它起作用?进程没有在其中搜索功能,因此直接进入内核。

  1. LD_PRELOAD是否在静态编译的二进制文件上工作?为什么?

2。为什么LD_PRELOAD在二进制文件上进行动态编译并在syscall上建立钩子?

体系结构是ARM

答案

该过程未在.so中搜索功能

以上是关于为什么LD_PREALOAD在系统调用上起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥应用于 bootstrap.css 的更改在发布时不起作用,但在 localhost 上起作用?

在 Ionic 中,为啥路由在 iPhone 上不起作用,但在构建版本和离子服务上起作用

MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用

媒体查询在 chrome 中不起作用,但在 iphone 上起作用

相机视图在 iPhone 上不起作用,在另一个上起作用

htaccess 修改在某些页面上起作用,但在其他页面上不起作用?