分析一款病毒程序

首先要谢谢吾爱的@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 ; /hObject

00403503 |. 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                                ; /FileName
004055A1  |.  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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值