0045A1E9 59 pop ecx 0045A1EA 64:8910 mov dword ptr fs:[eax],edx 0045A1ED 68 07A24500 push 超强灰鸽.0045A207 0045A1F2 8D45 B8 lea eax,dword ptr ss:[ebp-48] 0045A1F5 BA 12000000 mov edx,12 0045A1FA E8 F99CFAFF call 超强灰鸽.00403EF8 0045A1FF C3 retn ;retn to 0x45a207
剩下的是一些返回后的处理...
这里可以看到,检测系统是否存在 "灰鸽子 Vip 2005 服务端" 是通过 OpenFileMappingA()打开一个现成的文件映射对象,如存在则返回成功打开的句柄,否则退出往下的检测清除程序段,用C简单可描述成:
hMap = OpenFileMapping(FILE_MAP_READ,FALSE,"GPigeon5_Shared");
if (hMap == NULL) { "没有检测到 灰鸽子 Vip 2005 服务端!" }
此时, 程序编辑中出来提示信息:"没有检测到 灰鸽子 Vip 2005 服务端!"
接着进入 灰鸽子 感染系统后 的检测及清除代码的分析...
同样地, 程序照常中断在此处=>>
00459E2B 68 10A24500 push 超强灰鸽.0045A210 ; ASCII "GPigeon5_Shared" 00459E30 6A 00 push 0 00459E32 6A 04 push 4 00459E34 E8 E3C3FAFF call 00459E39 A3 ACDC4500 mov dword ptr ds:[45DCAC],eax ; 如果检测到:eax=0xcc 0xb4 0xd8 句柄值,如无:eax=0 00459E3E 833D ACDC4500 00 cmp dword ptr ds:[45DCAC],0 00459E45 0F84 70030000 je 超强灰鸽.0045A1BB ; not jump 00459E4B 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC] ; eax=01023f24 00459E51 8B80 20020000 mov eax,dword ptr ds:[eax+220] ; eax=01024208 00459E57 BA 28A24500 mov edx,超强灰鸽.0045A228 ; edx=0x45a228 => 检测到 灰鸽子 Vip 2005 0105 服务端存在 00459E5C 8B08 mov ecx,dword ptr ds:[eax] ; ecx=0x427c4c ; ASCII "4AA" 00459E5E FF51 38 call dword ptr ds:[ecx+38] ; 编辑框中显示检测到的字符 00459E61 6A 00 push 0 00459E63 6A 00 push 0
|