首页|Windows进程套接字数据劫持技术研究

Windows进程套接字数据劫持技术研究

扫码查看
随着信息时代的来临,计算机在现代社会的广泛应用和全球化,网络通讯在科学研究、教育、以及人们工作和生活中占有越来越重要的地位。在软件开发中调试应用程序的网络输入和输出数据对于软件工程师们而言是一个非常麻烦的问题。并且,随着大量信息资源在网络上的流通,各种恶意程式和非法数据也混杂其中,它们对计算机的危害是显而易见的,从而信息安全问题也随之而来,如何在计算机中监控以及过滤这些有害数据逐渐成为一个紧迫的问题。因而研究出一种能够对系统任意进程的网络输入和输出进行监控和修改调试的手段具有十分重要的意义。 要实现监控和调试在运行中的进程的网络输入和输出数据,那么必须首先解决一些技术问题,第一是如何在保护模式下访问进程的私有空间;第二是如何截获到任意进程发送到网络或是从网络接收的数据;第三是如何将截获到的数据送至监控调试进程处理并且将处理完毕后的数据返回被监控进程。 就被广泛安装在个人计算机和一部分服务计算机的微软视窗操作系统而言,软件通常通过操作系统提供的套接字网络接口访问网络数据,在视窗操作系统上有两套网络接口,一是由伯克勒大学设计,被称之为BSD套接字的接口,由阻塞同步和非阻塞异步以及轮循机制控制输入和输出工作;另一套是微软公司开发的窗口套接字,由网络消息事件驱动。 Windows进程套接字数据劫持技术的基础部分,Windows应用程序接口API挂接技术,该技术是实现操作系统不支持的特殊功能的应用程序的核心,有相当难度,与传统的基于网络设备接口规范(NDIS)的包过滤技术相比,该技术的不同之处在于它可以在应用层上对任意进程的网络输入和输出数据进行捕获。国际上挂接技术始于Win3.x时代,到现在发展出了两种成熟的注入模式,动态连接库注入法与远线程注入法;以及两种成熟的拦截模式:杰弗瑞的输入节修改法和古老的导出函数入口跳转指令写入法。几乎所有的屏幕取词与翻译软件和一些恶意或病毒程式都采用这四种方法的组合来实现,它们的缺点是无法完全兼容现有的Windows系列操作系统。本文以探索出一种可以通用于现有所有Win32平台的挂接技术为目的,开始从系统核心方面着手研究。 本文详细阐述了视窗系统虚拟内存中相关映像结构,进程与线程同步与通讯,网络套接字接口库。通过对已成熟的技术的详细分析,逐步解决新的挂接技术研究中遇到的各个技术难题,研究出了一种结合断点法与直接指令注入法的新一代套接字数据监控技术,最终实现对任意进程中的网络数据进行监控和调试,并附上VC平台下C++语言编写的示范代码。

李云

展开 >

程序调试 套接字 钩子 数据劫持 软件开发 信息安全 微软视窗操作系统

硕士

软件工程

陈雷霆、杨勇

2005

电子科技大学

中文

TP