自己的笔记,修改自陈厅老师
-
病毒执行特点
- 并非简单执行自己的代码,它还需要执行被感染对象的正常代码,否则无法潜伏。 用两个函数normal()和virus()来模拟此过程
-
本来只调用normal,不调用virus,但通过我们修改内存机器码让程序先执行virus再执行normal,则模拟了改变执行路径的能力
正常途径:main()函数—normal()函数执行完成—-结束
修改之后:main()函数—normal()函数尚未真正开始—virus()函数执行完毕—normal()执行完毕—完毕
通过修改内存机器码,可等价到病毒的真正宿主硬盘么?
-
效果的确等价,以实验验证
以下面代码为例
#include<iostream>
using namespace std;
int main()
{
int g = 12;
cout << g << endl;
system("pause");
}
反汇编下得到如下信息
下载安装ultraedit,用ultraedit打开上面代码生成的exe文件,查找c7 45 F8 0c
通过前面学习,我们知道0c代表变量值为12,,改成0b,变量的值就成了11
把0c改为0b,另存为test.exe 。执行发现结果确实被改变。