CN108563552B - 一种记录外设操作行为的方法、设备及其存储介质 - Google Patents
一种记录外设操作行为的方法、设备及其存储介质 Download PDFInfo
- Publication number
- CN108563552B CN108563552B CN201711464905.4A CN201711464905A CN108563552B CN 108563552 B CN108563552 B CN 108563552B CN 201711464905 A CN201711464905 A CN 201711464905A CN 108563552 B CN108563552 B CN 108563552B
- Authority
- CN
- China
- Prior art keywords
- driver
- list
- recording
- driving
- device list
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/95—Storage media specially adapted for storing game information, e.g. video game cartridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种记录外设操作行为的方法、设备及其计算机存储介质,所述方法包括:通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;记录所获取的外设操作行为。
Description
技术领域
本发明涉及系统应用技术领域,尤其涉及一种记录外设操作行为的方法、设备及其计算机存储介质。
背景技术
为了满足广大用户的娱乐需求,各大游戏开发商(如腾讯、360、盛大、网易等)不断开发运营众多酷、炫、美的网络游戏。
在网络游戏实现中,用户通常会执行一系列外设操作,如键盘的敲击输入操作、鼠标的移动和点击操作,来进行游戏交互。在游戏进行中,有必要对用户进行的外设操作加以记录,以供用户自身或其他用户通过回放所记录的历史外设操作进行回顾和反思。
目前市面上用于实现记录和回放用户的外设操作的方案包括:在应用层环3(Ring3)采用键盘鼠标记录器记录鼠标和/或键盘的操作,并进一步使用应用层挂钩实现回放。其中,所述应用层挂钩包括应用程序接口钩子(API hook)、联机钩子(inline hook)、消息钩子(message hook)、事件钩子(event hook)。然而,该应用层环3的记录和回放外设操作的方案很容易被游戏的反外挂系统当作外挂而查杀,从而造成游戏封号等后果。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的一种记录外设操作行为的方法、设备及其计算机存储介质。
依据本发明的第一方面,提供一种记录外设操作行为的方法,包括:通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;记录所获取的外设操作行为。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,在所述通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为之前,所述方法还包括:追踪端口驱动和类驱动,以查找安装回调驱动程序的位置信息,然后在所述位置信息指示的位置安装回调驱动程序。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,所述追踪端口驱动和类驱动,以查找安装回调驱动程序的位置信息,包括:分别获取端口驱动和类驱动的驱动对象;遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;遍历类驱动的驱动对象的第二设备列表;在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为所述安装回调驱动程序的位置信息。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,在第一设备列表中查找与所述第二设备列表匹配的目标设备,包括:读取所述第一设备列表中每个设备的设备扩展内容;对比所述第一设备列表中每个设备的设备扩展内容的第一部分和所述第二设备列表中设备的设备对象;若所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配,则进一步检测所述第一设备列表中第一设备的设备扩展内容的第二部分是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;若所述第一设备列表中第一设备的设备扩展内容的第二部分处在所述第二设备列表中第二设备的驱动对象的地址范围内,则确定所述第一设备为所述目标设备。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,进一步包括:通过遍历设备扩展长度的方式读取所述第一设备列表中每个设备的设备扩展内容;其中,所述设备扩展长度的取值为设备对象扩展的起始地址与设备扩展的起始地址两者之差。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,进一步包括:通过判断所述第二部分所属地址是否处在驱动起始地址和驱动结束地址之内的方式来检测是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;其中,所述驱动结束地址的取值为所述驱动起始地址与驱动大小两者之和。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,所述方法还包括:通过在操作系统应用层环3的应用中增设的回放插件来回放所记录的外设操作行为。
可选的,在根据本发明的实施例的记录外设操作行为的方法中,所述外设操作行为包括页游操作行为或端游操作行为。
依据本发明的第二方面,提供一种记录用户操作行为的设备,包括:获取装置,用于通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;记录装置,用于记录所获取的外设操作行为。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,还包括:查找装置,用于在所述获取装置通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为之前,追踪端口驱动和类驱动,以查找安装回调驱动程序的位置信息,然后在所述位置信息指示的位置安装回调驱动程序。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述查找装置还用于:分别获取端口驱动和类驱动的驱动对象;遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;遍历类驱动的驱动对象的第二设备列表;在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为所述安装回调驱动程序的位置信息。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述查找装置还用于:读取所述第一设备列表中每个设备的设备扩展内容;对比所述第一设备列表中每个设备的设备扩展内容的第一部分和所述第二设备列表中设备的设备对象;若所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配,则进一步检测所述第一设备列表中第一设备的设备扩展内容的第二部分是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;若所述第一设备列表中第一设备的设备扩展内容的第二部分处在所述第二设备列表中第二设备的驱动对象的地址范围内,则确定所述第一设备为目标设备。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述查找装置还用于:通过遍历设备扩展长度的方式读取所述第一设备列表中每个设备的设备扩展内容;其中,所述设备扩展长度的取值为设备对象扩展的起始地址与设备扩展的起始地址两者之差。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述查找装置还用于:通过判断所述第二部分所属地址是否处在驱动起始地址和驱动结束地址之内的方式来检测是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;其中,所述驱动结束地址的取值为所述驱动起始地址与驱动大小两者之和。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述设备还包括在操作系统应用层环3的应用中增设的回放插件;所述回放插件,用于回放所记录的外设操作行为。
可选的,在根据本发明的实施例的记录外设操作行为的设备中,所述外设操作行为包括页游操作行为或端游操作行为。
依据本发明的第三方面,提供一种记录用户操作行为的设备,包括:一个或者多个处理器;存储器;存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行第一方面、第一方面的任意一项所述的方法。
依据本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行第一方面、第一方面的任意一项所述的方法。
本发明实施例所述记录外设操作行为的方法,通过安装在操作系统驱动层环0的回调驱动程序获取并记录外设操作行为,有效克服应用层环3的记录和回放外设操作的方案很容易被游戏的反外挂系统当作外挂而查杀的问题,从而进一步实现在不被游戏的反外挂阻止的情况下,回放之前所记录的外设操作行为。
需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示意性地示出了本发明的实施方式中记录外设操作行为的方法的一实施例的流程图;
图2示意性示出了本发明的实施方式中查找安装回调驱动程序的位置信息的实现流程示意图;
图3示意性地示出了本发明的实施方式中记录外设操作行为的设备的组成结构示意图;
图4示意性地示出了根据本发明实施方式的记录外设操作行为的设备的实现示意图;
图5示意性地示出了存储有实现根据本发明实施方式的记录外设操作行为的方法的计算机程序的计算机可读存储介质的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
下面结合附图对本发明的具体实施方式进行详细描述。
以下描述是以Windows操作系统环境为例进行说明的。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)操作系统驱动层的环0(ring 0)和应用层的环3(ring 3)均属于操作系统定义的两个概念;其中,所述环0的权限属于中央处理器(CPU,Central Processing Unit)的最高权限。
2)KEYBOARDCLASSSERVICECALLBACK:用于键盘记录和回放的挂钩点。
3)MOUSECLASSSERVICECALLBACK:用于鼠标记录和回放的挂钩点。
图1示意性地示出了本发明的实施方式中记录外设操作行为的方法的一实施例的流程图。
如图1所示,本发明实施例记录外设操作行为的方法10包括:操作103,通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;操作105,记录所获取的外设操作行为。
其中,所述外设操作行为包括页游操作行为或端游操作行为。
这里,本发明实施例在整个记录外设操作行为的实施之前,首先需要在环0中设置安装驱动程序(hook,钩子),而安装驱动程序的难点在于搜索挂钩子的位置,即查找安装回调驱动程序的位置信息。这是因为所述挂钩子的位置会直接影响该方案的通用性(鼠标和键盘都有ps2端口类型和usb端口类型)及其系统的稳定性。因此,本发明实施例在操作103之前进一步包括:操作101,追踪端口驱动和类驱动,以查找安装回调驱动程序的位置信息,然后在所述位置信息指示的位置安装回调驱动程序。
图2示意性示出了本发明的实施方式中查找安装回调驱动程序的位置信息的实现流程示意图。
如图2所示,操作101包括如下几个子操作:操作1011,分别获取端口驱动和类驱动的驱动对象;操作1012,遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;操作1013,遍历类驱动的驱动对象的第二设备列表;操作1014,在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为所述安装回调驱动程序的位置信息。
具体地,首先通过调用ObReferenceObjectByName获取到端口驱动(port driver)和类驱动(class driver)的驱动对象(driver object);接着,遍历端口驱动(portdriver)的驱动对象(driver object)的第一设备列表(device list),及其所述第一设备列表中每个设备的设备扩展(device extension)内容,即附加设备列表;再者,遍历类驱动(class driver)的驱动对象(driver object)的第二设备列表(device list);最后,在第一设备列表中查找与所述第二设备列表匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为所述安装回调驱动程序的位置信息。
在操作1014,通过读取所述第一设备列表中每个设备的设备扩展内容,对比所述第一设备列表中每个设备的设备扩展内容的第一部分和所述第二设备列表中设备的设备对象;若所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配,则进一步检测所述第一设备列表中第一设备的设备扩展内容的第二部分是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;若所述第一设备列表中第一设备的设备扩展内容的第二部分处在所述第二设备列表中第二设备的驱动对象的地址范围内,则确定所述第一设备为所述目标设备。当然,所述目标设备对应的设备扩展内容的第二部分就是所述安装回调驱动程序的位置信息,即用于键盘记录和回放的挂钩点KEYBOARDCLASSSERVICECALLBACK或用于鼠标记录和回放的挂钩点MOUSECLASSSERVICECALLBACK的位置信息。
相关技术在操作1014的具体实现中,通常采用遍历获取到的端口驱动的设备扩展下的每个指针的方式,即采用如下表达式所示的for循环条件:for(i<4096;i++,DeviceExt+=sizeof(PBYTE))来读取所述第一设备列表中每个设备的设备扩展内容。很显然,由于上述实现方式使用了4096字节的固定大小的设备扩展长度,在具体技术实现中存在如下技术问题:第一,在设备扩展内容的大小不确定的情况下容易造成设备扩展内容遗留,即原始设备扩展内容多于4096字节的将很容易被漏掉;第二,对于原始设备内容的大小少于4096字节的情况,会因超越范围而访问拒绝,进而造成系统崩溃;第三,系统兼容性差。
为了解决上述实现方式所存在的技术问题,根据本发明一实施方式,在操作1014的具体实现中,可以通过遍历设备扩展长度的方式读取所述第一设备列表中每个设备的设备扩展内容;其中,所述设备扩展长度(DeviceExtensionSize)的取值为设备对象扩展的起始地址(PDEVICE_OBJECT->DeviceObjectExtension)与设备扩展的起始地址(PDEVICE_OBJECT->DeviceExtension)两者之差,即DeviceExtensionSize=PDEVICE_OBJECT->DeviceObjectExtension-PDEVICE_OBJECT->DeviceExtension。这样,通过精确计算设备扩展长度,能够有效克服现有技术中采用4096字节的固定大小的方式所引起的诸多问题,从而提升系统兼容性。
相关技术在操作1014的具体实现中,通常采用如下的实现方式:
KbdDriverStart=(ULONG)GetModlueBaseAdress("kbdclass.sys",0);
DbgPrint("kbdclass.sys:0x%08lx/n",(PVOID)KbdDriverStart);
KbdDriverSize=0x2000;
在上述实现中,在设备扩展中找到一个地址位于类驱动KEYBOARDCLASS模块(KbdClass.sys模块)中,就直接将其确定为回调函数地址,即挂钩点KEYBOARDCLASSSERVICECALLBACK;换言之,即在所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配的情况下,为了加快搜索速率,直接在8k字节的固定驱动大小的KbdClass.sys模块对应地址范围内查找所述第一设备列表中第一设备的设备扩展内容的第二部分。
然而,在实际的查找过程中,KbdClass.sys模块的大小通常大于现有技术中的所使用的8k字节的固定驱动大小。为了解决上述实现方式所存在的技术问题,根据本发明一实施方式,在操作1014的具体实现中,可以在所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配的情况下,进一步判断所述第二部分所属地址是否处在驱动起始地址和驱动结束地址之内的方式来检测是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;其中,所述驱动结束地址的取值为所述驱动起始地址(PDRIVER_OBJECT->DriverStart)与驱动大小(PDRIVER_OBJECT->DriverSize)两者之和。这样,与相关技术相比,本发明将驱动对象的地址范围从固定大小8k扩展至区间[PDRIVER_OBJECT->DriverStart,PDRIVER_OBJECT->DriverStart+PDRIVER_OBJECT->DriverSize],从而有效解决因超越范围而访问拒绝,进而造成系统崩溃的问题,进而提升系统兼容性。
根据本发明一实施方式,在操作105完成所述外设操作行为的记录之后,所述方法进一步包括:操作107,通过在操作系统应用层环3的应用中增设的回放插件来回放所记录的外设操作行为。
本发明实施例所述记录外设操作行为的方法,通过安装在操作系统驱动层环0的回调驱动程序获取并记录外设操作行为,有效克服应用层环3的记录和回放外设操作的方案很容易被游戏的反外挂系统当作外挂而查杀的问题,从而进一步实现在不被游戏的反外挂阻止的情况下,回放之前所记录的外设操作行为。另外,本发明实施例通过操作101及其子操作1011-1014深度分析“设备栈”的方式实现键盘记录和回放的挂钩点或鼠标记录和回放的挂钩点的查找,从而杜绝了硬编码,进而提升整个技术方案的通用性及其系统的稳定性。
图3示意性地示出了本发明的实施方式中记录外设操作行为的设备的组成结构示意图。
如图3所示,本发明实施例提供一种记录外设操作行为的设备30,该设备30包括:获取装置303,用于通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;记录装置305,用于记录所获取的外设操作行为。
其中,所述外设操作行为包括页游操作行为或端游操作行为。
根据本发明一实施方式,如图3所示,该设备还包括:查找装置301,用于在所述获取装置通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为之前,追踪端口驱动和类驱动,以查找安装回调驱动程序的位置信息,然后在所述位置信息指示的位置安装回调驱动程序。
根据本发明一实施方式,所述查找装置301还用于:分别获取端口驱动和类驱动的驱动对象;遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;遍历类驱动的驱动对象的第二设备列表;在第一设备列表中查找与所述第二设备列表匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为所述安装回调驱动程序的位置信息。
根据本发明一实施方式,所述查找装置301还用于:读取所述第一设备列表中每个设备的设备扩展内容;对比所述第一设备列表中每个设备的设备扩展内容的第一部分和所述第二设备列表中设备的设备对象;若所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配,则进一步检测所述第一设备列表中第一设备的设备扩展内容的第二部分是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;若所述第一设备列表中第一设备的设备扩展内容的第二部分处在所述第二设备列表中第二设备的驱动对象的地址范围内,则确定所述第一设备为所述目标设备。
根据本发明一实施方式,所述查找装置301还用于:通过遍历设备扩展长度的方式读取所述第一设备列表中每个设备的设备扩展内容;其中,所述设备扩展长度的取值为设备对象扩展的起始地址与设备扩展的起始地址两者之差。
根据本发明一实施方式,所述查找装置301还用于:通过判断所述第二部分所属地址是否处在驱动起始地址和驱动结束地址之内的方式来检测是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;其中,所述驱动结束地址的取值为所述驱动起始地址与驱动大小两者之和。
根据本发明一实施方式,如图3所示,所述设备还包括在操作系统应用层环3的应用中增设的回放插件307;所述回放插件307,用于回放所记录的外设操作行为。
根据本申请实施例的所述记录用户操作行为的设备30中的各组成结构的具体配置和操作已经在上面参考图1至3描述的记录用户操作行为的方法中详细介绍,并因此,将省略其重复描述。
示例性设备
在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的另一示例性实施方式的记录用户操作行为的设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或计算机可读存储介质。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,本发明的服务器可以至少包括一个或多个处理器、以及至少一个存储器。其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行本说明书中描述的记录用户操作行为的方法的各个步骤,例如,处理器可以执行如图1中所示的操作103,通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;操作105,记录所获取的外设操作行为。
图4示意性地示出了根据本发明实施方式的记录外设操作行为的设备的实现示意图。
下面参照图4来描述根据本发明的这种实施方式的记录外设操作行为的设备400。图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,设备400以通用计算设备的形式示出,包括但不限于:上述至少一个处理器410、上述至少一个存储器420、连接不同系统组件(包括存储器420和处理器410)的总线460。
总线460包括地址总线,控制总线和数据总线。
存储器420可以包括易失性存储器,例如随机存取存储器(RAM)421和/或高速缓存存储器422,还可以进一步包括只读存储器(ROM)423。
存储器420还可以包括一组(至少一个)程序模块424,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
设备400还可以与一个或多个外部设备40(例如键盘、指向设备、蓝牙设备等)通信。这种通信可以通过输入/输出(I/O)接口440进行,并在显示单元430上进行显示。并且,设备400还可以通过网络适配器450与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器450通过总线460与设备400中的其它模块通信。应当明白,尽管图中未示出,但可以结合设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性计算机程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种计算机程序产品的形式,其包括程序代码,当所述程序代码在被处理器执行时,所述程序代码用于使所述处理器执行上面描述的方法的各个步骤,例如,处理器可以执行如图1中所示的操作103,通过安装在操作系统驱动层环0的回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;操作105,记录所获取的外设操作行为。
所述计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图5示意性地示出了存储有实现根据本发明实施方式的记录外设操作行为的方法的计算机程序的计算机可读存储介质的示意图。
如图5所示,描述了根据本发明的实施方式的程序产品500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端或服务器上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在用户计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
应当注意,尽管在上文详细描述中提及了用于软件测试的若干装置及子装置,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (8)
1.一种记录外设操作行为的方法,包括:
分别获取端口驱动和类驱动的驱动对象;
遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;
遍历类驱动的驱动对象的第二设备列表;
在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为安装在操作系统驱动层环0的回调驱动程序的位置信息,在所述位置信息指示的位置安装所述回调驱动程序,所述回调驱动程序的位置信息是用于键盘记录和回放的挂钩点或用于鼠标记录和回放的挂钩点的位置信息;
通过安装的所述回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;
记录所获取的外设操作行为。
2.根据权利要求1所述的方法,其中,在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,包括:
读取所述第一设备列表中每个设备的设备扩展内容;
对比所述第一设备列表中每个设备的设备扩展内容的第一部分和所述第二设备列表中设备的设备对象;
若所述第一设备列表中第一设备的设备扩展内容的第一部分和所述第二设备列表中第二设备的设备对象相匹配,则进一步检测所述第一设备列表中第一设备的设备扩展内容的第二部分是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;
若所述第一设备列表中第一设备的设备扩展内容的第二部分处在所述第二设备列表中第二设备的驱动对象的地址范围内,则确定所述第一设备为所述目标设备。
3.根据权利要求2所述的方法,其中,进一步包括:
通过遍历设备扩展长度的方式读取所述第一设备列表中每个设备的设备扩展内容;
其中,所述设备扩展长度的取值为设备对象扩展的起始地址与设备扩展的起始地址两者之差。
4.根据权利要求2所述的方法,其中,进一步包括:
通过判断所述第二部分所属地址是否处在驱动起始地址和驱动结束地址之内的方式来检测是否处在所述第二设备列表中第二设备的驱动对象的地址范围内;
其中,所述驱动结束地址的取值为所述驱动起始地址与驱动大小两者之和。
5.根据权利要求1至4任一项所述的方法,其中,所述方法还包括:
通过在操作系统应用层环3的应用中增设的回放插件来回放所记录的外设操作行为。
6.一种记录用户操作行为的设备,包括:
查找装置,用于分别获取端口驱动和类驱动的驱动对象;
遍历端口驱动的驱动对象的第一设备列表,及所述第一设备列表中每个设备的设备扩展内容;
遍历类驱动的驱动对象的第二设备列表;
在第一设备列表中查找与所述第二设备列表中的设备匹配的目标设备,并将所述目标设备对应的设备扩展内容的第二部分确定为安装在操作系统驱动层环0的回调驱动程序的位置信息,在所述位置信息指示的位置安装所述回调驱动程序,所述回调驱动程序的位置信息是用于键盘记录和回放的挂钩点或用于鼠标记录和回放的挂钩点的位置信息;
获取装置,用于通过安装的所述回调驱动程序获取外设操作行为,所述外设操作行为为用户触发的外接设备操作行为;
记录装置,用于记录所获取的外设操作行为。
7.一种记录用户操作行为的设备,包括:
一个或者多个处理器;
存储器;
存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行如权利要求1-5中任意一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如权利要求1-5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711464905.4A CN108563552B (zh) | 2017-12-28 | 2017-12-28 | 一种记录外设操作行为的方法、设备及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711464905.4A CN108563552B (zh) | 2017-12-28 | 2017-12-28 | 一种记录外设操作行为的方法、设备及其存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563552A CN108563552A (zh) | 2018-09-21 |
CN108563552B true CN108563552B (zh) | 2021-09-28 |
Family
ID=63530539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711464905.4A Active CN108563552B (zh) | 2017-12-28 | 2017-12-28 | 一种记录外设操作行为的方法、设备及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563552B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446025B (zh) * | 2018-10-17 | 2022-08-23 | 北京字节跳动网络技术有限公司 | 一种操作行为的回放方法、装置、电子设备及可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114323A (zh) * | 2006-07-28 | 2008-01-30 | 上海山丽信息安全有限公司 | 监控键盘钩子的装置 |
CN103324442A (zh) * | 2012-03-23 | 2013-09-25 | 联想(北京)有限公司 | 一种处理i/o请求的方法及电子设备 |
CN103620613A (zh) * | 2011-03-28 | 2014-03-05 | 迈克菲股份有限公司 | 用于基于虚拟机监视器的反恶意软件安全的系统和方法 |
CN104834876A (zh) * | 2015-02-06 | 2015-08-12 | 严清 | 一种键盘输入数据保护方法 |
CN104969232A (zh) * | 2013-03-13 | 2015-10-07 | 英特尔公司 | 管理设备驱动器跨环访问 |
-
2017
- 2017-12-28 CN CN201711464905.4A patent/CN108563552B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114323A (zh) * | 2006-07-28 | 2008-01-30 | 上海山丽信息安全有限公司 | 监控键盘钩子的装置 |
CN103620613A (zh) * | 2011-03-28 | 2014-03-05 | 迈克菲股份有限公司 | 用于基于虚拟机监视器的反恶意软件安全的系统和方法 |
CN103324442A (zh) * | 2012-03-23 | 2013-09-25 | 联想(北京)有限公司 | 一种处理i/o请求的方法及电子设备 |
CN104969232A (zh) * | 2013-03-13 | 2015-10-07 | 英特尔公司 | 管理设备驱动器跨环访问 |
CN104834876A (zh) * | 2015-02-06 | 2015-08-12 | 严清 | 一种键盘输入数据保护方法 |
Non-Patent Citations (4)
Title |
---|
"Windows 主机键盘记录技术对比分析";刘望桐等;《技术研究》;20140630;第43-47页正文第0-4节及图1-3 * |
"基于SSDT 及回调函数的键盘记录方法";陈俊杰等;《计算机工程》;20100630;第120-122页 * |
"键盘输入安全研究";李鹏伟等;《计算机科学》;20131031;第10-16页 * |
刘望桐等."Windows 主机键盘记录技术对比分析".《技术研究》.2014, * |
Also Published As
Publication number | Publication date |
---|---|
CN108563552A (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US9606725B2 (en) | Collaborative overlay of user interface elements rendered on the display of a computing device | |
CN110865888B (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN110989926B (zh) | 故障磁盘槽位定位方法、装置及电子设备 | |
CN103984538A (zh) | 应用场景的识别方法、功耗管理方法、装置及终端设备 | |
US8694992B2 (en) | Traversing memory structures to parse guest operating system instrumentation information in a hypervisor | |
CN110825456A (zh) | 加载时间计算方法、装置、计算机设备及存储介质 | |
CN109495549B (zh) | 一种应用拉活的方法、设备和计算机存储介质 | |
CN109960554B (zh) | 展示阅读内容的方法、设备和计算机存储介质 | |
CN111813465B (zh) | 一种信息获取方法、装置、介质和设备 | |
CN106484719B (zh) | 一种扩展手机存储的方法及终端 | |
CN109117153A (zh) | 应用程序的处理方法、装置、终端和存储介质 | |
CN114461691A (zh) | 状态机的控制方法、装置、电子设备及存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN108563552B (zh) | 一种记录外设操作行为的方法、设备及其存储介质 | |
US20140280544A1 (en) | Dynamically Managing Social Networking Groups | |
KR101170122B1 (ko) | 외부 저장장치에 저장된 응용프로그램의 실행 시스템 및 그 방법 | |
US9069951B2 (en) | Inferring security decisions from trusted users | |
CN108197041B (zh) | 一种确定子进程的父进程的方法、设备及其存储介质 | |
CN112162954B (zh) | 用户操作日志生成、路径的定位方法、装置、设备及介质 | |
CN111475819B (zh) | 识别异常终端设备的方法及装置、存储介质、电子设备 | |
CN115576484A (zh) | 数据读写方法、装置、电子设备及存储介质 | |
CN110753136B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN113778370A (zh) | 一种语音消息播放方法、装置、电子设备及存储介质 | |
CN112988192A (zh) | 版本更新方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |