分析一款病毒程序
来源:互联网 发布:淘宝信用卡付款手续费 编辑:程序博客网 时间: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);
如有不足,还请多指教。
- 分析一款病毒程序
- 对一款病毒(木马)程序的分析
- 病毒诊断分析程序(病毒分析师的福音)
- 一款游戏辅助程序的分析、制作方法
- AutoUpdate一款可疑更新程序分析报告
- 新欢乐时光病毒程序源码分析
- 新欢乐时光病毒程序源码分析
- 病毒分析
- 病毒分析
- 病毒分析。
- 如何用数据分析的方法,做好一款小程序?
- 分析:为什么McAfee报告QQ程序是病毒
- 反病毒工具之病毒诊断程序(更新版增加智能行为分析功能)
- 一款截图程序
- 一款木马的分析
- 一款木马的分析
- 如何分析一款app
- C简单病毒程序
- java判断字符串是否为空的方法总结
- git 本地存在的工程上传到指定仓库
- how to register a cell for UITableViewCell
- 为Centos6.5配置KVM环境
- BZOJ2006——[NOI2010]超级钢琴
- 分析一款病毒程序
- java中string.trim()函数的使用
- Android ThumbnailUtils 视频缩略图
- 测试
- hdu 5676(dfs)
- JS中的JSON对象
- linux centos6.6 vsftpd服务安装
- 不用加减乘除做加法
- API例子:用Python驱动Firefox采集网页数据