腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
0
回答
没有
从
LD_PRELOAD
库
调用
system
()
函数
c++
、
linux
、
ld-preload
我正在尝试使用linux上的
LD_PRELOAD
来包装对
system
函数
的
调用
,以便在参数中添加一些预处理。int (*orig_
system
_type)(const char *command); { orig_
system
= (orig_
system
_type)dlsym(RTLD_N
浏览 16
提问于2017-06-15
得票数 1
回答已采纳
1
回答
如何在GNU标准
库
中拦截__fork()?
ld-preload
我查看了GNU标准
库
的源代码,我看到
system
函数
的实现
调用
了__fork()。我需要用我自己的__fork和
LD_PRELOAD
技术的包装来拦截这个
调用
。我想我知道如何使用
LD_PRELOAD
,因为: 如果我自己在我的应用程序中
调用
__fork(),它将被正确截获。也就是说,我们原则上能够拦截__fork()。如果我在标准
库
实现的__fork()中将
system
()更改为fork(),并重新编译标准
库
浏览 2
提问于2016-03-23
得票数 2
1
回答
使用
LD_PRELOAD
重定向
system
()
函数
调用
c++
、
c
、
linux
、
ld-preload
我想用
LD_PRELOAD
替换我的程序对
system
()
函数
的
调用
。{ printf("
system
() called for %s *****************shared -Wl,-soname,libsyshook.so -o libsyshook.so.1
浏览 0
提问于2015-04-07
得票数 0
3
回答
重写libc open()库
函数
linux
、
gcc
、
overriding
、
ld
、
glibc
我的
库
中有glibc提供的相同重写的
LD_PRELOAD
()&我先用
库
设置了
LD_PRELOAD
,所以当进程
调用
open()时,
调用
库
中定义的open。问题是:在glibc中还有几个
函数
调用
open(),一旦这样的例子是getpt(),当getpt()
调用
open()时,在glibc中定义的open()被
调用
时,我将如何使getpt()
调用
open(),这是在我的
浏览 2
提问于2014-03-26
得票数 3
1
回答
LD_PRELOAD
不适用于打印
linux
、
system
、
call
、
interception
我正在使用
LD_PRELOAD
来捕获linux中的write()系统
调用
。我能够成功地为编写系统
调用
执行此操作并使其正常工作。 但是当我
调用
printf()时,它就不能工作了。如果我们使用strace观察printf堆栈跟踪,我发现printf在最后
调用
write()系统
调用
来写入控制台,但当时我的write()系统
调用
在实际
调用
write()系统
调用
之前
没有
被
调用
。
浏览 2
提问于2011-03-23
得票数 5
1
回答
共享
库
的-fini
函数
可以
调用
什么?
c
、
gcc
、
gnu
、
ld
我使用的是
LD_PRELOAD
共享
库
,似乎无法
从
带有-fini= ld选项的
函数
集
调用
一些
函数
。我正在64位计算机上运行LinuxUbuntu20.04。shared.sh
LD_PRELOAD
=$PWD/shared.so看来printf()在fini
浏览 11
提问于2022-11-03
得票数 1
回答已采纳
1
回答
LD_PRELOAD
与动态链接器
linker
因此,我一直在阅读动态衬垫(dl)的预加载特性,以及它如何使用.so env变量加载用户指定的共享
库
(
LD_PRELOAD
Env),然后再加载链接到可执行文件的所有其他共享
库
。让我们--我想知道,为什么
没有
对应用程序试图加载的内容进行任何控制?"); setuid(0); } gcc -fPIC -shared -nostartfiles-
浏览 0
提问于2020-11-09
得票数 2
回答已采纳
2
回答
在编译/链接时强制指定的
函数
链接到指定的
库
c
、
compilation
、
linker
、
binutils
我想知道,在编译/链接时,是否可以强制链接器使用特定的
函数
链接。} 显然,这不能工作,因为它会
调用
一个无限循环.因此,我想知道我是否可以强迫
浏览 5
提问于2017-07-21
得票数 3
回答已采纳
1
回答
dlopen何时阻塞?
linux
、
shared-libraries
、
dlopen
、
shared-objects
共享
库
通过
LD_PRELOAD
加载,同一个
库
的构造
函数
调用
dlopen("libc.so.6") 问题是dlopen耗时很长,调试显示以下dlopen
调用
__dlopen,后者
调用
calloc,未知
函数
只有当在Linux上使用目标应用程序Firefox设置
LD_PRELOAD
时才会出现问题(如上所述)。任何其他应用程序都可以正常工作(dlopen不会阻塞)!
浏览 10
提问于2018-02-26
得票数 0
1
回答
重写对unlink和unlink的Samba
调用
samba
我的尝试是在使用Samba时覆盖对unlink/unlink的
调用
。为此,我编写了一个共享
库
。然后,我执行了这一行:重新启动smbd服务。现在,如果我
从
当前目录中删除一个文件,我可以看到我的unlink版本正在被
调用
,但是当我
从
另一个Ubuntu框通过Samba执行同样的操作时,我的重写就不会被
调用
了。我认为这与
LD_PRELOAD
的位置有关。我将其放置
浏览 0
提问于2016-07-14
得票数 0
3
回答
LD_PRELOAD
不像预期的那样工作
c++
、
linux
、
gcc
、
ld
、
ld-preload
考虑以下
库
,它可以在任何程序执行之前预加载://
LD_PRELOAD
=.\n";}问题是,虽然全局变量goodbye的构造
函数
总是被
调用
,但对于某些程序,如ls,不
调用
析构
函数
。Hello 对于其他一些程序,析
浏览 8
提问于2014-05-24
得票数 27
回答已采纳
1
回答
用
system
()
函数
调用
防止wildecard扩展
c++
、
linux
、
bash
、
shell
、
wildcard-expansion
此代码使用
system
函数
执行shell脚本,传递一些参数。不幸的是,事实证明,一些参数可能包含*字符,但是参数
没有
正确转义。因此,当执行shell脚本时,*会被展开,这不是我想要的。string> { return
system
program2 => prog
浏览 5
提问于2017-06-13
得票数 1
回答已采纳
1
回答
如何使用
LD_PRELOAD
向应用程序注入后台线程?
linux
、
gcc
、
dynamic-linking
、
ld-preload
我知道
LD_PRELOAD
可以用来拦截对共享
库
中
函数
的
调用
(如果应用程序
没有
静态链接)。但是,我不知道如何使用它向应用程序添加其他特性或后台线程。所以,现在的问题是,如何将线程插入到使用
LD_PRELOAD
编译的应用程序中,而无需事先知道从这个应用程序
调用
哪些共享
库
的功能呢?
浏览 4
提问于2014-02-18
得票数 4
回答已采纳
2
回答
确定哪些共享
库
调用
我的共享
c
、
shared-libraries
我试图找到一种方法来知道哪个共享
库
正在
调用
我的共享库
函数
。场景是这样的。 我已经使用
LD_PRELOAD
覆盖了malloc。在我的malloc中,我将
调用
直接转发给真正的malloc,但是如果
调用
来自特定的共享
库
,我想在转发
调用
之前做一些处理。现在,我想要处理的对malloc的
调用
的共享
库
被一种插件体系结构中的外部可执行程序加载和
调用
。我尝试过使用backtrace()和backtrace_symb
浏览 2
提问于2010-10-15
得票数 2
1
回答
在C语言中,如何
调用
我的
函数
而不是系统库
函数
?
c
、
linux
假设我有第三方
库
或可执行文件。它
调用
许多系统
函数
,如strcpy或strlen等。我无法修改可执行文件/
库
,因为我
没有
访问代码的权限。有可能。如果是的话,有人能指导我怎么做吗。根据这里的建议,我尝试过使用
LD_PRELO
浏览 1
提问于2015-09-09
得票数 1
回答已采纳
1
回答
多个共享
库
(
LD_PRELOAD
)之间的切换
linux
、
linker
、
shared-libraries
、
symbols
、
ld-preload
假设存在三个共享
库
A.so、B.so和C.so,每个
库
都有一个
函数
f()。我希望在运行时确定的特定情况下,在每个
函数
f()之间切换。使用
LD_PRELOAD
技巧,我将按照以下方式执行程序p (即这些
库
的用户):默认为f() in A.so。我使用
LD_PRELOAD
来根据某些运行时条件在分配程序之间切换。我使用加载和访问辅助
库
。 首先,我在二级
库
浏览 1
提问于2020-10-11
得票数 0
回答已采纳
2
回答
_exit上的任意钩子
函数
(2)
c
我感兴趣的是是否可以在_exit(2)
调用
上
调用
任意
函数
,因为它绕过了其他挂钩架构,因此对我来说并不容易。如果这是一个普通的exit(3)或return语句,显然atexit(3)、on_exit(3)或__attribute__((destructor))都有可能使用gcc扩展 编辑:我面临的问题是fork(2)ed Perl程序和CoW。该程序的子进程在exit(
浏览 9
提问于2015-05-19
得票数 1
回答已采纳
2
回答
Linux
函数
重定向
c
、
linux
、
linker
、
symbols
嘿,我正试图在不使用
LD_PRELOAD
的情况下在我的程序中包装一个
函数
。我有两个具有相同签名的
函数
: puts ("someFunc"); puts ("someFunc_wrapper");我希望通过
调用
包装器
函数
将所有
函数
调用
重定向到someFunc。当然,我可以通过定义宏或将包装器
函数
放
浏览 1
提问于2011-06-04
得票数 2
1
回答
在排序中使用gperftools时,分析计时器已过期
c++
、
linux
、
gperftools
我花了一整天的时间尝试让正常工作:/$ sort file$ sort file$ g
浏览 18
提问于2017-02-03
得票数 0
回答已采纳
1
回答
在执行后覆盖C系统?
c
、
linux
所以我用work来覆盖程序中的malloc
调用
,我不认为如果我执行另一个
调用
,它会工作,但它不起作用。我想这是因为它与我的程序
没有
链接。我如何在另一个程序中覆盖C
调用
?
浏览 0
提问于2015-11-16
得票数 0
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券