[发明专利]自动创建独立进程的方法及其系统有效
申请号: | 201110179212.7 | 申请日: | 2011-06-29 |
公开(公告)号: | CN102855129A | 公开(公告)日: | 2013-01-02 |
发明(设计)人: | 张杰;金京 | 申请(专利权)人: | 奇智软件(北京)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许志勇 |
地址: | 100016 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自动 创建 独立 进程 方法 及其 系统 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种自动创建独立进程的方法及其系统。
背景技术
PE(Portable Executable,可移植的执行体)文件在Windows操作系统中可以认为是一个可执行程序。而对一个PE文件进行MD5(Message Digest Algorithm,消息摘要算法第五版)签名可以通过一个定长的字符串序列定义一个文件存在的唯一性。
在现代操作系统中(以Windows操作系统为例),当一个PE文件在系统中被运行后,就会拥有一个父进程和0个或多个子进程。这样一个关系在系统的进程管理中,表现为一个链状结构的进程链,即父进程->被运行进程->(0或者多个子进程)。
当一台计算机感染上木马或者病毒,其本质在计算机系统中就是一个进程(木马和病毒本身也是PE文件),而大部分的病毒的启动和执行过程,为了能够更好的掩饰病毒自身的存在,都会通过各种手段把自己隐藏起来。这样当一台系统中毒后,特别是感染木马这类传播性极强的小程序,在系统的进程中往往会出现如图1所示的进程链关系。
目前已有的杀毒软件或者是系统防护软件,在运行过程中,都会对系统正在运行的进程进行监控。其中一种最基本的判断系统已经中毒的方式就是抓取系统的进程链,当发现系统中的某个正常的程序在运行时出现了图1所示的进程链,就很可能已经中了木马,这时防火墙软件可以通过计算整个进程链中的各个进程PE的MD5,通过云端返回每个进程的等级进行判断。例如一个正常的notepad.exe(记事本进程)的等级被定义为2(安全的),一个木马进程被定义为7(不安全的),这样对整个进程链中所有进程等级进行加权得到notepad.exe的进程等级为7(取整个进程链中等级最大值),即可判断某个正在运行的程序已经感染上病毒。
在Windows的软件自动测试中,需要自动测试木马防火墙对于常规软件安装卸载拦截行为的正确性,这样自动化测试程序就需要在程序中启动第三方的程序来执行各类常规软件的安装卸载工作,例如在系统预装了木马防火墙的环境下,自动安装&卸载Office2007这样的办公软件。由于第三方程序是自动化测试程序去启动的,一般情况下会选择2种方式:
1.在命令行窗口执行安装Office2007的命令行。
2.在程序中通过微软提供的API创建新的进程。
这样就会遇到一个问题,自动化程序启动的新的进程,当执行了安装包程序后,在系统的进程链中会看到如图2所示的进程链关系。
这时,木马防火墙就会计算Office2007安装程序的进程等级,一般地一个Office2007安装程序的进程等级被定义为2,而由于在整个进程链中出现了自动化测试程序(等级为3)以及CMD(Windows Command Prompt,命令提示符窗口)进程(等级为4),这样防火墙得到的Office2007的安装程序的进程等级被调整为4,从而在自动化安装Office2007时会遇到木马防火墙拦截Office2007安装包的情况(正常情况下不应该拦截)。
对于上述情况,自动化测试程序需要创建一种完全模拟用户行为的进程链关系,如图3所示。从而解决上述所说的在自动化测试中由于自动化测试程序创建新进程导致的木马防火墙误报情况,即一种完全模拟用户行为的方式。
微软公司提供了几种创建新进程的方法:
1.CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。
2.WinExec只能用于创建兼容16位系统进程、创建应用程序应该使用CreateProcess。
3.ShellExecute功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。
4.System。用于执行一个命令行,等同于CMD下的命令行。
5.WMI(Windows Management Instrumentation,Windows管理规范)的方式启动Win32_Process的对象中有一个Create方法,可以用以通过WMI服务的形式创建新进程。
上述微软提供的几种API,都只能用于创建子进程即新创建的进程是创建者的子进程。
1.WinExec、ShellExecute其本质也是执行CreateProcess,这里以CreateProcess为例,当执行程序创建一个新的进程时,出现如图4A所示的进程链关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇智软件(北京)有限公司,未经奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110179212.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种活性氧化铜生产工艺
- 下一篇:照明控制方法及系统