防止系统环境变量修改的方法、装置及电子设备的制造方法

文档序号:10655913阅读:161来源:国知局
防止系统环境变量修改的方法、装置及电子设备的制造方法
【专利摘要】本发明的实施例公开一种防止系统环境变量修改的方法、装置及电子设备,涉及安全防护技术领域,能够有效防止系统环境的破坏。所述防止系统环境变量修改的方法,包括:对操作系统的设置系统环境变量函数的调用进行监视;根据对设置系统环境变量函数的监视,获取待修改的系统环境变量,若所述待修改的系统环境变量是要保护的系统环境变量,则判断获取此次修改所述待修改的系统环境变量的进程是否是目标应用程序的进程,若是,则拒绝对所述系统环境变量的修改。所述装置和电子设备中包括实现上述方法步骤的模块。本发明适用于对操作系统环境的保护。
【专利说明】
防止系统环境变量修改的方法、装置及电子设备
技术领域
[0001]本发明涉及系统安全防护技术领域,尤其涉及一种防止系统环境变量修改的方法、装置及电子设备。
【背景技术】
[0002]环境变量(EnvironmentVariables) —般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
[0003]环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的Path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到Path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
[0004]环境变量分为两类:用户环境变量与系统环境变量,在注册表中都有对应的项。在Windows操作系统中可以通过我的电脑-> 系统属性-> 高级系统设置-> 环境变量,来手动设置系统环境变量。
[0005]Windows操作系统提供了 SetEnvironmentVariable函数,用于修改系统环境变量。目前,有些恶意应用程序常通过调用SetEnvironmentVariable函数的方法来修改系统环境变量,从而破坏系统环境。

【发明内容】

