Lab 6-3
在这个实验中,我们会分析在文件Lab06-03.exe中发现的恶意代码。
问题
1.比较在main函数与实验6-2的main函数的调用。从main中调用的新的函数是什么?
是一个功能函数里面有删除文件,创建文件夹,拷贝文件,修改注册表功能.
2.这个新的函数使用的参数是什么?
两个参数,func(char,char*);第一个参数是上个函数返回值也就是第五个字节数据,和cmd第一个命令.
3.这个函数包含的主要代码结构是什么?
一个比较重要的switch 语句,通过判断第一感参数减去0x61然后对比跳转表进行跳转.
4.这个函数能够做什么?
翻译代码:
void func(char arg_0,char* arg_1)
{
switch(arg_0)
{
case 97:
{
CreateDirectoryA("C:\\Temp");
break;
}
case 98
{
CopyFileA(arg_1,"C:\\Temp\\cc.exe",1);
break;
}
case 99:
{
DeleteFileA("C:\\Temp\\cc.exe");
break;
}
case 100:
{
HKEY hKey;
RegOpenKeyExA(0x80000002,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,0x0F003F,&hKey);
if(RegSetValueExA(hKey,"Malware",0,1,"C:\\Temp\\cc.exe",strlen("C:\\Temp\\cc.exe")))
{
printf("Error 3.1: Could not set Registry value");
}
break;
}
case 101:
{
Sleep(0x186A0);
break;
}
default:
printf("Error 3.2: Not a valid command provided");
}
return;
}
1.根据第5个字节进行判断操作,详情看翻译后代码.
5.在这个恶意代码中有什么本地特征吗?
1.会在本地创建文件和目录"C:\Temp\cc.exe”,“C:\Temp”.
2.会写入注册表表项"Software\Microsoft\Windows\CurrentVersion\Run”.
6.这个恶意代码的目的是什么?
1.将指定文件复制写入C:\Temp目录下,并生成文件cc.exe,并删除源文件,往注册表启动项里写入 生成的文件,变成开机自启.
2.这个是恶意代码流程,不过这是测试文件所以就没有这么弄只是实现了所需功能.