我正在制作一个 C++ 测试服务器,并且想要编译的程序会:
- 无权读取或写入文件。
- 无权通过套接字打开或连接。
- 无法使用任何非标准 C++(例如系统)库
- 可以完全访问 CPU(没有或很少有性能损失)。
- RAM 内存有限。
- 运行时间有限。
我希望我没有忘记任何事情,但我想做的是制作一个正常的测试系统,而不会被编译的程序入侵。
任何提示,链接,什么?任何编译器选项?
以下是当前系统的样子:
操作系统:Ubuntu
编译器:GCC
编辑:
您知道是否可以在编译器中禁用所有系统库?这会有很大帮助:)
编辑(再次):
这是我想出的:我制作了一个程序,它自己分叉,父进程跟踪被测试者的时间限制(虽然你仍然可以使用一些系统命令)并且子进程限制它自己(资源, seccomp) 并运行不受信任的软件。