[发明专利]一种进程保护的方法有效
申请号: | 201210074469.0 | 申请日: | 2012-03-20 |
公开(公告)号: | CN102768720B | 公开(公告)日: | 2019-02-22 |
发明(设计)人: | 徐圣钧 | 申请(专利权)人: | 新奥特(北京)视频技术有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京挺立专利事务所(普通合伙) 11265 | 代理人: | 叶树明 |
地址: | 100195 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 保护 方法 | ||
本发明实施例公开了一种进程保护的方法,通过预先保存需保存进程的具有结束进程权限的句柄;接收外部传入的执行句柄;判断所述外部传入的执行句柄与所述需保存进程的具有结束进程权限的句柄是否相同;若是,发送结束响应请求到所述需保存进程;接收所述需保存进程返回的结束响应;根据所述结束响应执行结束操作,结束所述需保存的进程,使需要保护的进程,不会在没有保存完成前就被结束掉,达到了有效保护进程,保障信息安全的效果。
技术领域
本发明应用于各种应用软件的自我保护,涉及信息安全防护领域,尤其涉及一种进程保护的方法。
背景技术
随着半导体技术的不断发展,计算机的处理能力也日益增强。但出于各种原因,仍然会有死机、个别软件未响应等情况出现,这种时候,一般用户会通过任务管理器中的进程选项来主动终结某个进程。
一般来说,无论采用什么方式,想要终结某个进程,都需要调用Windows提供的两个函数,分别是:打开进程函数OpenProcess和终结进程函数TerminateProcess。
结束进程的步骤一般是:
首先需要通过某种途径得知需要结束的进程的标识号ID,当一个进程启动时,进程的ID号就被确定下来,并是唯一的。
第二步就是调用OpenProcess,通过已得知的进程ID号,来得到一个可以用来实施具有某种权限的操作的句柄HANDLE。
例如得知需要被杀死的进程的ID是1155,则执行以下程序语句:
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,0,1155);
1155就是需要结束的进程的ID号,
PROCESS_TERMINATE表示的就是某种“操作权限标记”,具体来讲就是可以结束该进程的权限
hProcess就是返回的HANDLE,返回了这个HANDLE,就可以使用这个HANDLE来对这个进程实施需要“结束进程权限”的操作,当然需要这种权限的操作也只有一个,就是结束进程。
需要指出的是,此时返回的HANDLE只是一个临时的量,并不具有长久性和唯一性。
第三步,通过上述HANDLE来实施结束进程操作,只需调用TerminateProcess函数即可,如:
TerminateProcess(hProcess,0);
经过这三步之后,进程就会被结束掉。
然而,某些软件并不愿意被结束,于是,现有技术便提供了一种结束进程的方法,希望用户不会通过以上提到的方式将需要保护的进程结束掉,具体为:采用钩子hook技术,使用自己编写的“假OpenProcess”函数代码替换掉Windows系统原本提供的OpenProcess函数。
在“假OpenProcess”函数中,软件作者首先判断传入的进程ID是否是需要保护的进程ID,并且判断需要的操作权限是否为PROCESS_TERMINATE,如果满足了这两个条件,根据上述终结进程的步骤就说明系统正试图终结需要保护的进程。
按上述终结进程的步骤,第三步在调用TerminateProcess时,需要一个正确的HANDLE才能杀死进程,所以,软件作者只需要在上一步返回一个错误的HANDLE出去,进而此时得到的HANDLE便是一个错误的,所以就无法成功的杀死需要保护的进程,因而达到了保护进程的目的。
但是,出于尊重用户主动性的原因,某种情况只是下希望进程在进行某种工作时(比如在保存工程文件时)不立刻被终结,而是等待工作结束一切处理妥当后,再继续实施终结进程的操作,这种情况下,现有技术便无法实现了。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新奥特(北京)视频技术有限公司,未经新奥特(北京)视频技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210074469.0/2.html,转载请声明来源钻瓜专利网。