gpt4 book ai didi

hook - LD_PRELOAD 和 strace 有什么区别?

转载 作者:行者123 更新时间:2023-12-05 01:15:00 30 4
gpt4 key购买 nike

这两种方法都用于收集系统调用以及参数和它们的返回值。当我们更喜欢 LD_PRELOAD为什么?也许我们可以说我们只能通过 strace 收集系统调用。但我们可以使用 LD_PRELOAD 收集库调用诡计。但是,对于名称为 ltrace 的库,还有另一个跟踪器。 .

最佳答案

strace正在使用 ptrace(2) syscall(可能带有 PTRACE_SYSCALL),因此将捕获每个系统调用(通过 ptrace 安装的内核 Hook )。它适用于任何可执行文件,甚至是静态链接的可执行文件,或者那些使用您的发行版的 GNU Glibc 以外的其他东西的可执行文件(例如 musl-libc 或某些汇编编写的实用程序,如旧版本的 busybox )。
LD_PRELOAD技巧使用动态加载器,例如/lib64/ld-linux-x86-64.so.2/lib/ld.so (参见 ld.so(8) 手册页)等等...所以不能使用静态链接的可执行文件(或者那些使用动态加载器和 GNU libc 以外的东西的可执行文件)。
ltrace大概也是ptrace基于。

所有这些都是免费软件,您可以研究它们的源代码(并改进它)。

关于hook - LD_PRELOAD 和 strace 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865656/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com