结合_虚拟地址空间_简明扼要地谈谈蠕虫病毒的原理

版权声明:私藏源代码是违反人性的罪恶行为!博客转载无需告知,学无止境。 https://blog.csdn.net/qq_41822235/article/details/83931330

--------参考文献   汤, 梁, 哲, 汤.计算机操作系统(第四版)[M].西安:西安电子科技大学出版社,2014.5:123-124, 395-396.

一、 ALM的缺陷

Absolute Loading Mode 绝对装入方式。当计算机系统很小,且仅运行单道程序时,完全有可能知道程序将驻留在内存的什么位置。为了阐述上的方便,谈论一个无需进行链接单个目标模块的装入过程。在这种情况下,程序进行编译后,将产生绝对地址(物理地址)的目标代码。

程序中所使用的地址既可以在编译或汇编时给出,也可以由程序员直接赋予。但是由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。

不可修补的缺陷:程序员需要直接操纵内存,非常繁琐而且容易出错。

二、 虚拟地址空间

与可重定位技术紧密联系在一起。

图1 虚拟地址空间

三、 访问越界

图2 蠕虫病毒示意图

如图2 所示,返回地址存放的是当函数funcA运行结束时,整段程序将从何处开始继续执行。为变量B分配的栈空间是紫色的部分,如果不加访问越界检查,值就会将返回地址覆盖,这就导致函数调用结束继续向下执行会跳转到未知的地方。如果黑客攻击者经过精心计算,将他所设计的恶意软件的起始地址覆盖在原来栈中存放的返回地址,把恶意软件本身也推入栈中。这样当函数调用结束时,流程便会去执行恶意软件。 

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/83931330