紧急求助! 一道非常有挑战性的c c++问题!
计算机系统安全研究人员检测一个系统是否安全,通常是与进程所执行的系统调用序列有关系的,例如如果一个系统调用序列为"3,6,5,7,8,20,30,40,20,39,37,38,27,33,1,2...",则包含"3,6,5,7,8,20,30,40,20,39,37","6,5,7,8,20,30,40,20,39,37,38","5,7,8,20,30,40,20,39,37,38,27"等一系列长度为8的的系统调用序列段,这些系统调用序列段可能是一个不正常的系统调用序列,也就是说可能是一个不安全的序列.因此,研究人员的研究焦点就转为如何判断一个序列是否是一个正常的系统调用序列,或者说,他们只需找到所有可能的正常系统调用序列,当对一个正在执行的进程进行安全监测时,他们只需拿该进程的当前系统调用序列,与已知正常系统调用序列库进行比较,如果找到,即为正常,否则,则为异常(不安全的进程).现有采集到的一个进程的正常系统调用序列集合,请设计合适的数据结构和算法使之能够建立该进程的正常系统调用序列库,并能够以较高的速度对进程进行序列长度为8的逐位检测.
|