CN106126282A - 一种动态链接库文件的注入方法、装置及终端设备 - Google Patents
一种动态链接库文件的注入方法、装置及终端设备 Download PDFInfo
- Publication number
- CN106126282A CN106126282A CN201610448167.3A CN201610448167A CN106126282A CN 106126282 A CN106126282 A CN 106126282A CN 201610448167 A CN201610448167 A CN 201610448167A CN 106126282 A CN106126282 A CN 106126282A
- Authority
- CN
- China
- Prior art keywords
- browser
- dynamic link
- link library
- loaded
- file
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明的实施例公开一种动态链接库文件的注入方法、装置及终端设备,涉及计算机技术领域。所述动态链接库文件的注入方法包括:获取浏览器的进程信息结构;根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;获取待加载动态链接库的文件路径;根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。本发明适用于终端设备的系统安全。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种动态链接库文件的注入方法、装置及终端设备。
背景技术
随着互联网技术发展,病毒,木马等恶意程序技术层出不穷,系统安全软件对恶意程序的拦截方案也日益更新;
现有系统安全软件中的网购保护模块khmpg.dll,是用于用户网购保护功能的动态链接库文件(Dynamic Link Library,简称DLL)模块。该模块会由系统安全软件中的服务程序注入到网络浏览器的进程中,保护网络浏览器的用户网购等支付安全。但是,有些恶意软件使用其恶意签名的驱动程序,加载到系统中拥有最高权限,从而拦截系统安全软件的网购保护模块注入到网络浏览器进程。例如:现有技术方案中khmpg.dll注入到网络浏览器进程过程是通过windows函数来实现;具体可以通过创建远程线程函数CretaeRemoteThread向网络浏览器进程申请创建一个远程线程,然后调用加载动态链接库函数LoadLibray函数加载DLL,这样就可以注入到网络进程中。
然而,在现有系统安全软件中网购保护模块注入到网络浏览器进程的过程中,发明人发现现有技术中至少存在如下技术问题:
由于恶意软件使用其恶意签名的驱动程序,加载到系统中拥有最高权限,从而恶意软件可以通过其驱动程序阻止CretaeRemoteThread向网络浏览器进程申请创建一个远程线程,从而使得现有技术方案的系统安全软件中khmpg.dll模块无法注入,导致网络浏览器的用户支付安全无法保障,影响系统安全。
发明内容
有鉴于此,本发明实施例提供一种动态链接库文件的注入方法、装置及终端设备,能够通过在调用异步过程调用回调函数的过程中加载待加载的动态链接库文件解决现有的网购保护模块无法注入的问题。
第一方面,本发明实施例提供一种动态链接库文件的注入方法,包括:
获取浏览器的进程信息结构;
根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;
获取待加载动态链接库的文件路径;
根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
结合第一方面,在第一方面的第一种实施方式中,所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块;
所述根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中的步骤包括:
根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间;
根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列;
将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中的步骤还包括:
根据所述浏览器线程环境块,获取所述浏览器的进程对应的线程队列的状态信息;
将所述浏览器的进程对应的线程队列的状态信息设置为警报状态。
结合第一方面的第一或第二种实施方式,在第一方面的第三种实施方式中,所述根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间的步骤,具体包括:
根据所述浏览器进程环境块,将系统内核中央处理器的执行指针附加到所述浏览器的进程;
在所述浏览器的进程的存储空间内,为所述异步过程调用回调函数申请存储空间。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中的步骤包括:
根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;
根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;
根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数;
将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数;
将所述待加载动态链接库的文件加载到所述浏览器的进程中。
第二方面,本发明实施例提供一种动态链接库文件的注入装置,包括:
信息获取单元,用于获取浏览器的进程信息结构;
插入单元,用于根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;
路径获取单元,用于获取待加载动态链接库的文件路径;
加载单元,用于根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
结合第二方面,在第二方面的第一种实施方式中,所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块;
所述插入单元,具体包括:
空间申请子单元,用于根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间;
定位子单元,用于根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列;
插入子单元,用于将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述插入单元,还包括:
信息获取子单元,用于根据所述浏览器线程环境块,获取所述浏览器的进程对应的线程队列的状态信息;
设置子单元,用于将所述浏览器的进程对应的线程队列的状态信息设置为警报状态。
结合第二方面的第一或第二种实施方式,在第二方面的第三种实施方式中,所述空间申请子单元,具体还用于根据所述浏览器进程环境块,将系统内核中央处理器的执行指针附加到所述浏览器的进程;在所述浏览器的进程的存储空间内,为所述异步过程调用回调函数申请存储空间。
结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述加载单元,具体包括:
函数获取子单元,用于根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;
查找子单元,用于根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;
调用子单元,用于根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数;将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数;
加载子单元,用于将所述待加载动态链接库的文件加载到所述浏览器的进程中。
第三方面,本发明实施例提供一种终端设备,所述终端设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述终端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的动态链接库文件的注入方法。
本发明实施例提供的一种动态链接库文件的注入方法、装置及终端设备,能够通过将所述异步过程调用函数插入到系统浏览器的进程对应的线程队列,使得系统在执行进程对应的线程队列时,调用所述异步过程调用回调函数,待加载动态链接库的文件被加载解决了现有的网购保护模块无法注入,导致网络浏览器的用户支付安全无法保障,影响系统安全的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的动态链接库文件的注入方法实施例一的流程图;
图2为本发明的动态链接库文件的注入方法实施例二的流程图;
图3为本发明的动态链接库文件的注入装置实施例一的结构示意图;
图4为本发明的动态链接库文件的注入装置实施例二的结构示意图;
图5为本发明终端设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明的动态链接库文件的注入方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、获取浏览器的进程信息结构。
本实施例中,所述浏览器的进程信息结构包括:浏览器进程环境块,浏览器线程环境块。例如:在运行用网购保护模块khmpg.dll的驱动程序过程中,可以通过调用查询进程信息ZwQuerySystemInformation和由线程id获取线程结构PsLookupThreadByThreadId的内核函数来获取所述浏览器的进程信息结构。
步骤102、根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中。
本实施例中,将浏览器进程环境块做为参数,通过调用系统内核函数中的初始化异步过程调用函数KeAttachProcess将系统内核中央处理器的执行指针附加到所述浏览器的进程中;在所述浏览器的进程的存储空间内,通过调用系统内核函数中的申请虚拟内存空间函数ZwAllocateVirtualMemory为所述异步过程调用回调函数申请存储空间,该存储空间用于存放异步过程调用回调函数。通过所述浏览器线程环境块,定位到所述浏览器的进程对应的线程队列及其状态信息UserApcPending,将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
例如:可以通过调用系统内核函数KeInitializeApc将所述异步过程调用函数插入到所述浏览器的进程对应的线程队列中;并将所述浏览器的进程对应的线程队列的状态信息设置为警报状态,例如:将所述状态信息UserApcPending值强制置为1。这样当前浏览器线程的队列为警报状态。所述警报状态的线程队列,才可以被中央处理器所优先处理。
由于所述异步过程调用函数插入到所述警报状态的所述浏览器的进程所对应的线程队列,所以在系统线程切换调度时,会优先处理所述异步过程调用函数,调用所述异步过程调用回调函数。
步骤103、获取待加载动态链接库的文件路径。
本实施例中,所述待加载动态链接库的文件路径是在异步过程调用回调函数中获取。例如:设待加载动态链接库文件为网购保护模块khmpg.dll。所述获取待加载动态链接库的文件路径过程为:获取所述网购保护模块khmpg.dll的目录。然后,拼接所述网购保护模块khmpg.dll的文件名,获得所述待加载动态链接库的文件路径。
步骤104、根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
本实施例中,根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;根据所述动态链接库的基地址,定位动态链接库加载函数;将所述待加载动态链接库文件路径作为参数,调用所述动态链接库加载函数;将所述待加载动态链接库的文件加载到所述浏览器的进程中,从而实现待加载动态链接库文件注入到浏览器的进程中。
本发明实施例提供的一种动态链接库文件的注入方法,能够通过将所述异步过程调用函数插入到系统浏览器的进程对应的线程队列,使得系统在执行进程对应的线程队列时,调用所述异步过程调用回调函数,待加载动态链接库的文件被加载解决现有的网购保护模块无法注入,导致网络浏览器的用户支付安全无法保障,影响系统安全的问题。
图2为本发明的动态链接库文件的注入方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、获取浏览器的进程信息结构;所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块。
本实施例中,所述获取浏览器的进程信息结构的过程和上述方法实施例的步骤101类似,此处不再赘述。
步骤202、根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间。
本实施例中,将浏览器进程环境块做为参数,通过调用系统内核函数KeAttachProcess将系统内核中央处理器的执行指针附加到所述浏览器的进程中。在所述浏览器的进程的存储空间内,通过调用系统内核函数ZwAllocateVirtualMemory为所述异步过程调用回调函数申请存储空间。
步骤203、根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列,将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
本实施例中,可以通过所述浏览器线程环境块,定位到所述浏览器的线程队列及其状态信息UserApcPending,将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。例如:可以通过调用系统内核函数KeInitializeApc将所述异步过程调用函数插入到所述浏览器的线程队列中。本实施例还将所述浏览器的进程对应的线程队列的状态信息设置为警报状态,例如:将所述状态信息UserApcPending值强制置为1。这样当前浏览器线程的队列为警报状态,才可以被中央处理器所优先处理。由于所述浏览器的线程队列已经被设置为警报状态,所以异步过程调用函数将会被系统优先处理。
步骤204、获取待加载动态链接库的文件路径。
本实施例中,所述待加载动态链接库的文件路径是在异步过程调用回调函数中获取。例如:设待加载动态链接库文件为网购保护模块khmpg.dll。所述获取待加载动态链接库的文件路径过程为:获取所述网购保护模块khmpg.dll的目录。然后,拼接所述网购保护模块khmpg.dll的文件名,获取所述待加载动态链接库的文件路径。
步骤205、根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
本实施例中,该步骤的具体实现流程具体为:根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址。例如:设所述异步过程调用回调函数为函数InjectDll。在函数InjectDll中,能够查找浏览器的进程待加载动态链接库ntdll.dll的基地址。根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数。例如:通过所述基地址可方便定位到待加载动态链接库的加载函数LdrLoadDll。所述加载函数LdrLoadDll是动态链接库ntdll.dll导出的一个函数,用于加载DLL模块。将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数。将所述待加载动态链接库的文件加载到所述浏览器的进程中。
本发明实施例提供的一种动态链接库文件的注入方法,能够通过将所述异步过程调用函数插入到系统浏览器的进程对应的线程队列,且该队列信息状态为警报状态,这样使得系统的线程切换调度时,优先执行该警报状态下的线程队列,从而调用所述异步过程调用回调函数,实现待加载动态链接库的文件加载,解决现有的网购保护模块无法注入,导致网络浏览器的用户支付安全无法保障,影响系统安全的问题。
图3为本发明的动态链接库文件的注入装置实施例一的结构示意图,如图3所示,本实施例的装置可以包括:信息获取单元11,插入单元13,路径获取单元15和加载单元17。其中,信息获取单元11,用于获取浏览器的进程信息结构;插入单元13,用于根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;路径获取单元15,用于获取待加载动态链接库的文件路径;加载单元17,用于根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明的动态链接库文件的注入装置实施例二的结构示意图,如图4所示,本实施例的装置在图3所示装置结构的基础上,进一步地,所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块。
所述插入单元13,具体还包括:空间申请子单元131,用于根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间;定位子单元132,用于根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列;插入子单元133,用于将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
需要说明的是,所述插入单元13,还包括:信息获取子单元134,用于根据所述浏览器线程环境块,获取所述浏览器的进程对应的线程队列的状态信息;设置子单元135,用于将所述浏览器的进程对应的线程队列的状态信息设置为警报状态。
还需要说明的是,所述空间申请子单元131,具体还用于根据所述浏览器进程环境块,将系统内核中央处理器的执行指针附加到所述浏览器的进程;在所述浏览器的进程的存储空间内,为所述异步过程调用回调函数申请存储空间。
所述加载单元17,具体包括:函数获取子单元171,用于根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;查找子单元172,用于根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;调用子单元173,用于根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数;将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数;加载子单元174,用于将所述待加载动态链接库的文件加载到所述浏览器的进程中。
本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例还提供一种终端设备,所述终端设备包含前述任一实施例所述的装置。
图5为本发明终端设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图5所示,上述终端设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述终端设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的动态链接库文件的注入方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-2所示实施例的描述,在此不再赘述。
该终端设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种动态链接库文件的注入方法,其特征在于,包括:
获取浏览器的进程信息结构;
根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;
获取待加载动态链接库的文件路径;
根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
2.根据权利要求1所述的动态链接库文件的注入方法,其特征在于,所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块;
所述根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中的步骤包括:
根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间;
根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列;
将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
3.根据权利要求2所述的动态链接库文件的注入方法,其特征在于,所述根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中的步骤还包括:
根据所述浏览器线程环境块,获取所述浏览器的进程对应的线程队列的状态信息;
将所述浏览器的进程对应的线程队列的状态信息设置为警报状态。
4.根据权利要求2或3所述的动态链接库文件的注入方法,其特征在于,所述根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间的步骤,具体包括:
根据所述浏览器进程环境块,将系统内核中央处理器的执行指针附加到所述浏览器的进程;
在所述浏览器的进程的存储空间内,为所述异步过程调用回调函数申请存储空间。
5.根据权利要求4所述的动态链接库文件的注入方法,其特征在于,所述根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中的步骤包括:
根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;
根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;
根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数;
将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数;
将所述待加载动态链接库的文件加载到所述浏览器的进程中。
6.一种动态链接库文件的注入装置,其特征在于,包括:
信息获取单元,用于获取浏览器的进程信息结构;
插入单元,用于根据所述浏览器的进程信息结构,将异步过程调用回调函数插入所述浏览器的进程中;
路径获取单元,用于获取待加载动态链接库的文件路径;
加载单元,用于根据所述异步过程调用回调函数及所述待加载动态链接库的文件路径,将所述待加载动态链接库的文件加载到所述浏览器的进程中。
7.根据权利要求6所述的动态链接库文件的注入装置,其特征在于,所述浏览器的进程信息结构包括浏览器进程环境块,浏览器线程环境块;
所述插入单元,具体包括:
空间申请子单元,用于根据所述浏览器进程环境块,为所述异步过程调用回调函数申请存储空间;
定位子单元,用于根据所述浏览器线程环境块,定位所述浏览器的进程对应的线程队列;
插入子单元,用于将所述异步过程调用回调函数插入到所述浏览器的进程对应的线程队列中。
8.根据权利要求7所述的动态链接库文件的注入装置,其特征在于,所述插入单元,还包括:
信息获取子单元,用于根据所述浏览器线程环境块,获取所述浏览器的进程对应的线程队列的状态信息;
设置子单元,用于将所述浏览器的进程对应的线程队列的状态信息设置为警报状态。
9.根据权利要求7或8所述的动态链接库文件的注入装置,其特征在于,所述空间申请子单元,具体还用于根据所述浏览器进程环境块,将系统内核中央处理器的执行指针附加到所述浏览器的进程;在所述浏览器的进程的存储空间内,为所述异步过程调用回调函数申请存储空间。
10.根据权利要求9所述的动态链接库文件的注入装置,其特征在于,所述加载单元,具体包括:
函数获取子单元,用于根据所述异步过程调用回调函数申请的存储空间,获取所述异步过程调用回调函数;
查找子单元,用于根据所述异步过程调用回调函数,查找所述浏览器的进程待加载动态链接库的基地址;
调用子单元,用于根据所述待加载动态链接库的基地址,定位所述待加载动态链接库的加载函数;将所述待加载动态链接库的文件路径作为参数,调用所述待加载动态链接库的加载函数;
加载子单元,用于将所述待加载动态链接库的文件加载到所述浏览器的进程中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610448167.3A CN106126282A (zh) | 2016-06-20 | 2016-06-20 | 一种动态链接库文件的注入方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610448167.3A CN106126282A (zh) | 2016-06-20 | 2016-06-20 | 一种动态链接库文件的注入方法、装置及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126282A true CN106126282A (zh) | 2016-11-16 |
Family
ID=57471184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610448167.3A Pending CN106126282A (zh) | 2016-06-20 | 2016-06-20 | 一种动态链接库文件的注入方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126282A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557424A (zh) * | 2016-11-18 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 内存测试方法、被测终端、测试客户端及系统 |
CN106933667A (zh) * | 2017-04-01 | 2017-07-07 | 成都市极米科技有限公司 | 传感器数据处理方法及装置 |
CN107103099A (zh) * | 2017-05-26 | 2017-08-29 | 北京金山安全管理系统技术有限公司 | 浏览器主页返回方法及装置 |
CN108196900A (zh) * | 2017-12-08 | 2018-06-22 | 五八有限公司 | 组件的注册方法及装置 |
CN113010181A (zh) * | 2021-03-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
CN117763538A (zh) * | 2023-12-22 | 2024-03-26 | 摩尔线程智能科技(北京)有限责任公司 | 动态链接库的注入方法、装置和计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463583B1 (en) * | 1999-04-08 | 2002-10-08 | Novadigm, Inc. | Dynamic injection of execution logic into main dynamic link library function of the original kernel of a windowed operating system |
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN103605922A (zh) * | 2013-11-28 | 2014-02-26 | 安一恒通(北京)科技有限公司 | 一种下载保护的方法和装置 |
-
2016
- 2016-06-20 CN CN201610448167.3A patent/CN106126282A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463583B1 (en) * | 1999-04-08 | 2002-10-08 | Novadigm, Inc. | Dynamic injection of execution logic into main dynamic link library function of the original kernel of a windowed operating system |
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN103605922A (zh) * | 2013-11-28 | 2014-02-26 | 安一恒通(北京)科技有限公司 | 一种下载保护的方法和装置 |
Non-Patent Citations (2)
Title |
---|
A33128956: "内核中通过给线程插apc注入dll", 《HTTPS://WENKU.BAIDU.COM/VIEW/B872193267EC102DE2BD8930.HTML》 * |
朱其刚: "基于B_S模式的OA系统信息保密控制技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557424A (zh) * | 2016-11-18 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 内存测试方法、被测终端、测试客户端及系统 |
CN106557424B (zh) * | 2016-11-18 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 内存测试方法、被测终端、测试客户端及系统 |
CN106933667A (zh) * | 2017-04-01 | 2017-07-07 | 成都市极米科技有限公司 | 传感器数据处理方法及装置 |
CN107103099A (zh) * | 2017-05-26 | 2017-08-29 | 北京金山安全管理系统技术有限公司 | 浏览器主页返回方法及装置 |
CN108196900A (zh) * | 2017-12-08 | 2018-06-22 | 五八有限公司 | 组件的注册方法及装置 |
CN108196900B (zh) * | 2017-12-08 | 2021-11-09 | 五八有限公司 | 组件的注册方法及装置 |
CN113010181A (zh) * | 2021-03-24 | 2021-06-22 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
CN113010181B (zh) * | 2021-03-24 | 2022-05-27 | 北京百度网讯科技有限公司 | 一种深度学习框架之中算子的部署方法、装置及电子设备 |
US11531529B2 (en) | 2021-03-24 | 2022-12-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and electronic device for deploying operator in deep learning framework |
CN117763538A (zh) * | 2023-12-22 | 2024-03-26 | 摩尔线程智能科技(北京)有限责任公司 | 动态链接库的注入方法、装置和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106126282A (zh) | 一种动态链接库文件的注入方法、装置及终端设备 | |
CN104866341B (zh) | 一种组件升级方法、装置及终端 | |
CN106777184A (zh) | 一种页面加载方法、装置及电子设备 | |
US8756435B2 (en) | Obfuscation of control flow of software | |
CN109299587A (zh) | 基于go语言的算法保护方法、装置、设备及存储介质 | |
CN105912362B (zh) | 一种加载插件的方法、装置及电子设备 | |
CN102520967A (zh) | 一种创建与使用移动平台插件的方法、系统和移动终端 | |
CN106250244A (zh) | 一种释放互斥锁的方法、装置及电子设备 | |
CN111158750B (zh) | 一种基于Unity的游戏安装包的打包方法及装置 | |
CN108170485A (zh) | 一种插件加载方法、装置及移动终端 | |
CN106126291A (zh) | 一种删除恶意文件的方法、装置及电子设备 | |
CN106203069A (zh) | 一种动态链接库文件的拦截方法、装置及终端设备 | |
CN108647061A (zh) | 系统隐藏方法的调用方法、装置和计算设备 | |
CN108654090A (zh) | 操作系统与游戏应用交互的方法及装置 | |
CN104169938B (zh) | 权限管理方法和装置 | |
CN109960487A (zh) | 一种抽取对象的方法和装置 | |
CN106022120A (zh) | 文件监控处理方法、装置及电子设备 | |
CN103595758A (zh) | 推荐软件的方法及装置 | |
CN107766230A (zh) | 一种基于配置文件进行测试的方法与设备 | |
CN106022117A (zh) | 防止系统环境变量修改的方法、装置及电子设备 | |
CN106203119A (zh) | 隐藏光标的处理方法、装置及电子设备 | |
CN106127029B (zh) | 一种安全应用程序的启动方法、装置及电子设备 | |
CN106203107A (zh) | 一种防止系统菜单被恶意修改的方法、装置及电子设备 | |
Janka et al. | VSIPL: An object-based open standard API for vector, signal, and image processing | |
CN109189426A (zh) | 一种升级方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190121 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, No. 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161116 |