基于DLL注入与HOOK技术的数据采集与分析讲解

上传人:最**** 文档编号:116509717 上传时间:2019-11-16 格式:DOC 页数:47 大小:408.50KB
返回 下载 相关 举报
基于DLL注入与HOOK技术的数据采集与分析讲解_第1页
第1页 / 共47页
基于DLL注入与HOOK技术的数据采集与分析讲解_第2页
第2页 / 共47页
基于DLL注入与HOOK技术的数据采集与分析讲解_第3页
第3页 / 共47页
基于DLL注入与HOOK技术的数据采集与分析讲解_第4页
第4页 / 共47页
基于DLL注入与HOOK技术的数据采集与分析讲解_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《基于DLL注入与HOOK技术的数据采集与分析讲解》由会员分享,可在线阅读,更多相关《基于DLL注入与HOOK技术的数据采集与分析讲解(47页珍藏版)》请在金锄头文库上搜索。

1、毕业设计说明书GRADUATE DESIGN设计题目:基于DLL注入与HOOK技术 的数据采集与分析学生姓名: 专业班级:学 院:指导教师: 摘 要摘 要HOOK技术在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。虽然,现在HOOK技术比较新奇 但是对于大多数的非专业的人来说它还是有点难度。Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标

2、窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。 关键词 DLL运行原理;制作与注入;windows api的替换-I-AbstractAbstractHOOK technology in todays society plays a very important role. More and more people are using it. And the number of pe

3、ople using it will continue to increase. HOOK technology, though, now more novelty of nonprofessional people but for most it is a little difficult. Windows system is based on event driven mechanism, after all is the whole system is achieved through message passing. The hook is very important the sys

4、tem interface in Windows system, use it can intercept and handle to other applications, to complete the common application is difficult to achieve function. Hooks to monitor system or process in various event message, sent to the target window message interception and processing. In this way, we wil

5、l be able to install custom of hook in the system, monitoring system of a specific event occurs, perform specific functions, such as intercepting input keyboard, mouse, screen word, from log surveillance and so on. Visible, hook can be used to realize many special and useful function. So for senior

6、programmers, master the programming method of hook is necessary.Keywords DLL works; Production and injection; Replacement of the Windows API -i-目 录目 录摘 要IAbstractII第1章 绪论11.1前景11.2应用性和先进性11.3发展前景21.4个人想法21.5本章小结3第2章 需求与分析52.1 DLL简介52.2注入技术72.3 HOOK技术的原理102.4 Hook的应用模式112.5钩子应用级别122.6 Java简介142.7 Jav

7、a开发环境搭建162.8 Java主要特性16第3章 系统简述193.1设置钩子(HOOK)193.2释放钩子193.3钩子进程203.4调用下一个钩子函数213.5建立一个动态连接库(DLL)21第4章 设计与实现254.1 DLL注入并用钩子函数采集数据源代码254.2数据分析28结 论33参考文献34谢 辞35附 录36-III- 第1章 绪论第1章 绪论1.1 前景你也许一直对金山词霸的屏幕抓词的实现原理感到困惑,你也许希望将你的键盘,鼠标的活动适时的记录下来,甚至你想知道木马在windows操作系统是怎样进行木马dll的加载的.其实这些都是用到了windows的钩子函数。因此本文将对

8、钩子函数的相关知识进行阐述。对于一个商业软件来说,防止不法侵犯是个很重要的问题。这种问题在网络游戏中体现的比较突出。随着网络游戏被越来越多的人所熟知,网游外挂也渐渐走入了人们的视线。网游外挂的泛滥,给游戏运营商带来了不小的损失。后来游戏运营商为了防止游戏玩家使用外挂,还提出过:一旦系统发现某个玩家使用外挂,那么就对其帐号进行查封。因为游戏运行商的这个做法,甚至还有玩家将运营商告上法庭。那么这里又涉及到虚拟财产的问题。由于中国对这方面的立法还比较欠缺,所以对于运营商也好、对于游戏玩家也好,可能这不是最优的解决方案。1.2 应用性和先进性自从Microsoft公司推出第一个版本的Windows操作

9、系统以来,动态链接库(DLL)一直是这个操作系统的基础。Windows API 中的所有函数都包含在DLL中。3个最重要的DLL是:Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于画图和显示文本的各个函数。创建DLL常常比创建应用程序更容易,因为DLL往往包含一组应用程序可以使用的自主函数。在DLL中通常没有用来处理消息循环或创建窗口的支持代码。DLL只是一组源代码模块,每个模块包含了应用程序(可执行文件)或另一个DLL将要调用的一组函数。当所有源代码文件编

