3个版本
0.0.3 | 2024年2月12日 |
---|---|
0.0.2 | 2024年1月25日 |
0.0.1 | 2024年1月25日 |
#867 in Unix APIs
9,091 每月下载量
5KB
libsydtime是一个LD_PRELOAD库,用于用系统调用替换vDSO时间调用。这个库是syd的trace/deny_tsc
沙箱命令的补充。
从源代码安装,请克隆https://git.sr.ht/~alip/syd仓库,切换到time
目录,并运行make
,make test
和doas make install
。唯一的前提是Rust 1.56.1或更高版本。
以下是如何使用libsydtime与syd结合使用的简单示例
$ strace -qf -e%clock syd -ppaludis -mtrace/deny_tsc:1 -eLD_PRELOAD=/usr/local/lib/libsydtime.so date
[pid 27095] clock_gettime(CLOCK_REALTIME, {tv_sec=1706186439, tv_nsec=28829866}) = 0
Thu Jan 25 12:40:39 UTC 2024
[pid 27095] +++ exited with 0 +++
$ strace -qf -e%clock syd -ppaludis date # vDSO
Thu Jan 25 12:41:25 UTC 2024
[pid 27103] +++ exited with 0 +++
$ strace -qf -e%clock syd -ppaludis -mtrace/deny_tsc:1 date # vDSO not permitted
[pid 27113] --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---
[pid 27113] +++ killed by SIGSEGV +++
$
由Ali Polatel维护。最新源代码可在https://git.sr.ht/~alip/syd找到,可以通过电子邮件向~alip/[email protected]提交错误/补丁。
依赖项
~43KB