PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc

PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc

ID:57631671

大小:267.50 KB

页数:8页

时间:2020-08-29

PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc_第1页
PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc_第2页
PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc_第3页
PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc_第4页
PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc_第5页
资源描述:

《PE感染逆向之修复(Serverx.exe专杀工具出炉手记).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、这篇文章是在Servex.exe专杀工具写完之后的一些小小感想,关于PE感染和修复,大牛飘过~  自某日不小心中了Serverx.exe病毒,电脑中大部分EXE文件被感染,系统盘system32目录下的病毒文件Serverx.exe总也杀不掉,因为即使删掉了,每次运行了被感染的程序之后还会再次生成。(关于此毒的详细资料,有兴趣的直接在百度搜索"Serverx.exe"或"愤怒天使"即可)在网上求助无果,遂自己动手,研究了一下这个病毒的感染方式,最终找到了恢复被感染文件的方法,下面将此过程分享给大家。遇到这种感染型的病毒,恢

2、复时需要解决几个问题。第一个问题,感染后的文件能否恢复?那么我们从被感染后的EXE运行情况来看看。以调用Winrar解压缩为例,可以正常实现解压过程。但在解压后就应退出的Winrar仍在运行。如果用Process Explorer观察进程树的话,会发现是Winrar本身又重新运行了一个Winrar进程来完成解压缩功能,而解压完成后,第一个运行的Winrar仍在继续运行,用FileMon监视的话会发现它有大量的文件访问操作,从访问的目录顺序和规律来看是在遍历并寻找EXE进行感染。而这两个Winrar的路径是一样的,也就是说实

3、现感染功能的和实现解压功能的是同一个程序,解压功能仍然是被感染后的Winrar完成的,这说明一个问题:感染后的文件功能没有被破坏!这非常重要,也是因为程序的功能没有被破坏才有下面的恢复过程。第二个问题,此病毒是何种感染方式?典型的感染方式有“夹心饼”式的捆绑感染,替换资源或添加资源式的感染,准确说这些不算是“正宗”的PE感染。其它典型的方式有加新区段,写入shellcode(这里把病毒自己注入的代码也称为shellcode),然后跳回原入口。还有一些高级的感染方式,不一一列举。为了分析这个病毒的感染方式,我将感染前后的Wi

4、nrar.exe进行对比,首先会发现文件大小要增加,再用PEID(或其它同类工具)查看一下相关数据,首先发现入口所在区段不一样了,由.text段变成了最后的.rsrc段,入口处代码也不一样了。既然感染跟区段有关,那么就来看一下感染前后区段数据的变化:感染前: 感染后: 可以看到,区段数并没有增加,仍为7个,但是最后一个区段的虚拟大小(VirtualSize)和原始大小(RawSize)都有所增加,且段属性标记也被修改了。这样我们对此病毒的感染方式有所了解了,就是增加最后一个段的大小,写入shellcode,并修改段属性为可

5、执行,并不是某些人分析的增加新区段方式。具体地把一些数据列出来并进行计算(所有数据都是Winrar.exe的):感染前文件大小:929792 Bytes   感染后:974742 Bytes  增加:44950=0xAF96感染前最后一个节的数据:VirtualSize:0x00032000   RawSize:0x00031200   Flags:0x40000040感染后最后一个节的数据:VirtualSize:0x0003C196   RawSize:0x0003C196   Flags:0xE0000040增加的大

6、小:VirtualSize:0x0000A196  RawSize:0x0000AF96经过计算,最后一个节的RawSize增加的大小刚好等于文件增加的大小,这个用WinHex打开感染前后的文件比较一下就可以证实,病毒确实是在原始文件末的地方开始写入shellcode的。对PE知识的了解使我们知道节表中的RawSize对应于这个节在文件中实际的大小,我们更证实了之前的想法。可知病毒的感染方法是这样的:根据shellcode计算需要的空间大小nSize,然后将文件增加nSize,写入shellcode,然后修正PE头中最后一

7、个区段的原始大小、虚拟大小,修改区段属性为可执行,因为映像大小被修改,还要修正IMAGE_OPTIONAL_HEADER结构中的SizeOfImage。Shellcode中必然是做了些坏事然后跳回到原入口处继续执行。这是我们目前分析得到的信息。第三个问题,要恢复被感染的文件,需要修复哪些数据?结合前面分析出的病毒的感染过程,要修复感染后的文件,至少要知道以下几个信息,同时也是需要修复的数据。(1)  感染前的文件大小。前面已经知道,病毒直接从文件末开始写入shellcode,要去掉病毒写入的内容,就必须知道感染前原文件大小

8、。(2)  感染前最后一个区段的RawSize。因为RawSize增加的大小等于文件增加的大小,所以知道了感染前文件大小也就是RawSize的大小。(3)  感染前最后一个区段的VirtualSize。在获取正确的RawSize之后就可以根据对齐来计算VirtuslSize,也就是说第二个问题解决了,这

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

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

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