假设具有两种不同操作模式的Linux二进制文件foobar
:>
a
,b
和c
。a
,b
,c
和d
的错误模式。[系统调用a
,b
和c
是无害的,而系统调用d
则具有潜在的危险,可能导致机器不稳定。
进一步假设应用程序在两种模式中的哪一个是随机的:应用程序以模式A(概率为95%)和模式B(概率为5%)运行。该应用程序没有源代码,因此无法修改,只能按原样运行。
我想确保应用程序无法执行系统调用d
。当执行系统调用d
时,结果应为NOOP或应用程序立即终止。
如何在Linux环境中实现?
假设Linux二进制foobar具有两种不同的操作模式:模式A:行为良好的模式,在其中使用syscall a,b和c。模式B:一种出错的模式,在该模式下,系统调用a,b,c ...
应用程序是否静态链接?
systrace似乎完全可以满足您的需求。从Wikipedia page:
[这是sandboxing的一种可能的应用(特别是基于规则的执行)。一种流行的实现是SELinux。