扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
前言,新款的灰鸽子总给人无处不在的感觉, 自己就曾在朋友主机中碰到多次,每次只能手工判断并清除.在看到此款检测器时,作了少许测试。效果很不错, 就产生了想了解她是如何工作的!^_^
先来看看系统未感染 灰鸽子 时的执行情况=>>>
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=0 表示无可操作句柄
00459E3E 833D ACDC4500 0>cmp dword ptr ds:[45DCAC],0
00459E45 0F84 70030000 je 超强灰鸽.0045A1BB ; jump
OpenFileMappingA()函数执行后的堆栈情况:
0012F5E4 00000004 |Access = FILE_MAP_READ
0012F5E8 00000000 |InheritHandle = FALSE
0012F5EC 0045A210 \MappingName = "GPigeon5_Shared"
0045A1BB 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC] ;跳到此处
0045A1C1 8B80 20020000 mov eax,dword ptr ds:[eax+220]
0045A1C7 BA C8A34500 mov edx,超强灰鸽.0045A3C8
没有检测到 灰鸽子 Vip 2005 服务端
0045A1CC 8B08 mov ecx,dword ptr ds:[eax]
ecx=0x427c4c ASCII "4AA"
0045A1CE FF51 38 call dword ptr ds:[ecx+38] ; Retn eax=0
0045A1D1 833D ACDC4500 0>cmp dword ptr ds:[45DCAC],0
0045A1D8 74 0B je short 超强灰鸽.0045A1E5 ; Jump
0045A1DA A1 ACDC4500 mov eax,dword ptr ds:[45DCAC]
0045A1DF 50 push eax
0045A1E0 E8 F7BDFAFF call
0045A1E5 33C0 xor eax,eax
0045A1E7 5A pop edx
0045A1E8 59 pop ecx
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
00459E65 6A 00 push 0
00459E67 6A 04 push 4
00459E69 A1 ACDC4500 mov eax,dword ptr ds:[45DCAC]
eax=0xcc \\0xb4 \\0xd8,句柄值
00459E6E 50 push eax
将此句柄值压入堆栈,供下一函数用
00459E6F E8 98C3FAFF call
Retn EAX=01330000=》ASCII "一大串数字"
00459E74 8BF0 mov esi,eax
堆栈值:
eax=01310000, (ASCII "5F7E8111692AAA7694C721CB5300D7072A14D8CE7138EA0903AEAA23D8907C6072109D983725466507924E2237B9AF5BFBA7FC98060E8E620FE692E8DA4EE8D963D6241181D3988E9A13550DC7AF1E816F8FB154967BA939DDF9F6AC6F9B225CBDBDADFF3410875CA95DC8BA5C46BBC9A79DDA0F)
esi=00429028 (超强灰鸽.00429028)
? 不知道是什么数据来的 ??? 检验码?
00459E76 85F6 test esi,esi
00459E78 74 62 je short 超强灰鸽.00459EDC ; NoT jUMP
00459E7A 8D45 F4 lea eax,dword ptr ss:[ebp-C]
EAX=0X12F640
00459E7D 8BD6 mov edx,esi
将那串字符串传入EDX中
00459E7F E8 48A2FAFF call 超强灰鸽.004040CC ; ECX=00,EDX=00
00459E84 B2 01 mov dl,1 ; edx=0x1
00459E86 A1 70954500 mov eax,dword ptr ds:[459570]
00459E8B E8 48F7FFFF call 超强灰鸽.004595D8
00459E90 8BF0 mov esi,eax
00459E92 8B45 F4 mov eax,dword ptr ss:[ebp-C] ;
将那串字符串再入传入
00459E95 E8 FAA4FAFF call 超强灰鸽.00404394
00459E9A 8BD0 mov edx,eax
00459E9C 8D45 EC lea eax,dword ptr ss:[ebp-14]
00459E9F E8 28A2FAFF call 超强灰鸽.004040CC
00459EA4 8B45 EC mov eax,dword ptr ss:[ebp-14]
EAX=01024398,ASCII"特征串"
00459EA7 8D4D F0 lea ecx,dword ptr ss:[ebp-10]
00459EAA BA 5CA24500 mov edx,超强灰鸽.0045A25C
edx=0x45a25c ASCII "20050101"
00459EAF E8 A0F5FFFF call 超强灰鸽.00459454
00459EB4 8B55 F0 mov edx,dword ptr ss:[ebp-10]
00459EB7 8BC6 mov eax,esi
00459EB9 E8 FEF7FFFF call 超强灰鸽.004596BC
00459EBE 8D4D F8 lea ecx,dword ptr ss:[ebp-8]
00459EC1 33D2 xor edx,edx
00459EC3 8BC6 mov eax,esi
00459EC5 E8 9AF8FFFF call 超强灰鸽.00459764
00459ECA 8BC6 mov eax,esi
00459ECC E8 0792FAFF call 超强灰鸽.004030D8
00459ED1 A1 ACDC4500 mov eax,dword ptr ds:[45DCAC]
00459ED6 50 push eax
EAX=0XCC,句柄
00459ED7 E8 00C1FAFF call
关闭操作的句柄
00459EDC 8D45 E8 lea eax,dword ptr ss:[ebp-18]
00459EDF 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
ECX=010252F0=ASCII "83034" ,VIP 用户名
00459EE2 BA 70A24500 mov edx,超强灰鸽.0045A270
00459EE7 E8 F4A2FAFF call 超强灰鸽.004041E0
00459EEC 8B55 E8 mov edx,dword ptr ss:[ebp-18]
传入编辑框中=》Vip用户名:83034
00459EEF 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
00459EF5 8B80 20020000 mov eax,dword ptr ds:[eax+220]
00459EFB 8B08 mov ecx,dword ptr ds:[eax]
00459EFD FF51 38 call dword ptr ds:[ecx+38]
00459F00 E8 37FCFFFF call 超强灰鸽.00459B3C
该函数检测是否存在隐藏模块,返回eax=0x1 表示检测到隐藏模块
00459F05 84C0 test al,al
00459F07 0F84 96020000 je 超强灰鸽.0045A1A3 ; not jump
00459F0D E8 E6FAFFFF call 超强灰鸽.004599F8
打开令牌环,设置系统调试权限
00459F12 E8 61FCFFFF call 超强灰鸽.00459B78
检测隐藏模块,映射出具体的文件名
00459F17 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
00459F1D 8B80 20020000 mov eax,dword ptr ds:[eax+220]
00459F23 BA 84A24500 mov edx,超强灰鸽.0045A284
00459F28 8B08 mov ecx,dword ptr ds:[eax]
00459F2A FF51 38 call dword ptr ds:[ecx+38]
该函数处理一些消息
00459F2D A1 C8DC4500 mov eax,dword ptr ds:[45DCC8]
00459F32 33D2 xor edx,edx
00459F34 52 push edx
00459F35 50 push eax
00459F36 8D45 E0 lea eax,dword ptr ss:[ebp-20]
00459F39 E8 EAE1FAFF call 超强灰鸽.00408128
获取隐藏进程ID ?
00459F3E 8B4D E0 mov ecx,dword ptr ss:[ebp-20]
ecx=00ee546c ascii "916"\\1804
00459F41 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
00459F44 BA B4A24500 mov edx,超强灰鸽.0045A2B4
00459F49 E8 92A2FAFF call 超强灰鸽.004041E0
00459F4E 8B55 E4 mov edx,dword ptr ss:[ebp-1C]
00459F51 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
00459F57 8B80 20020000 mov eax,dword ptr ds:[eax+220]
00459F5D 8B08 mov ecx,dword ptr ds:[eax]
00459F5F FF51 38 call dword ptr ds:[ecx+38]
隐藏的进程ID:1804
00459F62 8D45 DC lea eax,dword ptr ss:[ebp-24]
00459F65 8B0D B8DC4500 mov ecx,dword ptr ds:[45DCB8]
00459F6B BA CCA24500 mov edx,超强灰鸽.0045A2CC
00459F70 E8 6BA2FAFF call 超强灰鸽.004041E0
00459F75 8B55 DC mov edx,dword ptr ss:[ebp-24]
00459F78 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
00459F7E 8B80 20020000 mov eax,dword ptr ds:[eax+220]
00459F84 8B08 mov ecx,dword ptr ds:[eax]
00459F86 FF51 38 call dword ptr ds:[ecx+38]
安装文件名: LWVVKL_
00459F89 8D45 D8 lea eax,dword ptr ss:[ebp-28]
00459F8C 8B0D BCDC4500 mov ecx,dword ptr ds:[45DCBC]
00459F92 BA E4A24500 mov edx,超强灰鸽.0045A2E4
00459F97 E8 44A2FAFF call 超强灰鸽.004041E0
00459F9C 8B55 D8 mov edx,dword ptr ss:[ebp-28]
00459F9F 8B83 FC020000 mov eax,dword ptr ds:[ebx+2FC]
00459FA5 8B80 20020000 mov eax,dword ptr ds:[eax+220]
00459FAB 8B08 mov ecx,dword ptr ds:[eax]
00459FAD FF51 38 call dword ptr ds:[ecx+38]
主DLL文件名: 3WVVK+3
00459FB0 8D45 D4 lea eax,dword ptr ss:[ebp-2C]
00459FB3 E8 94FDFFFF call 超强灰鸽.00459D4C
GetWindowsDirectoryA()
00459FB8 FF75 D4 push dword ptr ss:[ebp-2C]
SS:[0012F620]=00EE54E4 ASCII "D:\WINDOWS\"
00459FBB 8D45 D0 lea eax,dword ptr ss:[ebp-30]
00459FBE 50 push eax
00459FBF A1 B8DC4500 mov eax,dword ptr ds:[45DCB8]
00459FC4 E8 CBA1FAFF call 超强灰鸽.00404194
00459FC9 8BC8 mov ecx,eax
00459FCB 83E9 04 sub ecx,4
00459FCE BA 01000000 mov edx,1
00459FD3 A1 B8DC4500 mov eax,dword ptr ds:[45DCB8]
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。