首页 理论教育 n上下文相关映射关系建模成果

n上下文相关映射关系建模成果

时间:2023-11-17 理论教育 版权反馈
【摘要】:一对多上下文相关映射指的是对于Windows API a而言,在Linux中有两个或两个以上的系统调用b1、b2、...、bn函数,函数b1、b2、...、bn中任意两个函数之间没有语义的交集,但是函数b1、b2、...、bn的语义并集能最大可能地覆盖a的语义范围,即与a的语义范围存在最大的交集。定义21 对于函数f1,若函数f2的执行紧跟于函数f1的执行之后,则用二元关系nextExe来表示函数f1与函数f2之间的执行先后次序关系。那么它们之间的映射关系可以形式化表示为:

n上下文相关映射关系建模成果

一对多上下文相关映射指的是对于Windows API a而言,在Linux中有两个或两个以上的系统调用b1、b2、...、bn函数,函数b1、b2、...、bn中任意两个函数之间没有语义的交集,但是函数b1、b2、...、bn的语义并集能最大可能地覆盖a的语义范围,即与a的语义范围存在最大的交集。因此函数b1、b2、...、bn按一定次序执行便能实现函数a的大部分功能,尽管如此,在具体的移植过程中,仍然不免需要根据实际情况来增加部分编码实现,如图19 所示。

图19 函数b1、b2...bn的语义范围与函数a的语义范围相交

定义19 对于函数序列Σ,若函数f是序列中第一个执行的函数,则用二元关系startExe(Σ,f)来表示函数f与函数序列Σ的关系。

定义20 对于函数序列Σ,若函数f是序列中最后一个执行的函数,则用二元关系finalExe(Σ,f)来表示函数f与函数序列Σ的关系。

定义21 对于函数f1,若函数f2的执行紧跟于函数f1的执行之后,则用二元关系nextExe(f1,f2)来表示函数f1与函数f2之间的执行先后次序关系。

定义22 (1:n 上下文相关映射)对于函数f1,存在函数序列Σ,函数f21、f22、...、f2n都属于该函数序列,即有f2i∈Σ,i∈[1,n];若用Υ(a)表示函数a的语义范围,则函数序列Σ中的任意两个函数没有语义上的交集,可以表示为Υ(f2i)∩Υ(f2j) =∅,i,j∈[1,n];若函数序列Σ中的所有函数的语义范围的并集与函数f1的语义范围存在最大可能的交集,且函数序列Σ中的函数有一定的先后执行顺序,假设函数序列Σ中函数的执行顺序为:f21→f22→...→f2n,则函数f1与函数序列Σ之间的上下文相关映射关系可以表示为:(www.xing528.com)

在Windows中,APICreateProcess用来创建一个新的进程。在Linux中,没有与此函数唯一对应的函数,但是可以通过Linux中的函数fork 来创建一个具有新的PID的子进程,然后使用setpgid 函数切换到新的PID,最后使用exec函数将现有进程改变为将要执行的进程。

在对应的Linux代码中,由函数fork、setpgid、execv组成的函数序列Σ中实现了Windows APICreateProcess的功能,在程序中,它们的调用次序是fork→setpgid→execv。那么它们之间的映射关系可以形式化表示为:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