[0006]有鉴于此,本发明实施例提供一种防止系统环境变量修改的方法、装置及电子设备,能够有效防止系统环境的破坏。
[0007]第一方面,本发明实施例提供一种防止系统环境变量修改的方法,包括:对操作系统的设置系统环境变量函数的调用进行监视;根据所述监视,获取待修改的系统环境变量;判断所述待修改的系统环境变量是否是要保护的系统环境变量;若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息;根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程;若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。
[0008]结合第一方面,在第一方面的第一种可实施方式中,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0009]结合第一方面的第一种可实施方式,在第一方面的第二种可实施方式中,所述操作系统为Windows操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable函数;其中,所述对操作系统应用层的设置系统环境变量函数的调用进行监视包括:通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0010]结合第一方面,在第一方面的第三种可实施方式中,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统内核层的设置系统环境变量函数的调用进行监视。
[0011]结合第一方面的第三种可实施方式,在第一方面的第四种可实施方式中,所述操作系统为Windows操作系统;所述操作系统内核层的设置系统环境变量函数为NtSetSystemEnvironmentValue函数;其中,所述对操作系统内核层的设置系统环境变量函数的调用进行监视,包括:通过安全防护类应用程序的防御驱动程序中预先设置的钩子函数,对操作系统内核层的NtSetSystemEnvironmentValue函数的调用进行监视。
[0012]结合第一方面至第一方面的第四种可实施方式中的任一种可实施方式,在第一方面的第五种可实施方式中,所述根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程,包括:根据所述进程的标识信息,判断所述进程的标识信息与特征库中保存的标识信息是否匹配,若所述进程的标识信息与特征库中保存的至少一个标识信息相匹配,则确定所述进程是目标应用程序的进程;其中,所述特征库中保存有目标应用程序的进程的标识信息。
[0013]第二方面,本发明实施例提供一种防止系统环境变量修改的装置,包括:监视模块,用于对操作系统的设置系统环境变量函数的调用进行监视;第一获取模块,用于根据所述监视,获取待修改的系统环境变量;第一判断模块,用于判断所述待修改的系统环境变量是否是要保护的系统环境变量;第二获取模块,用于若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息;第二判断模块,用于根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程;拒绝修改模块,用于若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。
[0014]结合第二方面,在第二方面的第一种可实施方式中,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0015]结合第二方面的第一种可实施方式,在第二方面的第二种可实施方式中,所述操作系统为Windows操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable函数;其中,所述对操作系统应用层的设置系统环境变量函数的调用进行监视包括:通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0016]结合第二方面,在第二方面的第三种可实施方式中,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统内核层的设置系统环境变量函数的调用进行监视。
[0017]结合第二方面的第三种可实施方式,在第二方面的第四种可实施方式中,所述操作系统为Windows操作系统;所述操作系统内核层的设置系统环境变量函数为NtSetSystemEnvironmentValue函数;其中,所述对操作系统内核层的设置系统环境变量函数的调用进行监视,包括:通过安全防护类应用程序的防御驱动程序中预先设置的钩子函数,对操作系统内核层的NtSetSystemEnvironmentValue函数的调用进行监视。
[0018]结合第二方面至第二方面的第四种可实施方式,在第二方面的第五种可实施方式中,所述根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程,包括:根据所述进程的标识信息,判断所述进程的标识信息与特征库中保存的标识信息是否匹配,若所述进程的标识信息与特征库中保存的至少一个标识信息相匹配,则确定所述进程是目标应用程序的进程;其中,所述特征库中保存有目标应用程序的进程的标识信息。
[0019]第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一可实施方式所述的防止系统环境变量修改的方法。
[0020]本发明实施例提供的防止系统环境变量修改的方法、装置及电子设备,通过对操作系统的设置系统环境变量函数的调用进行监视,当有应用程序的进程调用所述设置系统环境变量函数时,根据所述监视,获取待修改的系统环境变量,判断所述待修改的系统环境变量是否是要保护的系统环境变量,若所述待修改的系统环境变量是要保护的系统环境变量,则进一步获取此次修改所述待修改的系统环境变量的进程的标识信息,根据所述进程的标识信息,判断所述进程是否是目标应用程序如恶意应用程序的进程,若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改,由此能够有效防止系统环境的破坏。
【附图说明】
[0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0022]图1为本发明防止系统环境变量修改的方法实施例一的流程示意图;
[0023]图2为本发明防止系统环境变量修改的方法实施例二的流程示意图;
[0024]图3为本发明防止系统环境变量修改的方法实施例三的流程示意图;
[0025]图4为本发明防止系统环境变量修改的装置实施例一的结构示意图;
[0026]图5为本发明电子设备一个实施例的结构示意图。
【具体实施方式】
[0027]下面结合附图对本发明实施例进行详细描述。
[0028]应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明防护的范围。
[0029]图1为本发明防止系统环境变量修改的方法实施例一的流程示意图。参看图1,本发明防止系统环境变量修改的方法实施例,包括如下步骤:
[0030]SlOl、对操作系统的设置系统环境变量函数的调用进行监视。
[0031]操作系统提供了设置系统环境变量函数。应用程序的进程通过调用所述设置系统环境变量函数可修改系统环境变量。本实施例通过对所述设置系统环境变量函数进行监视,可及时截获对系统环境变量进行修改的消息。
[0032]S102、根据所述监视,获取待修改的系统环境变量。
[0033]应用程序的进程调用所述设置系统环境变量函数时,会向所述设置系统环境变量函数传递待修改的系统环境变量。本实施例中,可在所述待修改的系统环境变量到达所述设置系统环境变量函数之前,截获所述待修改的系统环境变量。
[0034]S103、判断所述待修改的系统环境变量是否是要保护的系统环境变量。
[0035]本实施例中,作为一可选的方式,可将要保护的系统环境变量比如%windir%、%TEMP%等系统环境变量写入白名单中。在所述白名单中进行匹配查询,若在所述白名单中匹配到与所述待修改的系统环境变量相同的环境变量,则可确定所述待修改的系统环境变量是要保护的系统环境变量,否则,则确定所述待修改的系统环境变量不是要保护的系统环境变量。
[0036]SI 04、若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息。
[0037]本实施例中,所述进程的标识信息,可以是所述进程的进程名或进程标识号:每个进程都有唯一的进程名或进程标识号。在识别一个进程时,进程名或进程标识号代表该进程。
[0038]S105、根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程。
[0039]本实施例中,作为一可选方式,可根据所述进程的标识信息,判断所述进程的标识信息与特征库中保存的标识信息是否匹配,若所述进程的标识信息与特征库中保存的至少一个标识信息相匹配,则确定所述进程是目标应用程序的进程;其中,所述特征库中保存有目标应用程序的进程的标识信息。
[0040]S106、若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。[0041 ]本实施例中,若所述进程是目标应用程序的进程,则返回拒绝消息,拒绝对所述系统环境变量的修改。
[0042]通过上面的步骤,目标应用程序对保护的系统环境变量的修改就会失败。
[0043]本发明实施例提供的防止系统环境变量修改的方法,通过对操作系统的设置系统环境变量函数的调用进行监视,当有应用程序的进程调用所述设置系统环境变量函数时,根据所述监视,获取待修改的系统环境变量,判断所述待修改的系统环境变量是否是要保护的系统环境变量,若所述待修改的系统环境变量是要保护的系统环境变量,则进一步获取此次修改所述待修改的系统环境变量的进程的标识信息,根据所述进程的标识信息,判断所述进程是否是目标应用程序如恶意应用程序的进程,若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改,由此能够有效防止系统环境的破坏。
[0044]图2为本发明防止系统环境变量修改的方法实施例二的流程示意图。本实施例适用于金山毒霸或金山卫士等安全防护类应用程序。参看图2,本发明防止系统环境变量修改的方法实施例,包括如下步骤:
[0045]S201、通过预先设置的钩子(Hook)函数对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0046]本实施例中,所述操作系统为Windows操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable函数。
[0047]在本步骤之前,可由编程人员在所述防御驱动中建立钩子函数。钩子函数实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子函数就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
[0048]本实施例中,将SetEnvironmentVariable函数的原始入口地址修改为本实施例中的钩子函数的入口地址。恶意应用程序的进程在调用SetEnvironmentVariable函数时,由于SetEnvironmentVariable函数的原始入口地址已被修改为本实施例的钩子函数的入口地址,通过对SetEnvironmentVariable函数的调用,即可跳至本实施例的钩子函数的执行,由此实现对Se tEnv ironmentVar iab I e函数的监视。
[0049]为了实现对 SetEnvironmentVariable 函数的回调,在将 SetEnvironmentVariable函数的原始入口地址修改为本实施例中的钩子函数的入口地址之前,需要对SetEnvironmentVariable函数的原始入口地址进行保存。
[0050]本实施例中,恶意应用程序的进程对SetEnvironmentVariable函数的调用,可通过windows操作系统对SetEnvironmentVariable函数的调用来实现。具体来讲,可以是恶意应用程序的进程向windows操作系统发出调用SetEnvironmentVariable函数的消息,windows操作系统根据该消息调用SetEnvironmentVariable函数。
[0051]S202、所述钩子函数根据所述监视,获取待修改的系统环境变量。
[0052]本实施例中,所述钩子函数根据所述监视获取待修改的系统环境变量的过程和上述方法实施例的步骤S102类似,此处不再赘述。
[0053]S203、所述钩子函数判断所述待修改的系统环境变量是否是要保护的系统环境变量。
[0054]本实施例中,所述钩子函数判断所述待修改的系统环境变量是否是要保护的系统环境变量的过程和上述方法实施例的步骤S103类似,此处不再赘述。
[0055]本实施例中,经过判断,若所述待修改的系统环境变量是要保护的系统环境变量,则执行步骤S204,否则执行步骤S207。
[0056]S204、所述钩子函数获取此次修改所述待修改的系统环境变量的进程的标识信息。
[0057]所述进程的标识信息,可以是所述进程的进程名或进程标识号:每个进程都有唯一的进程名或进程标识号。在识别一个进程时,进程名或进程标识号代表该进程。
[0058]S205、所述钩子函数根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程。
[0059]本实施例中,所述钩子函数根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程的过程和上述方法实施例的步骤S105类似,此处不再赘述。
[0060]本实施例中,经过判断,若所述进程是目标应用程序的进程,则执行步骤S206,否则执行步骤S207.[0061 ] S206、所述钩子函数拒绝对所述系统环境变量的修改。
[0062]本实施例中,若所述进程是目标应用程序的进程,所述钩子函数则返回拒绝消息,拒绝对所述系统环境变量的修改。
[0063]S207、调用操作系统应用层的原始SetEnvironmentVariable函数。
[0064]本实施例中,可通过调用操作系统应用层的原始SetEnvironmentVariable函数,对所述环境变量进行修改。
[0065]本发明实施例提供的防止系统环境变量修改的方法,通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视,能够防止目标应用程序如恶意应用程序对要保护的系统环境变量的修改,由此能够有效防止系统环境的破坏。
[0066]图3为本发明防止系统环境变量修改的方法实施例三的流程示意图。本实施例适用于金山毒霸或金山卫士等安全防护类应用程序。参看图3,本发明防止系统环境变量修改的方法实施例,包括如下步骤:
[0067]S301、通过预先设置的钩子(Hook)函数对操作系统内核层的设置系统环境变量函数的调用进行监视。
[0068]本实施例中,所述操作系统为Windows操作系统;所述操作系统内核层的设置系统环境变量函数为NtSetSystemEnvironmentValue函数。
[0069]在本步骤之前,可由编程人员在所述防御驱动中建立钩子函数。钩子函数实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子函数就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
[0070]本实施例中,所述钩子函数可设置在金山毒霸或金山卫士等安全防护类应用程序的防御驱动中。
[0071 ] 本实施例中,将NtSetSystemEnvironmentValue函数的原始入口地址修改为本实施例中的钩子函数的入口地址。恶意应用程序的进程在调用NtSetSystemEnvironmentValue函数时,由于NtSetSystemEnvironmentValue函数的原始入口地址已被修改为本实施例的钩子函数的入口地址,通过对NtSetSystemEnvironmentValue函数的调用,即可跳至本实施例的钩子函数的执行,由此实现对NtSetSy StemEnvironmentValue 函数的监视。
[0072]为了实现对NtSetSystemEnvironmentValue 函数的回调,在将NtSetSystemEnvironmentValue函数的原始入口地址修改为本实施例中的钩子函数的入口地址之前,需要对NtSetSystemEnvironmentValue函数的原始入口地址进行保存。
[0073]本实施例中,恶意应用程序的进程对NtSetSystemEnvironmentValue函数的调用,可通过windows操作系统对NtSetSystemEnvironmentValue函数的调用来实现。具体来讲,可以是恶意应用程序的进程向windows操作系统发出调用NtSetSys temEnvironmentValue函数的消息,windows操作系统根据该消息调用NtSetSystemEnvironmentValue函数。
[0074]S302、所述钩子函数根据所述监视,获取待修改的系统环境变量。
[0075]本实施例中,所述钩子函数根据所述监视获取待修改的系统环境变量的过程和上述方法实施例的步骤S102类似,此处不再赘述。
[0076]S303、所述钩子函数判断所述待修改的系统环境变量是否是要保护的系统环境变量。
[0077]本实施例中,所述钩子函数判断所述待修改的系统环境变量是否是要保护的系统环境变量的过程和上述方法实施例的步骤S103类似,此处不再赘述。
[0078]本实施例中,经过判断,若所述待修改的系统环境变量是要保护的系统环境变量,则执行步骤S304,否则执行步骤S307。
[0079]S304、所述钩子函数获取此次修改所述待修改的系统环境变量的进程的标识信息。
[0080]所述进程的标识信息,可以是所述进程的进程名或进程标识号:每个进程都有唯一的进程名或进程标识号。在识别一个进程时,进程名或进程标识号代表该进程。
[0081]S305、所述钩子函数根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程。
[0082]本实施例中,所述钩子函数根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程的过程和上述方法实施例的步骤S105类似,此处不再赘述。
[0083]本实施例中,经过判断,若所述进程是目标应用程序的进程,则执行步骤S306,否则执行步骤S307.
[0084]S306、所述钩子函数拒绝对所述系统环境变量的修改。
[0085]本实施例中,若所述进程是目标应用程序的进程,所述钩子函数则返回拒绝消息,拒绝对所述系统环境变量的修改,否则执行步骤S307。
[0086]S307、调用操作系统内核层的原始NtSetSystemEnvironmentValue函数。
[0087]本实施例中,可通过调用操作系统内核层的原始NtSetSystemEnvironmentValue函数,对所述环境变量进行修改。
[0088]本发明实施例提供的防止系统环境变量修改的方法,通过预先设置的钩子函数对操作系统内核层的设置系统环境变量函数的调用进行监视,能够防止目标应用程序如恶意应用程序通过内核的方式对要保护的系统环境变量的修改,由此能够有效防止系统环境的破坏。
[0089]下面采用一个具体的实施例,对图3所示方法实施例的技术方案进行详细说明。
[0090]在用户电脑环境中,存在一个恶意软件A。在金山毒霸的防御驱动中Hook了修改环境变量的NtSetSystemEnvironmentValue函数,当恶意软件A的进程通知其驱动程序调用NtSetSy StemEnvironmentValue函数修改系统环境变量时,防御驱动就会对此行为进行拦截,并返回拒绝,使得恶意软件修改系统环境变量失败,从而更好地保护用户系统环境不被破坏。
[0091]图4为本发明防止系统环境变量修改的装置实施例一的结构示意图。参看图4,本发明防止系统环境变量修改的装置实施例,包括:监视模块11、第一获取模块12、第一判断模块13、第二获取模块14、第二判断模块15和拒绝修改模块16;其中,
[0092]所述监视模块11,用于对操作系统的设置系统环境变量函数的调用进行监视。
[0093]所述第一获取模块12,用于根据所述监视,获取待修改的系统环境变量。
[0094]所述第一判断模块13,用于判断所述待修改的系统环境变量是否是要保护的系统环境变量。
[0095]所述第二获取模块14,用于若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息。
[0096]所述第二判断模块15,用于根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程。
[0097]所述拒绝修改模块16,用于若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。
[0098]作为一可选实施方式,所述第二判断模块15可根据所述进程的标识信息,判断所述进程的标识信息与特征库中保存的标识信息是否匹配,若所述进程的标识信息与特征库中保存的至少一个标识信息相匹配,则确定所述进程是目标应用程序的进程;其中,所述特征库中保存有目标应用程序的进程的标识信息。
[0099]本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0100]在前述防止系统环境变量修改的装置实施例中,作为一可选的方式,所述操作系统为Window s操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable函数;所述监视模块11,具体用于通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视。
[0101]进一步地,本实施例的装置,还可包括第一调用模块,用于在所述待修改的系统环境变量不是要保护的系统环境变量,或者修改所述待修改的系统环境变量的进程不是目标应用程序的进程时,调用操作系统应用层的原始SetEnvironmentVariable函数。
[0102]本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0103]在前述防止系统环境变量修改的装置实施例中,作为另一可选的方式,所述操作系统为Windows操作系统;所述操作系统内核层的设置系统环境变量函数为NtSetSystemEnvironmentValue函数;所述监视模块11,具体用于通过安全防护类应用程序的防御驱动程序中预先设置的钩子函数,对操作系统内核层的NtSetSy s temEnvironmentValue 函数的调用进行监视。
[0104]进一步地,本实施例的装置,还可包括第一调用模块,用于在所述待修改的系统环境变量不是要保护的系统环境变量,或者修改所述待修改的系统环境变量的进程不是目标应用程序的进程时,调用操作系统内核层的原始NtSetSystemEnvironmentValue函数。
[0105]本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0106]本发明实施例还提供一种电子设备。图5为本发明电子设备一个实施例的结构不意图,可以实现本发明图1、图2或图3所示实施例的流程,如图5所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的防止系统环境变量修改的方法。
[0107]该电子设备以多种形式存在,包括但不限于:
[0108](I)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
[0109](2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0110](3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0111](4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0112](5)其他具有数据交互功能的电子设备。
[0113]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0114]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0115]为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
[0116]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
[0117]以上所述,仅为本发明的【具体实施方式】,但本发明的防护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的防护范围之内。因此,本发明的防护范围应以权利要求的防护范围为准。
【主权项】
1.一种防止系统环境变量修改的方法,其特征在于,包括: 对操作系统的设置系统环境变量函数的调用进行监视; 根据所述监视,获取待修改的系统环境变量; 判断所述待修改的系统环境变量是否是要保护的系统环境变量; 若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息; 根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程; 若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。2.根据权利要求1所述的防止系统环境变量修改的方法,其特征在于,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括: 对操作系统应用层的设置系统环境变量函数的调用进行监视。3.根据权利要求2所述的防止系统环境变量修改的方法,其特征在于,所述操作系统为W i n d ο w s操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable 函数; 其中,所述对操作系统应用层的设置系统环境变量函数的调用进行监视包括:通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视。4.根据权利要求1所述的防止系统环境变量修改的方法,其特征在于,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统内核层的设置系统环境变量函数的调用进行监视。5.根据权利要求4所述的防止系统环境变量修改的方法,其特征在于,所述操作系统为W i n d ο w s操作系统;所述操作系统内核层的设置系统环境变量函数为NtSetSystemEnvironmentValue 函数; 其中,所述对操作系统内核层的设置系统环境变量函数的调用进行监视,包括:通过安全防护类应用程序的防御驱动程序中预先设置的钩子函数,对操作系统内核层的NtSetSy StemEnvironmentValue 函数的调用进行监视。6.根据权利要求1至5任一项所述的防止系统环境变量修改的方法,其特征在于,所述根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程,包括:根据所述进程的标识信息,判断所述进程的标识信息与特征库中保存的标识信息是否匹配,若所述进程的标识信息与特征库中保存的至少一个标识信息相匹配,则确定所述进程是目标应用程序的进程;其中,所述特征库中保存有目标应用程序的进程的标识信息。7.一种防止系统环境变量修改的装置,其特征在于,包括: 监视模块,用于对操作系统的设置系统环境变量函数的调用进行监视; 第一获取模块,用于根据所述监视,获取待修改的系统环境变量; 第一判断模块,用于判断所述待修改的系统环境变量是否是要保护的系统环境变量;第二获取模块,用于若所述待修改的系统环境变量是要保护的系统环境变量,则获取此次修改所述待修改的系统环境变量的进程的标识信息; 第二判断模块,用于根据所述进程的标识信息,判断所述进程是否是目标应用程序的进程; 拒绝修改模块,用于若所述进程是目标应用程序的进程,则拒绝对所述系统环境变量的修改。8.根据权利要求7所述的防止系统环境变量修改的装置,其特征在于,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统应用层的设置系统环境变量函数的调用进行监视。9.根据权利要求8所述的防止系统环境变量修改的装置,其特征在于,所述操作系统为W i n d ο w s操作系统;所述操作系统应用层的设置系统环境变量函数为SetEnvironmentVariable 函数; 其中,所述对操作系统应用层的设置系统环境变量函数的调用进行监视包括:通过预先设置的钩子函数对操作系统应用层的设置系统环境变量函数的调用进行监视。10.根据权利要求7所述的防止系统环境变量修改的装置,其特征在于,所述对操作系统中的设置系统环境变量函数的调用进行监视,包括:对操作系统内核层的设置系统环境变量函数的调用进行监视。
【文档编号】G06F21/55GK106022117SQ201610332855
【公开日】2016年10月12日
【申请日】2016年5月18日
【发明人】杨峰
【申请人】北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1