在M$的32位操作系统中,有许许多多的办法可以实现进程隐藏的功能。在Win98下将程序注册为系统服务就可以实现在进程列表里的隐藏,但是在NT/2000下,由于操作系统添加了许多特性使得进程的隐藏提到了一个新的高度。其中,DLL木马是非常流行的一种形式,它将自己添加到其他可执行文件的进程里,这样在任务管理器里就不会出现我们的DLL文件,而是我们DLL的载体EXE文件。在Jeffrey Richter大师的文章里提到了好几种插入DLL的方式,比如说在注册表的AppInit_DLLs里添加木马DLL,特洛伊DLL方式,使用Windows挂钩和远程线程的插入等等,在此我就不做详细介绍了。现在给大家介绍一种隐藏进程的新方法,它仍然是以DLL的形式存在的(同样需要由其他可执行文件来加载),而且还具有无端口的特性。它就是使用了Windows Socket 2的新特性,服务提供者接口(Service Provider Interface),SPI试图支持所有的32位Windows操作系统,当然也包括Windows95。
二)Windows Socket 2 SPI技术概述
Winsock 2 SPI是一个新特性,是为书写服务提供者的人员提供的。Winsock 2不仅提供了一个供应用程序访问网络服务的Windows socket应用程序编程接口(API),还包含了由传输服务提供者和名字解析服务提供者实现的Winsock服务提供者接口(SPI)和ws2_32.dll。在此以传输服务提供者为例来实现进程的隐藏。如下是应用程序,Ws2_32.dll和传输服务提供者接口之间的层次关系:
----------------------------
|Windows socket 2 应用程序|
----------------------------Windows socket 2 API
| WS2_32.DLL |
----------------------------Windows socket 2 传输SPI
| 传输服务提供者(DLL) |
----------------------------
传输服务提供者是以DLL的形式存在的,它向外只有一个入口函数,那就是WSPStartup,其中的参数LPWSAPRTOCOL_INFOW结构指针决定了服务提供者的类型,其他的30个传输服务提供者函数是以分配表的方式调用的。当网络应用程序调用WSASocket/socket函数创建套接字时,会有三个参数:地址族,套接字类型和协议,正是这三个参数共同决定了是由哪一个类型的传输服务提供者来实现本应用程序的功能。在整个层次结构中,Ws2_32.dll只是起到了媒介的作用,应用程序则是对用户功能的实现,而真正实现网络传输功能的是传输服务提供者接口。当前系统中有一些默认的服务提供者,它们已经实现了大部分基本的功能,所以我们自己在书写服务提供者程序时,只须对数据报进行“修饰”后,将数据报传送给系统服务提供者来实现剩下的功能。
文字:http://www.qqread.com/process-info/y352074.html相关专题
- 木马专区 (881篇文章)
- Wlan组网----家庭专题 (4217篇文章)
- 安全频道 (11364篇文章)
- 病毒/木马/恶意软件 (3420篇文章)
- 病毒/木马/蠕虫 (3378篇文章)
- 分析进程 识别病毒木马隐匿之术 (0次浏览)



