分析一款病毒程序

来源:互联网 发布:淘宝信用卡付款手续费 编辑:程序博客网 时间:2024/06/05 19:45

首先要谢谢吾爱的@Youngs提供的样本,我用自己的思路在分析一遍

首先对行为进行分析,发现他在运行本身的同时还释放了一个小程序

程序本身创建了开机自启动项


还原一部分代码如下:

void AddReg(){char RegName[]="SoftWare\\Microsoft\\Windows \\CurrentVersion\\Run";char szBuffer[MAX_PATH];char hKey=NULL;strcpy(szBuf,"%windir%\\2.exe");RegOpenKey(HKEY_CURRERNT_USER,RegName,&hkey);RegSetValueEx(hkey,"2",0,REG_EXPAND_SZ,(LPBYTE)szBuf,strlen(szBuf)+1);RegCloseKey(hkey);}

在c盘用户目录下创建了desktop.ini的配置文件和其他的DLL文件,个人认为它们为病毒运行所需的文件


接下来载入OD,IDA进行调试

我发现程序中call sub_40E58中调用了GetModuleHandleA,GetCommandLineA,GetProcAddress等函数,所以应该是对病毒进行获取路径或者句柄进行操作

F8单步运行程序,会发现GetModuleHandleA对文件的路径进行了读取,在F8单步运行,我发现了一个cmp的比较函数,用'22',作为对病毒初始化的结束


接下来继续通过,继续分析call_sub405684,发现了一个CharNext函数,这个函数将病毒的路径重新的读取一遍,至此出现‘’‘’结束,这个函数应该和刚才的cmp相连


通过IDA继续分析,发现一个路径为 C:\DOCUME~1\ADMINI~1.GON\LOCALS~1\Temp\nst13.tmp的临时文件,说句实话,我也不知道他有什么用,先放一边,call00403208为提供路径的主要call(关键call)


接下来是字符串的链接起来,将C://WINDOWS和\temp链接起来

发现又重建了nss14.tmp的文件,然后又删除了,不过这样分析也分析不出什么有价值的东西,继续向下。


发现了一些新出现的东西C:\Documents and Settings\Administrator.GONG-EE1FB81712\Local Settings\Application Data\NVIDIA Corpo,我们跟过去看看


一路跟过去,发现出现的地方,可以明显的看到在C:\Documents and Settings\Administrator.GONG-EE1FB81712\Local Settings\Application Data\NVIDIA Corpo\update

,而copyfile则将母体进去进去


关闭句柄

00403502 |. 50 |push eax ; /hObject00403503 |. FF15 EC704000 |call dword ptr ds:[<&KERNEL32.CloseHandle>] ; \CloseHandle 

设置注册表的键值
.text:00402333                 push    ebx             ; lpSecurityAttributes.text:00402334                 push    ecx             ; samDesired.text:00402335                 push    ebx             ; dwOptions.text:00402336                 push    ebx             ; lpClass.text:00402337                 push    ebx             ; Reserved.text:00402338                 push    eax             ; lpSubKey.text:00402339                 push    edi             ; hKey.text:0040233A                 mov     [ebp+var_4], 1.text:00402341                 call    ds:RegCreateKeyExA.text:00402347                 test    eax, eax.text:00402349                 jnz     loc_40288B      ; jumptable 00401489 default case.text:0040234F                 cmp     esi, 1.text:00402352                 mov     edi, offset Data.text:00402357                 jnz     short loc_402367

利用SHFILEOperationA使母体变名,变成C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\WinUpdate


删除母体

004055A0  |.  57            |push edi                                ; /FileName004055A1  |.  FF15 44714000 |call dword ptr ds:[<&KERNEL32.DeleteFil>; \DeleteFileA

这就是我的分析

编写一个小的查杀伪代码

void Kill2File()  {          char szWindows2[MAX_PATH] = {0};          char szSystem2[MAX_PATH] = {0};            GetWindowsDirectory(szWindows2,MAX_PATH);          GetSystemDirectory(szSystem2,MAX_PATH);            strcat(szWindows2,"\\2.exe");          strcat(szSystem2,"\\2.exe");            DeleteFile(szWindows2);          DeleteFile(szSystem2);  

如有不足,还请多指教。















0 0
原创粉丝点击