10、译后,它们就像应用程序的可执行文件那样被链接程序所链接。但是,对于一个DLL来说,必须设定该连链程序的DLL开关。这个开关使得链接程序能够向产生的DLL文件映像发出稍有不同的信息,这样,操作系统加载程序就能将该文件映像视为一个DLL而不是应用程序。你也许一直对金山词霸的屏幕抓词的实现原理感到困惑,你也许希望将你的键盘,鼠标的活动适时的记录下来,甚至你想知道木马在windows操作系统是怎样进行木马dll的加载的.其实这些都是用到了windows的钩子函数。许多现代操作系统都很注意利用已有的窗口应用程序的能力,为此引入了侦察技术(spying techniques)。HOOK技术完全可以帮你解决

11、这个问题。1.3 发展前景HOOK技术的主要目的不仅仅是提供一些高级的功能,更是为了能够向目标程序中注入用户提供的代码。与那些相对早期的老式操作系统(例如DOS和Windows 3.xx)不同,目前的Windows操作系统(Windows 9x以及Windows NT/2K)已经提供了复杂精密的机制用于为每个进程分配和维护独立的地址空间。这种设计结构实际上提供了内存的保护,因此一个应用程序不可能侵入其它应用程序的地址空间,当然也不能破坏操作系统。但同时也给程序开发中实现钩子(HOOK)带来了难题。1.4 个人想法 我的信息过滤,是通过截获Win32 API调用的HOOK技术来实现的。截获Win

12、32 API调用对于大多数Windows程序开发人员来说都是一个具有挑战性和令人感兴趣的课题。hooking这个术语代表了一种基本的技术手段,通过这种手段可以达到控制某段特定代码执行的目的。hooking技术为我们轻松地改变操作系统和第三方软件的行为提供了一种简单易行的机制,而不用获得他们的源代码。 许多现代操作系统都很注意利用已有的窗口应用程序的能力,为此引入了侦察技术(spying techniques)。hooking技术的主要目的不仅仅是提供一些高级的功能,更是为了能够向目标程序中注入用户提供的代码。 与那些相对早期的老式操作系统(例如DOS和Windows 3.xx)不同,目前的Wi

13、ndows操作系统(Windows 9x以及Windows NT/2K)已经提供了复杂精密的机制用于为每个进程分配和维护独立的地址空间。这种设计结构实际上提供了内存的保护,因此一个应用程序不可能侵入其它应用程序的地址空间,当然也不能破坏操作系统。但同时也给程序开发中实现钩子(hook)带来了难题。对应用程序进行监察的作用 (1)监控API函数 监控API函数的调用为开发人员提供了极大的帮助,使他们可以跟踪API调用过程中的某个特定的不可见的动作,并有利于发现一些没有注意到的错误。例如,它可以监视与API调用的相关的内存空间以检查内存泄露情况。(2)调试 除了传统的调试方法,API钩子也是一种广

14、泛使用的调试技术。引入API钩子技术可以考察各组件的实现以及组件之间的相互关系。通过截获API也可以获取可执行的二进制代码中的某些信息。(3)深入了解操作系统开发人员经常需要了解操作系统内部的实现,以进行程序调试。特别是在某些API没有提供足够的说明文档的情况下,钩子技术可以帮助程序员理解它们的内部结构。(4)扩展原始的功能 通过向窗口应用程序中嵌入用户代码可以方便的扩展程序模块已有的功能。比方说,很多第三方软件不能满足用户对于信息安全级别的要求,程序员可以通过钩子技术监控应用程序,并在原有的功能中加入相关的预处理和对运行结果的处理。这样,不需要修改和重新编译源代码就可以改变应用程序的行为。1

15、.5 本章小结本章对本论文的写作背景、应用性和先进性和发展前景进行了研究。通过DLL注入与HOOK技术完成其它应用程序中大量数据的捕捉、存储和分析。主要使用的关键技术:DLL运行原理、制作与注入,windows API的替换等。-33- 第2章 需求与分析第2章 需求与分析2.1 DLL简介自从Microsoft公司推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是这个操作系统的基础。Windows API 中的所有函数都包含在DLL中。3个最重要的DLL是: Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于画图和显示文本的各个函数。创建DLL常常比创建应用程序更容易,因为DLL往往包含一组应用程序可以使用的自主函数。在DLL中通常没有用来处理消息循环或创建窗口的支持代码。DLL只是一组源代码模块,每个模块包含了应用程序(可执行文件)或另一个DLL将要调用的一组函数。当所有源代码文件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号