【弁言小序】
评价发明的创造性,关键在于把握突出的实质性特点的判断方法和显著的进步的判断标准,而“三步法”是判断发明是否具有突出的实质性特点的主要方法,其内涵在于从本领域技术人员的视角出发,在现有技术的基础上重构发明,即对最接近的现有技术进行整体考量,从技术问题、技术特征以及技术效果三方面与权利要求的技术方案进行比对,从而确定权利要求的技术方案和最接近现有技术的发明构思之间是否存在本质差异。
【理念阐述】
在使用“三步法”判断过程中,应当站在本领域技术人员的角度客观地看待发明,不能将发明的技术方案割裂开分别进行比对,而应整体把握发明构思,从发明的背景技术出发,在发明所要解决的技术问题、所采用的技术手段以及所取得的技术效果的基础上,将发明与现有技术的技术方案进行整体比较,从而确定发明和最接近现有技术的发明构思之间是否存在本质差异。若发明的权利要求的技术方案在整体上体现了其发明构思,而现有技术并未就其整体给出相应的技术启示,则该发明的权利要求具备创造性。
【案例演绎】
在本文中,笔者以一件专利复审请求案为例,探讨如何整体考虑现有技术。
第1F137077号复审请求审查决定涉及申请号为200710162450.0的一件发明专利申请,其名称为“一种防止远程线程启动的方法”。在其背景技术中,介绍了针对病毒利用远程线程的问题,现有的一些安全软件通过Windows NT提供的PsSetCreateThreadNotifyRoutine线程创建通知例程来实现对线程的监控,通过该通知例程来实现监控有以下几点不足:一是可注册的通知例程数量最多为8个,因此这种方法监控线程的能力有限;二是当得到该通知例程的通知时,线程已经创建成功,所以这种方法不能拒绝创建线程,只能通过修改线程代码来退出该线程。因此,该申请提供一种不受线程通知例程数量限制,并且能有效地监控并阻止恶意程序创建远程线程的技术。该案权利要求1的技术方案为:一种防止远程线程启动的方法,包括以下步骤:通过创建与用于创建线程的函数相关联的钩子来监视用于创建线程的请求;当监视到用于创建线程的请求时,通过判断所述函数所指定的用于创建所述要创建的线程的目标进程与当前发起者进程是否一致,判断要创建的线程是本地线程还是远程线程;如果要创建的线程是远程线程,则阻止创建该线程。
对比文件1公开了一种用于防止非法程序窃取用户信息的方法,并具体公开了以下内容:提供一种用于防止非法程序窃取用户秘密信息的方法,包括拦截一个可能被非法程序利用以窃取用户信息的系统调用;根据该系统调用的参数和/或调用所述系统调用的进程属性,判断运行所述系统调用是否安全;若判断不安全,则执行相应的处理使得所述系统调用失效。木马程序还可以通过启动远程线程来实现。此时需要调用写进程空间函数--WritePricessMemory来对目标进程写入部分代码,然后再调用创建远程函数--CreatRemoteThread。这里,无论是读进程空间,还是写进程空间,木马程序都需要首先调用打开进程函数--OpenProcess打开目标进程。由此,针对这种木马程序,拦截OpenProcess是可靠的。本发明提出的做法是拦截OpenProcess的调用。由于以上两个读写进程的调用的第一个参数都是进程的句柄,也就是OpenProcess的返回值,因而只要修改调用OpenProcess时的属性位就可以实现阻止调用的目的。换言之,对于被认为可疑的打开操作,只需屏蔽掉PROCESS_VM_WRITE(进程写)、PROCESS_VM_READ(进程读)、PROCESS_VM_OPERATION(进程操作)3个属性位,打开者就不能进行进程读写操作了。既然不能继续读写操作,修改指令、创建远程线程也就不能实现。当进入本发明的处理函数后,首先判断调用OpenProcess的当前进程是否是可信的进程(步骤S310),若判断为是,则放行,否则,继续判断OpenProcess所要打开的目标进程是否是受保护的(步骤S320)。如果判断为未保护的进程则放行,否则屏蔽打开参数的以下掩位码:PROCESS_VM_WRITE、PROCESS_VM_READ、PROCESS_VM_OPERATION(步骤S330)。最后跳回原来的处理函数(步骤S340)。对于拦截进程的创建、结束,我们采取了在驱动拦截的方法,主要是回避上层拦截CreateProcess后对参数的处理。
驳回决定认为,权利要求1请求保护的技术方案与对比文件1公开的技术方案的区别在于两点,一是监视的对象为:用于创建线程的请求;通过创建与用于创建线程的函数相关联的钩子来监视用于创建线程的请求。二是判断的依据为:判断所述函数所指定的用于创建所述要创建的线程的目标进程与当前发起者进程是否一致,判断要创建的线程是本地线程还是远程线程。基于此,该权利要求实际解决的技术问题是:如何确定创建远程线程的操作。虽然在对比文件1中给出的具体实施例中,拦截的启动远程线程的系统调用为OpenProcess,但是对比文件1中还公开了启动远程线程必然调用的系统调用,如写进程空间函数WriteProcessMemory、创建远程线程函数CreatRemoteThread。在此基础上,本领域技术人员将具体实施例中给出的方法用于监视拦截创建远程线程函数CreatRemoteThread是显而易见的,这属于本领域常用的技术手段;通过创建钩子来监视拦截系统调用、系统请求、函数调用等,均是本领域常用的技术手段。线程通常有本地线程和远程线程,其区别在于创建线程的进程与发起者进程是否一致,通过对该特征进行判断来识别远程线程是本领域常用的技术手段;通过判断要创建的线程是本地线程还是远程线程来确保阻止的是远程线程是显而易见的,这属于本领域常用的技术手段。因此,本领域技术人员在对比文件1的基础上结合本领域常用的技术手段以获取该权利要求请求保护的技术方案是显而易见的,该权利要求不具备突出的实质性特点和显著的进步。
复审决定认为,本申请权利要求1与对比文件1相比,两者的区别在于:一是监视的对象不同,本申请权利要求1监视的对象是创建线程的请求,而对比文件1监视的对象是系统调用,具体的涉及OpenProcess的系统调用,并且明确指出对系统调用进行监视,目的是为了回避对CreateProcess进行监视,即回避对创建线程的请求进行监视;二是判断的标准不同,本申请是当监视到用于创建线程的请求时,通过判断所述函数所指定的用于创建所述要创建的线程的目标进程与当前发起者进程是否一致,判断要创建的线程是本地线程还是远程线程;而对比文件1是根据系统调用的参数和/或调用所述系统调用的进程属性,来判断运行所述系统调用是否安全,具体的安全判断过程通过查表等方式确定进程是否是被信任或受保护的,即对比文件1对安全性的判断并不涉及对本地线程还是远程线程的判断;三是处理结果不同,本申请是阻止远程线程的创建;对比文件1是使不安全的系统调用失效。基于上述区别技术特征,本申请实际解决的技术问题是如何阻止创建远程线程的操作。
综上,虽然对比文件1也公开了监视、判断、阻止等步骤,但并没有公开权利要求1中所限定的具体的监视步骤、判断步骤、阻止步骤,两者在监视的对象、判断的标准以及处理结果三方面都不相同,同时权利要求1中所限定的具体的监视步骤、判断步骤、阻止步骤也不属于本领域常用的技术手段,并且上述区别使得本申请权利要求1能够实现阻止远程线程的创建的有益技术效果,因此,本申请权利要求1相对于对比文件1和常用技术手段具备创造性。
由该案可以看出,在使用“三步法”进行创造性判断时,应从本领域技术人员的视角出发,整体考虑本申请的发明构思。首先从解决的技术问题来看,本申请权利要求1解决的技术问题是阻止远程线程的创建;而对比文件1解决的技术问题是使不安全的系统调用失效;其次采用的技术手段而言,虽然本申请权利要求1和对比文件1都包括监视、判断、阻止等步骤,但权利要求1中限定的监视、判断、阻止等步骤的实现手段与对比文件1不同,此时在进行特征对比时,不能将各个技术特征割裂开来,进行简单、孤立的特征对比,认为权利要求1中所限定的具体的监视步骤、判断步骤、阻止步骤属于本领域常用的技术手段,应当从整体上把握发明的构思,整体上考虑权利要求1中所限定的具体的监视步骤、判断步骤、阻止步骤所解决的问题,所采用的技术手段以及带来的技术效果;再次从技术效果来看,本申请权利要求1实现了阻止创建远程线程的操作,而对比文件1使不安全的系统调用失效。可见,该案权利要求1与对比文件1解决的技术问题不同,采用的技术手段以及所取得的技术效果均不同,则可确定两者的发明构思存在本质差异。也就是说,本申请的权利要求1的技术方案在整体上体现了其发明构思,而对比文件1并未就其整体给出相应的技术启示,不能作为最接近的现有技术来破坏要求保护的技术方案的创造性。(文章来源:中国知识产权报 作者单位:国家知识产权局专利复审委员会 林甦)
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。