-
-
[原创]感染Win32.Agent.??之修复代码
-
发表于:
2010-8-4 16:00
12426
-
[原创]感染Win32.Agent.??之修复代码
某的机器,前几日意外染毒,由于这几日在试用ZoneAlarm,对机器表现把握不准,连什么时候中毒都不知道。。。(在此先深切怀念一下我用了七年多的PFW,可怜了我抠抠索索出钱买的正版序列号:( 现在搞得有正版序列号还得用试用版T_T)。
直到突然发现机器表现有一些异常了,一刷autoruns,Image Hijacks一大堆!果然中毒了!
我对中毒过敏,立刻还原系统。还原后,新装个驱动,再刷autoruns,啊!又来了!
分区根目录下并没有autoruns.inf之类的触发。难道是感染型病毒?!
我在每个分区下都放了一个小EXE,当蜜罐使。结果一看,原本4.5K的变30.5K了,果然是感染了。可是我的驱动是压缩包里的啊,这*毒,连压缩包也不放过!!
完蛋完蛋,我长时间来收集一些软件啊程序啊啥的,看来要废了,我要撞墙了!!
不甘心啊不甘心。
那就看看有没有专杀吧,给个样本让别人用杀软看看是什么毒,结果查出来叫Win32.Agent.??(后面叫什么,忘记了),上网查有没有专杀工具,结果都没有。全是要装杀软。俺与杀软有不共戴天之仇
,如何也不会装。而且杀软那些技俩俺也领教过,但凡感染的文件,一律做删除处理,根本不会恢复它。
看来,得自己动手试试。
看看这个感染复不复杂吧?原PE与感染PE一对比,加之早早分析了一下,发现如下几点:
1.新加一个节区,名字是.tc。
2.PE入口被修改,指向新加节区头。
3.区段数目+1,映像大小修改,代码块大小修改
仅这些特征,看来有恢复的希望。
于是有了之后的修复代码。其实修复手段很简单了,就是把感染过程反着做就行了嘛。
不过代码里有加了压缩包的处理(加解压我并不熟悉,全是临时学习WinRAR命令行的处理。测试的过程中,可能是系统设置问题,发现解压恢复后,空文件夹无法删除。不过无伤大雅了)
这里先给一下被感染PE的入口情况:
00408000 hget.<ModuleEntryPoint> 64:8B3D 30000000 mov edi, dword ptr fs:[30]
00408007 8B7F 0C mov edi, dword ptr [edi+C]
0040800A 8B7F 1C mov edi, dword ptr [edi+1C]
0040800D 8B3F mov edi, dword ptr [edi]
0040800F 8B7F 08 mov edi, dword ptr [edi+8]
00408012 E8 00000000 call hget.00408017
00408017 5B pop ebx
00408018 81EB 17104000 sub ebx, hget.00401017
0040801E 89BB DC114000 mov dword ptr [ebx+4011DC], edi
00408024 8BF7 mov esi, edi
00408026 0376 3C add esi, dword ptr [esi+3C]
00408029 8B76 78 mov esi, dword ptr [esi+78]
0040802C 03F7 add esi, edi
0040802E 56 push esi
0040802F 8B6E 18 mov ebp, dword ptr [esi+18]
00408032 8B76 20 mov esi, dword ptr [esi+20]
00408035 03F7 add esi, edi
00408037 33D2 xor edx, edx
00408039 56 push esi
0040803A 8B3E mov edi, dword ptr [esi]
0040803C 03BB DC114000 add edi, dword ptr [ebx+4011DC]
00408042 8DB3 9E114000 lea esi, dword ptr [ebx+40119E]
00408048 B9 0F000000 mov ecx, 0F
0040804D F3:A6 repe cmps byte ptr es:[edi], byte ptr [es>
0040804F 75 06 jnz short hget.00408057
00408051 5E pop esi
00408052 8BD6 mov edx, esi
00408054 5E pop esi
00408055 EB 12 jmp short hget.00408069
00408057 5E pop esi
00408058 83C6 04 add esi, 4
0040805B 42 inc edx
0040805C 90 nop
0040805D 3BD5 cmp edx, ebp
0040805F ^ 72 D8 jb short hget.00408039
00408061 83EC 04 sub esp, 4
00408064 E9 18010000 jmp hget.00408181 ;这里有一个跳转,硬编码
00408181 - E9 0AE5FFFF jmp hget.00406690 ;这里跳向原OEP
[培训]科锐逆向工程师培训第53期2025年7月8日开班!