【发布时间】:2012-10-23 22:04:09
【问题描述】:
我正在开发一个类似 Ideone 的系统,其中不受信任的用户代码必须在沙盒模式下运行。
为此,我一直在寻找ptrace 作为第一层保护的可能性。但是,经过几次实验后,似乎:
- 我可以在调用系统调用之前拦截它并修改输入参数。
- 我可以在系统调用被调用后拦截它并更改返回值。
- 但是,似乎根本没有办法阻止调用发生(除了杀死整个应用程序)。
我想拦截某些系统调用并返回一个虚假的结果代码,而不会实际发生调用。有没有办法实现这个?
【问题讨论】:
-
PTRACE_SYSEMU?根据手册页:“此调用由想要模拟所有孩子的系统调用的用户模式 Linux 使用”