CN105631318A - 一种注册表键值的获取方法及装置 - Google Patents
一种注册表键值的获取方法及装置 Download PDFInfo
- Publication number
- CN105631318A CN105631318A CN201510977789.0A CN201510977789A CN105631318A CN 105631318 A CN105631318 A CN 105631318A CN 201510977789 A CN201510977789 A CN 201510977789A CN 105631318 A CN105631318 A CN 105631318A
- Authority
- CN
- China
- Prior art keywords
- key value
- registry
- name
- target
- key
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims description 65
- 238000012545 processing Methods 0.000 claims description 17
- 230000004048 modification Effects 0.000 abstract description 8
- 238000012986 modification Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000139727 Apata Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种注册表键值的获取方法,包括:接收键值查询请求;获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。本发明实施例还公开了一种注册表键值的获取装置。采用本发明实施例,能够解决因恶意修改注册表键值而无法获得正确的注册表键值的问题。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种注册表键值的获取方法及装置。
背景技术
随着互联网技术的发展,终端上能够实现的功能越来越多,与此同时,终端面临的安全威胁也越来越大。目前,从上层应用到底层代码实现,恶意的程序技术层出不穷,经常会出现恶意修改注册表键值的情况,使得终端无法获取得到正确的注册表键值,以通过恶意修改注册表键值达到软件自启动的目的,或者锁定默认浏览器等等。这就使得在使用终端过程中给用户带来不便,甚至可能给用户造成损失。
现有技术中可通过底层代码APIHOOK函数来实现注册表键值的保护,比如对于HOOKNtSetValueKey函数,其主要是在有恶意软件修改指定注册表键值时进行拦截,使其修改失败。然而,若恶意软件通过比该HOOKNtSetValueKey函数更深层次的技术来恶意修改注册表键值,比如使用CmSetValueKey函数或者其他更深层次的技术时即可轻易穿透该HOOK函数的防护。该通过APIHOOK函数的键值保护方式难度大且保护效果不明显,无法实现对注册表键值的有效保护,导致终端可能仍然无法获取得到正确的注册表键值。
发明内容
本发明实施例所要解决的技术问题在于,提供一种注册表键值的获取方法及装置,用于解决因恶意修改注册表键值而无法获得正确的注册表键值的问题。
为了解决上述技术问题,本发明实施例提供了一种注册表键值的获取方法,包括:
接收键值查询请求;
获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;
获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
可选的,所述方法还包括:
预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
可选的,所述将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储,包括:
分别获取不同的注册表键值名对应的注册表路径;
将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值,包括:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
可选的,所述方法还包括:
在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取预置的与所述目标键值名对应的键值,包括:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
可选的,在所述将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值之前,所述方法还包括:
查找预先存储的与所述目标键值名关联的键值;
将所述注册表信息结构的预设字段中的内存数据替换为所述关联的键值。
相应地,本发明实施例还提供了一种注册表键值的获取装置,包括:
接收模块,用于接收键值查询请求;
获取模块,用于获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;
所述获取模块,还用于获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
可选的,所述装置还包括:
预置模块,用于预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
存储模块,用于将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
可选的,所述存储模块包括:
路径获取单元,用于分别获取不同的注册表键值名对应的注册表路径;
关联存储单元,用于将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述获取模块获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值的具体方式为:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
可选的,所述装置还包括:
注册模块,用于在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取模块获取预置的与所述目标键值名对应的键值的具体方式为:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
可选的,所述装置还包括:
查找模块,用于查找预先存储的与所述目标键值名关联的键值;
替换模块,用于将所述注册表信息结构的预设字段中的内存数据替换为所述查找模块查找出的所述关联的键值。
实施本发明实施例,具有如下有益效果:
在本发明实施例中,可在接收到键值查询请求时,获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名对应的正确键值,将该预置的键值作为当前需要查询的注册表键值,以根据该注册表键值确保应用程序的正常启动,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,避免了给用户带来不便及损失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种注册表键值的获取方法的流程示意图;
图2是本发明实施例提供的另一种注册表键值的获取方法的流程示意图;
图3是本发明实施例提供的一种注册表键值的获取装置的结构示意图;
图4是本发明实施例提供的另一种注册表键值的获取装置的结构示意图;
图5是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种注册表键值的获取方法、装置及终端设备,能够解决因恶意修改注册表键值而无法获得正确的注册表键值的问题。以下分别详细说明。
请参阅图1,图1是本发明实施例提供的一种注册表键值的获取方法的流程示意图。具体的,如图1所示,本发明实施例的所述注册表键值的获取方法可以包括以下步骤:
101、接收键值查询请求。
需要说明的是,本发明实施例的所述方法可具体应用于终端设备(以下简称终端),如智能手机(如Android手机、iOS手机等)、平板电脑、移动互联网设备(MobileInternetDevices,简称“MID”)、个人电脑等终端中,本发明实施例不做限定。
可选的,该键值查询请求可以是在打开安装于终端的某一应用程序时触发的,以触发获取该应用程序的注册表键值。
102、获取所述键值查询请求对应的目标键值名。
其中,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称。具体的,该目标键值名可以是通过解析该键值查询请求对应的应用程序的注册表信息结构得到的。
具体的,终端可预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。从而预置得到不同注册表键值名及其对应的正确键值。
103、获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述键值查询请求需要查询的注册表键值。
具体实施例中,该终端中可预置有不同注册表键值名以及与该注册表键值名对应的键值,该预置的键值为该键值查询请求所需要的正确的注册表键值,如根据终端合法用户的操作设置的键值,或者系统默认设置的键值等等,其区别于被恶意程序技术修改后的键值。从而能够根据该获取的正确的键值确保应用程序的正常启动。
进一步可选的,终端还可分别获取不同的注册表键值名对应的注册表路径;则所述将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储,可以具体为:将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储。进一步的,所述获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述键值查询请求需要查询的注册表键值,可以具体为:获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述键值查询请求需要查询的注册表键值。其中,所述目标注册表路径为所述键值查询请求对应的注册表路径,具体可通过解析该键值查询请求对应的注册表信息结构得到。
在本发明实施例中,可在接收到键值查询请求时,获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名对应的正确键值,并将该预置的键值作为当前需要查询的注册表键值,以根据该注册表键值确保应用程序的正常启动,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,避免了给用户带来不便及损失。
进一步的,请参阅图2,图2是本发明实施例提供的另一种注册表键值的获取方法的流程示意图。具体的,如图2所示,本发明实施例的所述注册表键值的获取方法可以包括以下步骤:
201、预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值。
202、将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
具体实施例中,可预先配置得到各应用程序对应的不同注册表键值名以及与该注册表键值名对应的键值(即虚拟的键值内容,其为预置的正确注册表键值),并将注册表键值名以及该注册表键值名对应的键值进行关联存储,如保存到全局数据中,以便于后续启动应用程序进行键值查询时,能够及时地获取得到相应注册表键值相关联的键值,即预置的正确注册表键值,比如根据终端合法用户的操作设置的键值,或者系统默认设置的键值等等,其区别于被恶意程序技术修改后的键值。
可选的,终端还可分别获取不同的注册表键值名对应的注册表路径;则所述将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储,可以具体为:将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储。从而能够在后续进行键值查询时,通过获取当前注册表键值名和注册表路径来准确查找与其关联的键值。
203、在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型。
可选的,本发明实施例可使用CmRegistercallback注册表回调来实现查询注册表的虚拟,该CmRegistercallback函数处于较底层的层面,使得难以被恶意程序穿透,以确保数据的安全性。具体的,可使用底层函数CmRegistercallback注册一个注册表回调函数,假设该注册的回调函数的函数名是RegistryCallback,并可将回调函数里处理操作类型配置为(RegOperationClass=RegNtPreQueryValueKey)查询注册表键值的类型,处理这个类型的函数定义为MyRegNtPreQueryValueKey;这就使得系统中所有查询注册表键值的行为,都会进入MyRegNtPreQueryValueKey函数。由此,可在MyRegNtPreQueryValueKey里实现查询注册表键值的虚拟。
204、当接收到键值查询请求时,通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构。
205、从所述注册表信息结构中获取所述键值查询请求对应的目标键值名。
进一步的,在接收到键值查询请求如检测到打开某一应用程序触发的键值查询请求时,即可获取该键值查询请求对应的注册表信息结构,具体可通过调用该注册表回调函数来获取得到键值查询请求对应的注册表信息结构,如该MyRegNtPreQueryValueKey函数中的第二个参数Argument2是REG_QUERY_VALUE_KEY_INFORMATION结构类型的,则可将其作为键值查询请求对应的注册表信息结构,该结构类型的数据可包括需要查询的即键值查询请求对应的注册表路径、注册表键值名(即目标键值名)。例如,该注册表信息结构可以如下所示:
[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]"abc"="\"c:\\users\\lenovo\\appdatalocal\\liebao\\liebao.exe\
其中,该[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]为注册表路径;该“abc”为注册表键值名,即该键值查询请求对应的目标键值名;该""\"c:\\users\\lenovo\\appdatalocal\\liebao\\liebao.exe\"为注册表键值。由于MyRegNtPreQueryValueKey函数是在查询前时候会进入的,所以还没有该""\"c:\\users\\lenovo\\appdatalocal\\liebao\\liebao.exe\"注册表键值部分的内容,而这部份键值内容即是需要虚拟的内容,也就是该键值查询请求需要查询的键值,其具体为预置的与注册表信息结构中的注册表键值名相关联的注册表键值,即该目标键值名对应的键值。
206、查找预先存储的与所述目标键值名关联的键值。
可选的,还可获取根据该键值查询请求对应的当前注册表路径,则该查找预先存储的与所述目标键值名关联的键值,可以具体为:根据获取的当前注册表键值名和注册表路径即目标键值名和目标注册表路径,查找出预先存储的与该目标键值名和目标注册表路径相关联的键值。
207、将所述注册表信息结构的预设字段中的内存数据替换为所述关联的键值,并将所述关联的键值确定为所述键值查询请求需要查询的键值。
具体的,该需要查询的注册表键值可从该注册表信息结构中的预设字段获取得到,比如上述的REG_QUERY_VALUE_KEY_INFORMATION结构类型中,有一个KeyValueInformation字段,把虚拟的键值内容即与该目标键值名相关联的键值(也就是需要查询的注册表键值)填写到这个字段中即可实现对该虚拟的键值内容的查询。比如可查找预先存储的与该键值名"abc"关联的键值,即"\"c:\\users\\lenovo\\appdata\\local\\liebao\\liebao.exe\,并可将该关联的键值"\"c:\\users\\lenovo\\appdata\\local\\liebao\\liebao.exe\"内容写到KeyValueInformation字段中,也就是用"\"c:\\users\\lenovo\\appdata\\local\\liebao\\liebao.exe\"替换KeyValueInformation字段中原来的内存数据。进一步的,在完成该替换之后,还可将MyRegNtPreQueryValueKey的返回状态改为STATUS_CALLBACK_BY_OK的值,用于表明该MyRegNtPreQueryValueKey函数已经完成了键值查询功能,而无需要往下传到解析磁盘得到键值了(现有的键值查询流程则是到解析磁盘查询键值,该解析磁盘中存储的键值可能是恶意程序技术修改后的键值),即虚拟后就不需要执行到“CmpQueryValueKey解析硬盘文件注册表数据”,而是直接返回,让查询操作者认为查询到真实数据了。由此,不管键值名"abc"的键值被任意恶意程序用何种技术更改,在查询使用此键值的时候,都能返回正确的需要查询的键值数据。该返回的正确键值数据则使得应用程序能够正常启动,如确保了默认浏览器的锁定正常等。其中,该操作者即为当前正在执行函数的进程。
在本发明实施例中,可通过预置不同注册表键名以及与每一个注册表键值名对应的键值,并将该注册表键值名及其对应的键值进行关联存储,使得在接收到键值查询请求时,能够通过获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名关联的正确键值,将该预置的键值作为当前需要查询的注册表键值,以根据该预置的键值确保应用程序的正常启动。本发明实施例不再使用现有的通过用APIHOOK的方式来保护注册表键值数据,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,实现了注册表键值的有效保护,避免了给用户带来不便及损失。
请参阅图3,图3是本发明实施例提供的一种注册表键值的获取装置的结构示意图。具体的,如图3所示,本发明实施例的所述注册表键值的获取装置可以包括接收模块11以及获取模块12。其中,
所述接收模块11,用于接收键值查询请求。
需要说明的是,本发明实施例的所述注册表键值的获取装置可具体设置于终端设备(以下简称终端),如智能手机(如Android手机、iOS手机等)、平板电脑、移动互联网设备(MobileInternetDevices,简称“MID”)、个人电脑等终端中,本发明实施例不做限定。
可选的,该键值查询请求可以是在打开安装于终端的某一应用程序时触发的,以获取该应用程序的注册表键值。
所述获取模块12,用于获取所述键值查询请求对应的目标键值名。
其中,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称。具体的,该目标键值名可以是通过解析该键值查询请求对应的应用程序的注册表信息结构得到的。
所述获取模块12,还用于获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
具体实施例中,该终端中可预置有不同注册表键值名以及与该注册表键值名对应的键值,该预置的键值为该键值查询请求所需要的正确的注册表键值,如根据终端合法用户的操作设置的键值,或者系统默认设置的键值等等,其区别于被恶意程序技术修改后的键值。从而在接收模块11接收到键值查询请求如打开某一应用程序触发的键值查询请求时,获取模块12能够通过获取该键值查询请求对应的目标键值名,并根据该获取的目标键值名获取到正确的键值,以确保应用程序的正常启动。
在本发明实施例中,可在接收到键值查询请求时,获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名对应的正确键值,将该预置的键值作为当前需要查询的注册表键值,以根据该注册表键值确保应用程序的正常启动,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,避免了给用户带来不便及损失。
进一步的,请参阅图4,图4是本发明实施例提供的另一种注册表键值的获取装置的结构示意图。具体的,如图4所示,本发明实施例的所述装置包括上述图3对应实施例的注册表键值的获取装置中的接收模块11以及获取模块12,此处不再赘述。进一步的,在本发明实施例中,所述装置还可包括:
预置模块13,用于预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
存储模块14,用于将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
具体实施例中,可通过预置模块13预先配置得到各应用程序对应的不同注册表键值名以及与该注册表键值名对应的键值(即虚拟的键值内容,其为预置的正确注册表键值),并通过存储模块14将注册表键值名以及该注册表键值名对应的键值进行关联存储,如保存到全局数据中,以便于后续启动应用程序进行键值查询时,能够及时地获取得到相应注册表键值相关联的键值,即预置的正确注册表键值,比如根据终端合法用户的操作设置的键值,或者系统默认设置的键值等等,其区别于被恶意程序技术修改后的键值。
可选的,在本发明实施例中,所述存储模块14可具体包括(图中未示出):
路径获取单元141,用于分别获取不同的注册表键值名对应的注册表路径;
关联存储单元142,用于将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述获取模块12获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值的具体方式可以为:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
进一步的,在本发明实施例中,所述装置还可包括:
注册模块15,用于在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取模块12获取预置的与所述目标键值名对应的键值的具体方式可以为:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
具体的,注册模块15可使用底层函数CmRegistercallback注册一个注册表回调函数,该CmRegistercallback函数处于较底层的层面,使得难以被恶意程序穿透,以确保数据的安全性。假设该注册的回调函数的函数名是RegistryCallback,并且注册模块15可将回调函数里处理操作类型配置为(RegOperationClass=RegNtPreQueryValueKey)查询注册表键值的类型,处理这个类型的函数定义为MyRegNtPreQueryValueKey,从而使得系统中所有查询注册表键值的行为,都会进入MyRegNtPreQueryValueKey函数。由此,可在MyRegNtPreQueryValueKey里实现查询注册表键值的虚拟。
进一步的,在接收到键值查询请求如检测到打开某一应用程序触发的键值查询请求时,获取模块12即可获取该键值查询请求对应的注册表信息结构,具体可通过调用该注册表回调函数获取得到键值查询请求对应的注册表信息结构,如该MyRegNtPreQueryValueKey函数中的第二个参数Argument2是REG_QUERY_VALUE_KEY_INFORMATION结构类型的,则获取模块12可将其作为键值查询请求对应的注册表信息结构,该结构类型的数据可包括需要查询的即键值查询请求对应的注册表路径、注册表键值名(即目标键值名)等等。
进一步的,在本发明实施例中,所述装置还可包括:
查找模块16,用于查找预先存储的与所述目标键值名关联的键值;
替换模块17,用于将所述注册表信息结构的预设字段中的内存数据替换为所述查找模块16查找出的所述关联的键值。
具体的,该需要查询的注册表键值可从该注册表信息结构中的预设字段获取得到,比如在上述的REG_QUERY_VALUE_KEY_INFORMATION结构类型中,有一个KeyValueInformation字段保存,查找模块16可查找预先存储的与该目标键值名关联的键值,并通过替换模块17把虚拟的键值内容即与该目标键值名相关联的键值(也就是需要查询的注册表键值)填写到这个字段中即可实现对该虚拟的键值内容的查询,也就是用预置的与该目标键值名相关联的键值替换KeyValueInformation字段中原来的内存数据。进一步的,在替换模块17完成该替换之后,还可将MyRegNtPreQueryValueKey的返回状态改为STATUS_CALLBACK_BY_OK的值,用于表明该MyRegNtPreQueryValueKey函数已经完成了键值查询功能,直接返回该查询的键值,而无需要往下传到解析磁盘得到键值了,以使查询操作者认为查询到真实数据了。由此,不管注册表键值名的键值被任意恶意程序用何种技术更改,在查询使用此键值的时候,都能返回正确的需要查询的键值数据。
在本发明实施例中,可通过预置不同注册表键名以及与每一个注册表键值名对应的键值,并将该注册表键值名及其对应的键值进行关联存储,使得在接收到键值查询请求时,能够通过获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名关联的正确键值,将该预置的键值作为当前需要查询的注册表键值,以根据该预置的键值确保应用程序的正常启动。本发明实施例不再使用现有的通过用APIHOOK的方式来保护注册表键值数据,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,实现了注册表键值的有效保护,避免了给用户带来不便及损失。
请参阅图5,图5是本发明实施例提供的一种终端设备的结构示意图。具体的,如图5所示,本发明实施例的所述终端设备可以包括:至少一个处理器100,至少一个输入装置200,至少一个输出装置300,存储器500等组件。其中,这些组件通过一条或多条总线400进行通信连接。本领域技术人员可以理解,图5中示出的终端设备的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器100为终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器500内的程序和/或模块,以及调用存储在存储器500内的数据,以执行终端设备的各种功能和处理数据。处理器100可以由集成电路(IntegratedCircuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器100可以仅包括中央处理器(CentralProcessingUnit,简称CPU),也可以是CPU、数字信号处理器(digitalsignalprocessor,简称DSP)、图形处理器(GraphicProcessingUnit,简称GPU)及各种控制芯片的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
输入装置200可以包括标准的触摸屏、键盘、摄像头等,也可以包括有线接口、无线接口等。
输出装置300可以包括显示屏、扬声器等,也可以包括有线接口、无线接口等。
存储器500可用于存储软件程序以及模块,处理器100、输入装置200以及输出装置300通过调用存储在存储器500中的软件程序以及模块,从而执行终端设备的各项功能应用以及实现数据处理。存储器500主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等;数据存储区可存储根据终端设备的使用所创建的数据等。在本发明实施例中,操作系统可以是Android系统、iOS系统或Windows操作系统等等。
具体的,处理器100调用存储在存储器500中的应用程序,用于执行以下步骤:
接收键值查询请求;
获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;
获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
可选的,所述处理器100调用存储在存储器500中的应用程序,还用于执行以下步骤:
预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
可选的,所述处理器100调用存储在存储器500中的应用程序执行所述将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储,具体执行以下步骤:
分别获取不同的注册表键值名对应的注册表路径;
将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述处理器100调用存储在存储器500中的应用程序执行所述获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值,具体执行以下步骤:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
可选的,所述处理器100调用存储在存储器500中的应用程序,还用于执行以下步骤:
在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取预置的与所述目标键值名对应的键值,包括:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
可选的,所述处理器100调用存储在存储器500中的应用程序执行所述将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值之前,还用于执行以下步骤:
查找预先存储的与所述目标键值名关联的键值;
将所述注册表信息结构的预设字段中的内存数据替换为所述关联的键值。
在本发明实施例中,可在接收到键值查询请求时,获取该键值查询请求对应的目标键值名,并进一步根据该目标键值名获取预置的与该目标键值名对应的正确键值,并将该预置的键值作为当前需要查询的注册表键值,以根据该注册表键值确保应用程序的正常启动,从而解决了因恶意修改注册表键值而无法获得正确的注册表键值的问题,避免了给用户带来不便及损失。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“具体实施例”“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种注册表键值的获取方法,其特征在于,包括:
接收键值查询请求;
获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;
获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
3.根据权利要求2所述的方法,其特征在于,所述将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储,包括:
分别获取不同的注册表键值名对应的注册表路径;
将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值,包括:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取预置的与所述目标键值名对应的键值,包括:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
5.根据权利要求4所述的方法,其特征在于,在所述将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值之前,所述方法还包括:
查找预先存储的与所述目标键值名关联的键值;
将所述注册表信息结构的预设字段中的内存数据替换为所述关联的键值。
6.一种注册表键值的获取装置,其特征在于,包括:
接收模块,用于接收键值查询请求;
获取模块,用于获取所述键值查询请求对应的目标键值名,所述目标键值名为所述键值查询请求需要查询的注册表键值的名称;
所述获取模块,还用于获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
预置模块,用于预先获取不同的注册表键值名,并为每一个注册表键值名配置与该注册表键值名对应的键值;
存储模块,用于将每一个注册表键值名以及与该注册表键值名对应的键值进行关联存储。
8.根据权利要求7所述的装置,其特征在于,所述存储模块包括:
路径获取单元,用于分别获取不同的注册表键值名对应的注册表路径;
关联存储单元,用于将每一个注册表键值名、与该注册表键值名对应的注册表路径以及与该注册表键值名对应的键值进行关联存储;
所述获取模块获取预置的与所述目标键值名对应的键值,并将与所述目标键值名对应的键值作为所述需要查询的注册表键值的具体方式为:
获取预先存储的与所述目标键值名和目标注册表路径关联的键值,并将获取的键值作为所述需要查询的注册表键值。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述装置还包括:
注册模块,用于在底层函数中预先注册注册表回调函数,并将所述注册表回调函数的处理操作类型配置为查询注册表键值的类型;
所述获取模块获取预置的与所述目标键值名对应的键值的具体方式为:
通过调用所述注册表回调函数获取所述键值查询请求对应的注册表信息结构;
将所述注册表信息结构的预设字段中的键值确定为与所述目标键值名对应的键值。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
查找模块,用于查找预先存储的与所述目标键值名关联的键值;
替换模块,用于将所述注册表信息结构的预设字段中的内存数据替换为所述查找模块查找出的所述关联的键值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510977789.0A CN105631318B (zh) | 2015-12-23 | 2015-12-23 | 一种注册表键值的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510977789.0A CN105631318B (zh) | 2015-12-23 | 2015-12-23 | 一种注册表键值的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105631318A true CN105631318A (zh) | 2016-06-01 |
CN105631318B CN105631318B (zh) | 2019-04-05 |
Family
ID=56046243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510977789.0A Active CN105631318B (zh) | 2015-12-23 | 2015-12-23 | 一种注册表键值的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105631318B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026542A (zh) * | 2019-10-21 | 2020-04-17 | 厦门天锐科技股份有限公司 | 一种应用程序的覆盖图标的显示方法和装置 |
CN113360525A (zh) * | 2021-08-10 | 2021-09-07 | 支付宝(杭州)信息技术有限公司 | 查询请求处理方法、装置及设备、键值查询系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736978A (zh) * | 2012-06-26 | 2012-10-17 | 奇智软件(北京)有限公司 | 一种检测应用程序的安装状态的方法及装置 |
CN102750164A (zh) * | 2012-05-29 | 2012-10-24 | 湖北盛天网络技术股份有限公司 | 一种自动配置设备驱动程序的方法 |
CN102981874A (zh) * | 2012-11-15 | 2013-03-20 | 北京奇虎科技有限公司 | 计算机处理系统和注册表重定向方法 |
CN103019674A (zh) * | 2012-11-15 | 2013-04-03 | 北京奇虎科技有限公司 | 注册表重定向方法和装置 |
CN103150234A (zh) * | 2013-03-20 | 2013-06-12 | 北京奇虎科技有限公司 | 驱动程序的备份方法及装置 |
CN103593186A (zh) * | 2013-11-11 | 2014-02-19 | 北京奇虎科技有限公司 | 一种操作注册表的方法及装置 |
-
2015
- 2015-12-23 CN CN201510977789.0A patent/CN105631318B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750164A (zh) * | 2012-05-29 | 2012-10-24 | 湖北盛天网络技术股份有限公司 | 一种自动配置设备驱动程序的方法 |
CN102736978A (zh) * | 2012-06-26 | 2012-10-17 | 奇智软件(北京)有限公司 | 一种检测应用程序的安装状态的方法及装置 |
CN102981874A (zh) * | 2012-11-15 | 2013-03-20 | 北京奇虎科技有限公司 | 计算机处理系统和注册表重定向方法 |
CN103019674A (zh) * | 2012-11-15 | 2013-04-03 | 北京奇虎科技有限公司 | 注册表重定向方法和装置 |
CN103150234A (zh) * | 2013-03-20 | 2013-06-12 | 北京奇虎科技有限公司 | 驱动程序的备份方法及装置 |
CN103593186A (zh) * | 2013-11-11 | 2014-02-19 | 北京奇虎科技有限公司 | 一种操作注册表的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026542A (zh) * | 2019-10-21 | 2020-04-17 | 厦门天锐科技股份有限公司 | 一种应用程序的覆盖图标的显示方法和装置 |
CN111026542B (zh) * | 2019-10-21 | 2023-05-09 | 厦门天锐科技股份有限公司 | 一种应用程序的覆盖图标的显示方法和装置 |
CN113360525A (zh) * | 2021-08-10 | 2021-09-07 | 支付宝(杭州)信息技术有限公司 | 查询请求处理方法、装置及设备、键值查询系统 |
CN113360525B (zh) * | 2021-08-10 | 2021-12-07 | 支付宝(杭州)信息技术有限公司 | 查询请求处理方法、装置及设备、键值查询系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105631318B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9602347B2 (en) | Method, system and program for browser to switch IE kernel | |
US9152521B2 (en) | Systems and methods for testing content of mobile communication devices | |
US10152660B2 (en) | Smart card read/write method and apparatus | |
CN106951335B (zh) | 一种进程守护方法和移动终端 | |
KR20150048136A (ko) | 보안 펌웨어 업데이트 기법 | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN106648685B (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN107203465A (zh) | 系统接口测试方法及装置 | |
CN112579187A (zh) | 一种应用程序冷启动的优化方法及装置 | |
CN106951239B (zh) | 设置应用程序的显示的方法及装置 | |
CN110889116B (zh) | 一种广告拦截方法、装置及电子设备 | |
US20200034101A1 (en) | Data displaying method and electronic device | |
CN105631318B (zh) | 一种注册表键值的获取方法及装置 | |
CN105354490B (zh) | 一种处理被劫持浏览器的方法及设备 | |
CN108509228B (zh) | 加载页面的方法、终端设备及计算机可读存储介质 | |
CN112905072B (zh) | 应用程序的处理方法、装置及电子设备 | |
CN113064601B (zh) | 动态加载文件的确定方法、装置、终端及存储介质 | |
CN108345486A (zh) | 一种界面覆盖方法、设备及可读介质 | |
CN109725799B (zh) | 一种广告显示的控制方法、装置及智能终端 | |
AU2013206622B2 (en) | Download management method and device based on Android browser | |
CN110309000B (zh) | 应用更新提示方法及终端设备 | |
CN111443907A (zh) | 一种调用sdk功能的方法和装置 | |
CN106951241B (zh) | 设置应用程序的显示的方法及装置 | |
US20140283132A1 (en) | Computing application security and data settings overrides | |
CN112395028A (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: 20181206 Address after: 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, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |