文章介绍两个方法修复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

已经完成了,执行一下也是可以运行的。