From 571e1a091fe745dc16aa5f3fe4c88081f984295a Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 22 Aug 2018 13:38:48 +0800 Subject: [PATCH] PUB:20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md @qhwdw https://linux.cn/article-9942-1.html --- ...d Emulating Linux System Calls with Ptrace - null program.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {translated/tech => published}/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md (96%) diff --git a/translated/tech/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md b/published/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md similarity index 96% rename from translated/tech/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md rename to published/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md index 5f55baf400..f20fea2e07 100644 --- a/translated/tech/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md +++ b/published/20180623 Intercepting and Emulating Linux System Calls with Ptrace - null program.md @@ -1,7 +1,7 @@ 使用 Ptrace 去拦截和仿真 Linux 系统调用 ====== -`ptrace(2)`(”进程跟踪process trace“)系统调用通常都与调试有关。它是类 Unix 系统上通过原生调试器监测被调试进程的主要机制。它也是实现 [strace][1](系统调用跟踪system call trace)的常见方法。使用 Ptrace,跟踪器可以暂停被跟踪过程,[检查和设置寄存器和内存][2],监视系统调用,甚至可以拦截系统调用。 +`ptrace(2)`(“进程跟踪process trace)系统调用通常都与调试有关。它是类 Unix 系统上通过原生调试器监测被调试进程的主要机制。它也是实现 [strace][1](系统调用跟踪system call trace)的常见方法。使用 Ptrace,跟踪器可以暂停被跟踪过程,[检查和设置寄存器和内存][2],监视系统调用,甚至可以拦截intercepting系统调用。 通过拦截功能,意味着跟踪器可以篡改系统调用参数,篡改系统调用的返回值,甚至阻塞某些系统调用。言外之意就是,一个跟踪器本身完全可以提供系统调用服务。这是件非常有趣的事,因为这意味着**一个跟踪器可以仿真一个完整的外部操作系统**,而这些都是在没有得到内核任何帮助的情况下由 Ptrace 实现的。