主题:【求助】有一批exe文件被病毒修改了 -- 青色水
病毒为W32/Yama.a!B01D9B11A2A8,这是mcafee的命名,其它软件的命名是:
Company Names Detection Names
AhnLab Dropper/Small2.Gen
Avast Win32:Small-NOK
AVG (GriSoft) Generic19.ANAE
Avira TR/Agent.36864.244
Kaspersky Trojan.Win32.Pincav.aguz
BitDefender Dropped:Trojan.Generic.4567048
Dr.Web Trojan.DownLoad2.13788
Microsoft trojandownloader:win32/small.gen!i
Symantec W32.SillyDC
Norman W32/Suspicious_Gen2.BVVVB.droppe
Panda Trj/CI.A
Rising Win32.Yama.a
Sophos Mal/Small-I
Trend Micro PE_TRIYU.A
V-Buster Trojan.Pincav.JCO
Vet (Computer Associates) Win32/Agent.IC
被感染的exe文件在末尾被插入一段8kb的字段,同时在前面某些位置也有修改,请问有没有不用删除exe文件修复的办法?系统为winxpsp2,C分区已经格式化重装。
先把这些exe用winrar打包备份,然后用不同的杀毒工具杀吧。我过去中过一两次类似的,很多exe杀毒以后就不能正常运行了。我觉得最好的办法还是重装程序。
如果你关心的是exe的电子书的话,可以试试用Resource hacker把里面的内容抽出来。
应当在8k中固定的位置有前面文件头的信息。只要找到偏移就好办了,自己编个程序杀掉。
可以装个虚拟机,然后在虚拟机里面运行病毒,然后感染文件,对比感染前后的文件内容,可以比较简单地找到文件头的信息的偏移。
不是对原来00 00这类字节的简单替换,所以仅仅砍掉后面8k字节没用,砍掉后文件执行不了,不是有效的win32程序了,所以想找个比较简单的除壳程序把这层东西给剥掉又不影响程序的正常运行,至于编程序,可能要用到汇编的东西才能搞清楚究竟是什么改写,超出我的能力了。
用有人推荐的大蜘蛛,在查出毒以后直接删除了,这样还不如我自己删除呢。重装的话我需要换块新盘才能用,否则现在系统里面天知道有多少隐藏的病毒没发现呢。
病毒感染时把自己附着在原程序后面,同时要修改原程序的起始内容,使之直接跳转到后面的病毒段开始执行,在病毒段的末尾有个跳转语句跳回来执行原程序的起始内容。
所以被染程序运行时,总是先执行病毒段,然后执行源程序,表面看起来是正常的,只是慢了一点。
如果简单地删除后面的病毒段,没有恢复前面的跳转语句,那么原程序没有被复原,也就无法使用。
干这个应该对PE文件结构比较了解,如果了解PE文件的结构写一个程序处理这个应该不难。
一般来说病毒会把exe开头的文件头拷贝,然后修改文件头中的一些参数。弱智的病毒一般是把整个文件头拷贝的。PE文件头大小一般是1k。你看看最后8k是否有文件头的标志?就是MZ大头,过一些地方出现PE两个字符的。如果是,只要想办法知道病毒究竟拷贝了多长的文件头就可以了。然后嘛,用C语言直接文件操作即可。
我们以前用这个方法在DOS下做过一样的事情,只是DOS的病毒一般存储512字节文件头。我们生成一个MZ开头的文本文件,后缀改为.exe,然后在染毒的机器上运行,于是病毒把这个文件感染。然后就可以根据文本文件的内容判断病毒拷贝的文件头长度和位置了。
这招不错。可如果像瓦斯描述的类似detour hook的中级病毒,这招可能不适用。在单独的PE头里,病毒找不到startup部分,这部分是否也可引蛇出洞一把?
体积很大,隐藏得也不深,应当不会用太高级的技术。都用了detour hook这样的技术,还不把自己压缩分段塞到文件缝隙中,实在是浪费啊。
我不是很懂编程,如果可能我想把感染和没感染的文件改扩展名传上来,看看有没有懂汇编的河友帮我解剖一下,我用UE对比过两个文件,发现核心是在中部的一片字段,这部分是非00字节置换,只改其它部分,不改这部分字节程序会出错。另外,这个病毒似乎感染能力不强,不是所有的exe文件它都能改写。