CN105045605B - 一种将dll注入目标进程的方法和系统 - Google Patents
一种将dll注入目标进程的方法和系统 Download PDFInfo
- Publication number
- CN105045605B CN105045605B CN201510536417.4A CN201510536417A CN105045605B CN 105045605 B CN105045605 B CN 105045605B CN 201510536417 A CN201510536417 A CN 201510536417A CN 105045605 B CN105045605 B CN 105045605B
- Authority
- CN
- China
- Prior art keywords
- dll
- target
- target process
- operating system
- injection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种将DLL注入目标进程的方法和系统。设置用于监测操作系统中程序启动的DLL注入模块,将DLL注入模块注册到操作系统中,当有目标进程向操作系统请求启动时,操作系统将该请求通知DLL注入模块,用户根据需要将待注入的目的DLL插入到该目标程序的DLL中。具有控制全面,隐蔽性好,灵活性高等优点,能够应用于数据防泄漏,增强数据防护的等级;能够注入所有非系统关键进程,注入系统explorer的技术可应用于安全桌面技术;能够适应多种常用的操作系统,包括Windows XP、Windows Server 2003、Windows 7等。
Description
技术领域
本发明涉及一种将DLL注入目标进程的方法和系统,特别是涉及一种适用于将DLL注入目标进程的方法和系统。
背景技术
DLL注入技术的目的是实现应用程序主动跨越进程边界访问其他进程的数据,从而控制目标进程的行为。它的用途很广泛,这主要体现在:
(1)你要操纵的对象涉及的数据不在自身进程内;
(2)你想对目标进程中的系统函数进行拦截;
(3)你想编写一些函数用于增强或增加目标进程功能;
(4)隐藏自己的程序(将自己程序的主要功能注入到其他进程运行,本身的进程退出);
从以上列举的用途不难看出,DLL注入技术不仅可以用来搞破坏,
如果我们使用得当,它将成为我们控制目标进程的一个强大的武器。
目前各大安全厂商所使用的主流DLL注入技术主要分为以下几类:
使用注册表注入DLL,缺点是只能注入那些使用了user32.dll的进程,并且不能动态撤销,只能跟随系统启动和关闭;
使用windows挂钩来注入DLL,缺点是只能控制窗口类消息;
使用远程线程来注入DLL,缺点是容易被杀毒软件拦截;
使用木马DLL来注入DLL,缺点是难度大、工作量大。
发明内容
本发明要解决的技术问题是提供一种能够实现数据防泄漏,不受进程类型限制,不受系统启动和关闭的限制,能够实现多种消息类型控制,不容易被杀毒软件拦截,注入容易,且工作量小的将DLL注入目标进程的方法和系统。
本发明采用的技术方案如下: 一种将DLL注入目标进程的方法,其特征在于,采用内核修改进程PE内存的机制,将具有控制功能的目的DLL注入到目标进程导入表中。不受进程类型控制,能够实现多种消息类型控制,有效实现数据的防泄漏。
具体方法为:设置用于监测操作系统中程序启动的DLL注入模块,将DLL注入模块注册到操作系统中,当有目标进程向操作系统请求启动时,操作系统将该请求通知DLL注入模块,用户根据需要将待注入的目的DLL插入到该目标程序导入表中。注入容易,工作量小。所述DLL注入模块为内核驱动程序。
注入目的DLL的具体方法步骤为:
步骤一、进程向操作系统请求启动;
步骤二、操作系统收到进程启动请求,将该启动请求通知DLL注入模块;
步骤三、DLL注入模块判断该启动请求进程是否为目标进程,是则进入下一步,否则进入步骤五;
步骤四、DLL注入模块获取目标进程的基地址,分析PE文件格式,找到可保存新导入表的内存空间,将待注入的目的DLL插入该目标程序导入表,形成新的导入表替换旧导入表;
步骤五、DLL注入模块响应步骤二中的操作系统的通知;
步骤六、操作系统通知进程加载导入表中的DLL。
进程或目标进程加载完导入表中的DLL后,开始在用户界面正常运行。此时,在目标进程启动后,使用者的DLL会被加载,接下来可在目标进程中进行操作,用户就能对目标进程中的系统函数进行拦截,对窗口、消息等进行拦截过滤,从而实现对其的控制。
采用向操作系统注册进程/模块回调的方法,设置用于监测操作系统启动的DLL注入模块。DLL注入模块向操作系统注册进程/模块回调,操作系统反馈回调注册成功,则能够继续完成对目标进程的启动监测。在进程启动的准备阶段获取系统为进程分配的基地址,优先级更高。
所述步骤四中,将待注入的目的DLL插入该目标程序导入表的系统关键DLL之后,其他非系统核心DLL之前。改变DLL在目标进程导入表中的加载顺序,这样能够保证DLL在目标进程依赖的其他非系统核心DLL之前被加载。
所述方法还包括:若启动进程为目标进程,在目标进程加载完导入表中的DLL后,恢复该目标进程的旧的导入表。为保存新导入表找到合适的内存空间,构造新的导入表替换旧的导入表,并在DLL注入目标进程后恢复旧的导入表,骗过进程校验,保证目标进程初始环境不变。
所述目标进程默认为所有非系统关键进程。
一种将DLL注入目标进程的系统,其特征在于,包括:
DLL注入模块,通过操作系统内核监测目标进程的启动请求,并向目标进程注入目的DLL后响应操作系统内核;
目标进程设置模块,设置需要注入的目标进程;
操作系统内核,收到进程启动请求后通知DLL注入模块,并等待DLL注入模块的响应,收到响应后通知进程开始加载导入列表中的DLL;
DLL注入模块还包括判断模块,判断请求启动的进程是否为目标进程。
所述系统还包括:
目标进程旧导入表恢复模块,等待目标进程的DLL加载完后,恢复旧导入表的地址和数据。
与现有技术相比,本发明的有益效果是:具有控制全面,隐蔽性好,灵活性高等优点,能够应用于数据防泄漏,增强数据防护的等级; 能够注入所有非系统关键进程,注入系统explorer的技术可应用于安全桌面技术;能够适应多种常用的操作系统,包括WindowsXP、Windows Server 2003、Windows 7等。实现了轻松将DLL注入技术用于主机数据的防泄漏应用中,对于我国主机安全数据防泄漏技术的标准化,将起到积极的促进作用。
附图说明
图1为本发明其中一实施例的原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
具体实施例一
将DLL注入目标进程的系统包括:DLL注入模块,通过操作系统内核监测目标进程的启动请求,并向目标进程注入目的DLL后响应操作系统内核;目标进程设置模块,设置需要注入的目标进程;操作系统内核,收到进程启动请求后通知DLL注入模块,并等待DLL注入模块的响应,收到响应后通知进程开始加载导入列表中的DLL;DLL注入模块还包括判断模块,判断请求启动的进程是否为目标进程。
将DLL注入目标进程的方法为:采用内核修改进程PE内存的机制,将具有控制功能的目的DLL注入到目标进程导入表中。这样,DLL的注入不受进程类型控制,能够实现多种消息类型控制,有效实现数据的防泄漏。
进一步地,设置用于监测操作系统中程序启动的DLL注入模块,将DLL注入模块注册到操作系统中,当有目标进程向操作系统请求启动时,操作系统将该请求通知DLL注入模块,用户根据需要将待注入的目的DLL插入到该目标程序的DLL中。
在本具体实施例中,具体的注入方法步骤为:一、进程向操作系统请求启动;二、操作系统收到进程启动请求,将该启动请求通知DLL注入模块;三、DLL注入模块判断该启动请求进程是否为目标进程,是则进入下一步,否则进入步骤五;四、DLL注入模块获取目标进程的基地址,分析PE文件格式,找到可保存新导入表的内存空间,将待注入的目的DLL插入该目标程序导入表中,形成新的导入表替换旧导入表;五、DLL注入模块响应步骤二中的操作系统的通知;六、操作系统通知进程加载导入表中的DLL。
进程或目标进程加载完导入表中的DLL后,开始在用户界面正常运行。此时,在目标进程启动后,使用者的DLL会被加载,接下来可在目标进程中进行操作,用户就能对目标进程中的系统函数进行拦截,对窗口、消息等进行拦截过滤,从而实现对其的控制。
在本具体实施例中,采用向操作系统注册进程/模块回调的方法,设置用于监测操作系统启动的DLL注入模块。DLL注入模块向操作系统注册进程/模块回调,操作系统反馈回调注册成功,则能够继续完成对目标进程的启动监测。在进程启动的准备阶段获取系统为进程分配的基地址,优先级更高。
在本具体实施例中,所述步骤四中,将待注入的目的DLL插入该目标程序导入表的系统关键DLL之后,其他非系统核心DLL之前。改变DLL在目标进程导入表中的加载顺序,这样能够保证DLL在目标进程依赖的其他非系统核心DLL之前被加载。
在本具体实施例中,所述目标进程默认为所有非系统关键进程,用户能够根据自己的需要进行具体设置。
具体实施例二
基于具体实施例一,所述系统还包括:目标进程旧导入表恢复模块,等待目标进程的DLL加载完后,恢复旧导入表的地址和数据。
若启动进程为目标进程,在目标进程加载完导入表中的DLL后,恢复该目标进程的旧的导入表。为保存新导入表找到合适的内存空间,构造新的导入表替换旧的导入表,并在DLL注入目标进程后恢复旧的导入表,这样便能骗过进程校验,保证目标进程初始环境不变。
Claims (8)
1.一种将DLL注入目标进程的方法,其特征在于,采用内核修改进程PE内存的机制,将具有控制功能的目的DLL注入到目标进程中;
具体方法为:设置用于监测操作系统中程序启动的DLL注入模块,将DLL注入模块注册到操作系统中,当有目标进程向操作系统请求启动时,操作系统将该请求通知DLL注入模块,用户根据需要将待注入的目的DLL插入到目标程序导入表中。
2.根据权利要求1所述的将DLL注入目标进程的方法,其特征在于,注入目的DLL的具体方法步骤为:
步骤一、进程向操作系统请求启动;
步骤二、操作系统收到进程启动请求,将该启动请求通知DLL注入模块;
步骤三、DLL注入模块判断该启动请求进程是否为目标进程,是则进入下一步,否则进入步骤五;
步骤四、DLL注入模块获取目标进程的基地址,分析PE文件格式,找到可保存新目标程序导入表的内存空间,将待注入的目的DLL插入该目标程序导入表中,形成新的目标程序导入表替换旧目标程序导入表;
步骤五、DLL注入模块响应步骤二中的操作系统的通知;
步骤六、操作系统通知进程加载新的目标程序导入表中的DLL。
3.根据权利要求2所述的将DLL注入目标进程的方法,其特征在于,采用向操作系统注册进程/模块回调的方法,设置用于监测操作系统启动的DLL注入模块。
4.根据权利要求2所述的将DLL注入目标进程的方法,其特征在于,所述步骤四中,将待注入的目的DLL插入该目标程序导入表的系统关键DLL之后,其他非系统核心DLL之前。
5.根据权利要求2所述的将DLL注入目标进程的方法,其特征在于,所述方法还包括:若启动进程为目标进程,在目标进程加载完新的目标程序导入表中的DLL后,恢复该目标进程的旧的目标程序导入表。
6.根据权利要求2所述的将DLL注入目标进程的方法,其特征在于,所述目标进程默认为所有非系统关键进程。
7.一种将DLL注入目标进程的系统,其特征在于,包括:
DLL注入模块,通过操作系统内核监测目标进程的启动请求,并向目标进程注入目的DLL后响应操作系统内核;
目标进程设置模块,设置需要注入的目标进程;
操作系统内核,收到进程启动请求后通知DLL注入模块,并等待DLL注入模块的响应,收到响应后通知进程开始加载注入了目的DLL的目标程序导入表中的DLL;
DLL注入模块还包括判断模块,判断请求启动的进程是否为目标进程。
8.根据权利要求7所述 的将DLL注入目标进程的系统,其特征在于,所述系统还包括:
目标进程旧目标程序导入表恢复模块,等待目标进程的DLL加载完后,恢复注入目的DLL之前的目标程序导入表的地址和数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536417.4A CN105045605B (zh) | 2015-08-28 | 2015-08-28 | 一种将dll注入目标进程的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536417.4A CN105045605B (zh) | 2015-08-28 | 2015-08-28 | 一种将dll注入目标进程的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045605A CN105045605A (zh) | 2015-11-11 |
CN105045605B true CN105045605B (zh) | 2019-05-24 |
Family
ID=54452170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510536417.4A Active CN105045605B (zh) | 2015-08-28 | 2015-08-28 | 一种将dll注入目标进程的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045605B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475229A (zh) * | 2020-04-09 | 2020-07-31 | 广州锦行网络科技有限公司 | 一种Windows平台下的dll注入方法及系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708556B (zh) * | 2016-07-19 | 2019-04-16 | 腾讯科技(深圳)有限公司 | 数据显示方法及装置 |
CN106406852B (zh) * | 2016-08-25 | 2019-10-01 | 北京北信源软件股份有限公司 | 一种将多dll注入目标进程的优化管理方法 |
CN106371847B (zh) * | 2016-09-07 | 2020-05-22 | 湖北三江航天万峰科技发展有限公司 | Windows xp系统下CPCI总线RS422通信驱动方法及系统 |
CN108875359B (zh) * | 2018-04-25 | 2020-07-07 | 厦门市美亚柏科信息股份有限公司 | 一种进程监控的方法、存储介质 |
CN108805541B (zh) * | 2018-05-24 | 2022-05-13 | 陈明栋 | 一种支付方法和系统、存储介质 |
CN108830590A (zh) * | 2018-05-28 | 2018-11-16 | 银盒达信息技术(深圳)有限公司 | 一种信息的获取方法、信息的获取装置及终端设备 |
CN110298175B (zh) * | 2019-07-05 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | 一种dll文件的处理方法及相关装置 |
TWI739284B (zh) * | 2020-01-20 | 2021-09-11 | 精品科技股份有限公司 | 控制台程式的控制管理方法及系統 |
CN113051550A (zh) * | 2021-03-30 | 2021-06-29 | 深信服科技股份有限公司 | 一种终端设备及其防护方法、装置和可读存储介质 |
CN114610406A (zh) * | 2022-03-02 | 2022-06-10 | 维塔科技(北京)有限公司 | 代码注入方法、装置、存储介质及电子设备 |
CN116755999B (zh) * | 2023-05-17 | 2024-03-29 | 安芯网盾(北京)科技有限公司 | 一种应用于Windows系统的调试服务进程的启动方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999726A (zh) * | 2012-12-14 | 2013-03-27 | 北京奇虎科技有限公司 | 文件宏病毒免疫方法和装置 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8584109B2 (en) * | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
US9413721B2 (en) * | 2011-02-15 | 2016-08-09 | Webroot Inc. | Methods and apparatus for dealing with malware |
-
2015
- 2015-08-28 CN CN201510536417.4A patent/CN105045605B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999726A (zh) * | 2012-12-14 | 2013-03-27 | 北京奇虎科技有限公司 | 文件宏病毒免疫方法和装置 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
Non-Patent Citations (2)
Title |
---|
API Hook关键技术解析;刘克胜 等;《网络安全技术与应用》;20061130(第11期);第48页第2栏,第49-50页,图2 |
一种融合用户级和内核级拦截的主动防御方案;许方恒 等;《计算机应用研究》;20130630;第30卷(第6期);全文 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475229A (zh) * | 2020-04-09 | 2020-07-31 | 广州锦行网络科技有限公司 | 一种Windows平台下的dll注入方法及系统 |
CN111475229B (zh) * | 2020-04-09 | 2021-01-15 | 广州锦行网络科技有限公司 | 一种Windows平台下的dll注入方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105045605A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045605B (zh) | 一种将dll注入目标进程的方法和系统 | |
EP3120290B1 (en) | Techniques to provide network security through just-in-time provisioned accounts | |
US8650578B1 (en) | System and method for intercepting process creation events | |
US20150242627A1 (en) | Apparatus and method for blocking actvity of malware | |
US9715646B2 (en) | Computer device and method for isolating untrusted content | |
KR101308859B1 (ko) | 임시 관리자 권한 부여 기능을 가진 단말기 및 이를 이용한 임시 관리자 권한 부여 방법 | |
WO2015043420A1 (zh) | 权限控制方法和装置 | |
GB2538518A (en) | Computer device and method for controlling access to a resource via a security system | |
KR20140097531A (ko) | 싱글 사인온 서비스를 용이하게 하는 방법 및 장치 | |
CN105809055B (zh) | 访问控制方法、装置及相关设备 | |
WO2016061924A1 (zh) | 基于多屏分享的应用管理方法及装置、存储介质 | |
DE202015009286U1 (de) | Kurzlebige Anwendungen | |
US9619631B1 (en) | Role-based permissions for accessing computing resources | |
EP3008876B1 (en) | Roaming internet-accessible application state across trusted and untrusted platforms | |
DE112011105687T5 (de) | Verwendung eines Option-ROM-Speichers | |
WO2018098713A1 (zh) | 一种获取授权文件的方法及设备 | |
WO2018108051A1 (zh) | 一种系统管理方法及装置、存储介质 | |
WO2014081834A2 (en) | Security bypass environment for circumventing a security application in a computing environment | |
WO2016115759A1 (zh) | 一种登录网站的方法以及其服务器、客户端和外设 | |
CN111241546B (zh) | 一种恶意软件行为检测方法和装置 | |
JP2006107505A5 (zh) | ||
CN107766743B (zh) | 文件访问权限的设置方法及装置、终端设备、存储介质 | |
US20200162557A1 (en) | Systems and methods for managing iot/eot devices | |
CN107872786B (zh) | 一种控制方法及智能卡 | |
CN103971064A (zh) | Linux 系统的用户权限控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: No. 333, Yunhua Road, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP03 | Change of name, title or address |