Blast's Security Lab
30 Jul 2009
文章介绍两个方法修复expiro,一种是修改首2字节修复部分expiro变种(方法并不完美),一种是通过修改文件来达到修复目的。
文件来源:http://bbs.kafan.cn/thread-528937-1-1.html
首先查看被感染文件入口代码:
01013000 > 60 pushad ;保持堆栈平衡,无视
01013001 E8 715C0200 call 01038C77 ;病毒感染模块
01013006 61 popad
01013007 - E9 9143FFFF jmp 0100739D ;返回正常入口
第一种方法,直接跳转回去,将前两个字节改为EB 05 。
01013000 > /EB 05 jmp short 01013007
01013002 |71 5C jno short 01013060 ;代码不被执行
01013004 |0200 add al, byte ptr [eax]
01013006 |61 popad ;代码不被执行
01013007 -\E9 9143FFFF jmp 0100739D
第二种方法,查看文件入口点,
Entrypoint(RAW) = 00010400
EPSection = .data (VitualOffset:00044000/VitualSize:00001A00/RawOffset:00029C00/RawSize:00001A00)
ImageBase = 01000000
,这是文件的最后一节,同样载入,知道入口在0100739D(-01000000=0000739D),739D在第一段(.text)里面,所以删除最后一个区段。修正Size Of Image到00044000。修改Entrypoint到0000739D,保存,查壳
MD5: 409AC6816877AB0CF814FFA300DF66EA
Microsoft Visual C++ 7.0 Method2
已经完成了,执行一下也是可以运行的。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。