我想知道,在恶意软件分析中,“多路径执行”是什么意思?当我遇到与控制流图(CFG)相关的恶意软件检测文献中的单词时,我读到了这篇文章。
发布于 2011-09-06 07:07:19
我查过了,所以我不是专家,但这似乎意味着。
当代码是有条件的,例如,通过使用' if‘语句,CPU必须决定采取哪个’分支‘(if或the )。然而,在现代CPU中,指令是预取的,一些计算是针对尚未执行的指令进行的,因此分支会带来一个问题:应该评估哪个分支?多路径执行(http://csd.ijs.si/courses/processor/chapter4/sld072.htm)意味着对两个分支进行评估,并丢弃最终不被采用的分支。
关于CFG:当采取多个分支时,多个边缘将临时移动。然而,在对条件进行充分评估后,只剩下一个边,其余边将被丢弃。
看看http://en.wikipedia.org/wiki/Branch_预测器,获得很多关于现代CPU如何处理分支的信息。
在我看来,这似乎不是一个典型的“恶意软件”问题,而是一个普遍的调试概念。
如果我在胡说八道,谁来纠正我:-)
发布于 2011-09-07 08:45:31
我相信这句话是指确定某段代码是恶意软件还是非恶意软件。标准应用程序代码在执行过程中具有统计属性。分析一段代码并将其分支行为与标准模型进行比较是可以用来检测恶意软件的一种测试。如果分支行为与模型相似,则测试将表明这不是恶意软件。如果分支行为与模型明显不同,则测试将表明代码是错误的。当然,像这样的测试可能会产生错误的结果。一段恶意软件评估为正常代码,这是一个假阴性。或者一段正常代码可能被计算为恶意软件,这是一种假阳性。由于maleware不像大多数应用程序代码那样依赖于数据或用户输入,所以某些类型的maleware往往具有高度线性(非分支)执行模式。当然,一个复杂的恶意软件设计师可以通过包括更多的分支来隐藏这一点。
https://security.stackexchange.com/questions/6866
复制相似问题