一种将dll注入目标进程的方法和系统的制作方法

文档序号:9326691阅读:322来源:国知局
一种将dll注入目标进程的方法和系统的制作方法
【技术领域】
[0001]本发明涉及一种将DLL注入目标进程的方法和系统,特别是涉及一种适用于将DLL注入目标进程的方法和系统。
【背景技术】
[0002]DLL注入技术的目的是实现应用程序主动跨越进程边界访问其他进程的数据,从而控制目标进程的行为。它的用途很广泛,这主要体现在:
(1)你要操纵的对象涉及的数据不在自身进程内;
(2)你想对目标进程中的系统函数进行拦截;
(3)你想编写一些函数用于增强或增加目标进程功能;
(4)隐藏自己的程序(将自己程序的主要功能注入到其他进程运行,本身的进程退出);
从以上列举的用途不难看出,DLL注入技术不仅可以用来搞破坏,
如果我们使用得当,它将成为我们控制目标进程的一个强大的武器。
[0003]目前各大安全厂商所使用的主流DLL注入技术主要分为以下几类:
使用注册表注入DLL,缺点是只能注入那些使用了 uSer32.dll的进程,并且不能动态撤销,只能跟随系统启动和关闭;
使用windows挂钩来注入DLL,缺点是只能控制窗口类消息;
使用远程线程来注入DLL,缺点是容易被杀毒软件拦截;
使用木马DLL来注入DLL,缺点是难度大、工作量大。

【发明内容】

[0004]本发明要解决的技术问题是提供一种能够实现数据防泄漏,不受进程类型限制,不受系统启动和关闭的限制,能够实现多种消息类型控制,不容易被杀毒软件拦截,注入容易,且工作量小的将DLL注入目标进程的方法和系统。
[0005]本发明采用的技术方案如下:一种将DLL注入目标进程的方法,其特征在于,采用内核修改进程PE内存的机制,将具有控制功能的目的DLL注入到目标进程导入表中。不受进程类型控制,能够实现多种消息类型控制,有效实现数据的防泄漏。
[0006]具体方法为:设置用于监测操作系统中程序启动的DLL注入模块,将DLL注入模块注册到操作系统中,当有目标进程向操作系统请求启动时,操作系统将该请求通知DLL注入模块,用户根据需要将待注入的目的DLL插入到该目标程序导入表中。注入容易,工作量小。所述DLL注入模块为内核驱动程序。
[0007]注入目的DLL的具体方法步骤为:
步骤一、进程向操作系统请求启动;
步骤二、操作系统收到进程启动请求,将该启动请求通知DLL注入模块;
步骤三、DLL注入模块判断该启动请求进程是否为目标进程,是则进入下一步,否则进入步骤五;
步骤四、DLL注入模块获取目标进程的基地址,分析PE文件格式,找到可保存新导入表的内存空间,将待注入的目的DLL插入该目标程序导入表,形成新的导入表替换旧导入表;步骤五、DLL注入模块响应步骤二中的操作系统的通知;
步骤六、操作系统通知进程加载导入表中的DLL。
[0008]进程或目标进程加载完导入表中的DLL后,开始在用户界面正常运行。此时,在目标进程启动后,使用者的DLL会被加载,接下来可在目标进程中进行操作,用户就能对目标进程中的系统函数进行拦截,对窗口、消息等进行拦截过滤,从而实现对其的控制。
[0009]采用向操作系统注册进程/模块回调的方法,设置用于监测操作系统启动的DLL注入模块。DLL注入模块向操作系统注册进程/模块回调,操作系统反馈回调注册成功,则能够继续完成对目标进程的启动监测。在进程启动的准备阶段获取系统为进程分配的基地址,优先级更高。
[0010]所述步骤四中,将待注入的目的DLL插入该目标程序导入表的系统关键DLL之后,其他非系统核心DLL之前。改变DLL在目标进程导入表中的加载顺序,这样能够保证DLL在目标进程依赖的其他非系统核心DLL之前被加载。
[0011]所述方法还包括:若启动进程为目标进程,在目标进程加载完导入表中的DLL后,恢复该目标进程的旧的导入表。为保存新导入表找到合适的内存空间,构造新的导入表替换旧的导入表,并在DLL注入目标进程后恢复旧的导入表,骗过进程校验,保证目标进程初始环境不变。
[0012]所述目标进程默认为所有非系统关键进程。
[0013]一种将DLL注入目标进程的系统,其特征在于,包括:
DLL注入模块,通过操作系统内核监测目标进程的启动请求,并向目标进程注入目的DLL后响应操作系统内核;
目标进程设置模块,设置需要注入的目标进程;
操作系统内核,收到进程启动请求后通知DLL注入模块,并等待DLL注入模块的响应,收到响应后通知进程开始加载导入列表中的DLL ;
DLL注入模块还包括判断模块,判断请求启动的进程是否为目标进程。
[0014]所述系统还包括:
目标进程旧导入表恢复模块,等待目标进程的DLL加载完后,恢复旧导入表的地址和数据。
[0015]与现有技术相比,本发明的有益效果是:具有控制全面,隐蔽性好,灵活性高等优点,能够应用于数据防泄漏,增强数据防护的等级;能够注入所有非系统关键进程,注入系统explorer的技术可应用于安全桌面技术;能够适应多种常用的操作系统,包括Windows XP、Windows Server 2003、Windows 7等。实现了轻松将DLL注入技术用于主机数据的防泄漏应用中,对于我国主机安全数据防泄漏技术的标准化,将起到积极的促进作用。
【附图说明】
[0016]图1为本发明其中一实施例的原理示意图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0018]本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。S卩,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0019]具体实施例一
将DLL注入目标进程的系统包括:DLL注入模块,通过操作系统内核监测目标进程的启动请求,并向目标进程注入目的DLL后响应操作系统内核;目标进程设置模块,设置需要注入的目标进程;操作系统内核,收到进
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1