利用进程虚拟机反调试的方法、装置、系统及存储介质制造方法及图纸

技术编号:24572995 阅读:32 留言:0更新日期:2020-06-20 23:59
本发明专利技术实施例涉及一种利用进程虚拟机反调试的方法、装置、系统及存储介质,该方法包括:利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序;利用进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的虚拟编码程序进行调试。通过该方法,利用虚拟编码器将待保护程序编译至进程虚拟机中,并且在进程虚拟机中运行。保护进程直接对包含有待保护程序的虚拟编码程序整体进行调试。调试过程中可以防止攻击方调试待保护程序,因为一旦攻击方将虚拟编码程序“杀死”,则将导致程序运行停止,攻击方无法得逞。整个待保护程序运行过程都有保护程序的调试,让攻击方无懈可击,而且大大降低了开发成本。

Method, device, system and storage medium of reverse debugging with process virtual machine

【技术实现步骤摘要】
利用进程虚拟机反调试的方法、装置、系统及存储介质
本专利技术实施例涉及计算机
,尤其涉及一种利用进程虚拟机反调试的方法、装置、系统及存储介质。
技术介绍
现有技术中,反调试和反反调试一直都是开发人员比较头疼的事情。举例而言,攻击方会通过用ptrace()接口调试需要被保护地程序P以获得P运行时的敏感信息。而防守方则会利用同时只有一个进程启用ptrace()接口调试程序的特点,在程序P启动时就先启动一个进程A对自己进行调试,这样就可以让后来的攻击方无法使用ptrace()接口做调试。攻击方同样会采取其他措施,实现反调试。例如,找到进程A,将其“杀死”,然后攻击方进行调试P。防守方为了避免这种情况的发生,则进行升级。升级的方式有多种技术路线,其目的就是不让攻击方轻易的“杀死”进程A。典型的方案是:让进程A在调试P时,在某些关键逻辑改变P的行为。举一个例子,P在软件启动时,校验注册码SN。P中有函数:boolcheckSN(sn){ifsn==md5(sn){returntrue;}returnfalse;}让A在调试P时截获函数checkSN(),将形参sn的值修改为md5(sn),这样软件运行时,checkSN()函数就能正确返回true了。软件正常运行。如果有攻击者杀死了A,那么checkSN()中的if判断会不成立,返回false,软件不会继续往下运行。所以,攻击者不能“杀死”A。而由于A在调试P,攻击者也无法调试P。虽然,在上述过程中,攻方无法在checkSN()函数运行结束之前杀死A。但却可以等待checkSN()函数运行结束之后再“杀死”A。并在某个时刻获得调试P的能力。上述案例的攻防过程中,会发现防守方存在很大的弊端,例如进程A需要保持隔段时间就对P中的某些逻辑作出修改,才能保证A不被杀死。但是,随着程序规模的逐渐扩大,想在P的所有逻辑中加入和A的互动,毫无疑问,其困难度将是非常巨大的,对于安全防护人员的技术能力、专业度的要求都将会非常高,成本也会大大增加。
技术实现思路
鉴于此,为解决现有技术中反调试的措施存在随着程序规模的逐渐扩大,编写难度增加,对开发人员的技术能力、专业度等要求高,而且成本大大增加的技术问题,本专利技术实施例提供一种利用进程虚拟机反调试的方法、装置、系统及存储介质。第一方面,本专利技术实施例提供一种利用进程虚拟机反调试的方法,该方法包括:利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序;利用进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的虚拟编码程序进行调试。在一个可能的实施方式中,虚拟编码程序为存在预设定错误的编码程序,利用进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的虚拟编码程序进行调试,具体包括:利用保护进程对虚拟编码程序中的预设定错误进行修正。在一个可能的实施方式中,利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序之前,方法还包括:接收待运行的程序;识别待运行的程序的指令类型;当确定待运行的程序的指令类型为预设指令类型时,确定待运行的程序为待保护程序。在一个可能的实施方式中,当待运行的程序并非为待保护程序时,直接将待运行的程序输入至进程虚拟机进行运行。在一个可能的实施方式中,预建立的进程虚拟机中包括多条基本指令;利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,具体包括:利用预建立的虚拟编码器,将待保护程序与多条基本指令中的一条或多条相结合进行编译,获取虚拟编码程序。第二方面,本专利技术实施例提供一种利用进程虚拟机反调试的装置,该装置包括:编码单元,用于利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序;处理单元,用于利用进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的虚拟编码程序进行调试。在一个可能的实施方式中,虚拟编码程序为存在预设定错误的编码程序,处理单元具体用于,利用保护进程对虚拟编码程序中的预设定错误进行修正。在一个可能的实施方式中,装置还包括:接收单元;接收单元,用于接收待运行的程序;处理单元还用于,识别待运行的程序的指令类型;当确定待运行的程序的指令类型为预设指令类型时,确定待运行的程序为待保护程序。在一个可能的实施方式中,处理单元还用于,当确定待运行的程序并非为待保护程序时,直接将待运行的程序输入至进程虚拟机进行运行。在一个可能的实施方式中,预建立的进程虚拟机中包括多条基本指令;编码单元具体用于:利用预建立的虚拟编码器,将待保护程序与多条基本指令中的一条或多条相结合进行编译,获取虚拟编码程序。第三方面,本专利技术实施例提供一种利用进程虚拟机反调试的系统,该系统包括:至少一个处理器和存储器;处理器用于执行存储器中存储的利用进程虚拟机反调试的程序,以实现如第一方面任一实施方式所介绍的利用进程虚拟机反调试的方法。第四方面,本专利技术实施例提供一种计算机存储介质,该计算机存储介质存储有一个或者多个程序,一个或者多个程序可被如第三方面所介绍的利用进程虚拟机反调试的系统执行,以实现如第一方面任一实施方式所介绍的利用进程虚拟机反调试的方法。本专利技术实施例提供的一种利用进程虚拟机反调试的方法,将待保护的程序编译到进程虚拟机中,获取虚拟编码程序。然后利用进程虚拟机中包含的保护进程对进程虚拟机中的虚拟编码程序进行调试。通过该方法,并非如现有技术那样,只是对待保护程序进行调试,而是利用虚拟编码器将待保护程序编译至进程虚拟机中,并且在进程虚拟机中运行。而保护进程直接对虚拟编码程序整体进行调试。调试过程中可以防止攻击方调试待保护程序,因为一旦攻击方将虚拟编码程序“杀死”,则将导致程序运行停止,攻击方无法得逞。整个过程中都伴随着保护程序的调试,并不存在保护程序调整完成的间隙,这也让攻击方无懈可击。而且,通过该种方式,不需要保护进程隔段时间与待保护程序进行互动,减少互动环节,降低人力开发难度,对应开发人员的技术能力、专业度等要求不再增高,而技术成本也并未由此增加。附图说明图1为本专利技术实施例提供的一种利用进程虚拟机反调试的方法流程示意图;图2为本专利技术实施例提供的另一种利用进程虚拟机反调试的方法流程示意图;图3为本专利技术实施例提供的一种利用进程虚拟机反调试的装置结构示意图;图4为本专利技术实施例提供一种利用进程虚拟机反调试的系统结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发本文档来自技高网
...

【技术保护点】
1.一种利用进程虚拟机反调试的方法,其特征在于,所述方法包括:/n利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序;/n利用所述进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的所述虚拟编码程序进行调试。/n

【技术特征摘要】
1.一种利用进程虚拟机反调试的方法,其特征在于,所述方法包括:
利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序;
利用所述进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的所述虚拟编码程序进行调试。


2.根据权利要求1所述的方法,其特征在于,所述虚拟编码程序为存在预设定错误的编码程序,所述利用进程虚拟机中包含的保护进程对已经运行在进程虚拟机中的所述虚拟编码程序进行调试,具体包括:
利用所述保护进程对所述虚拟编码程序中的预设定错误进行修正。


3.根据权利要求1所述的方法,其特征在于,所述利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序之前,所述方法还包括:
接收待运行的程序;
识别所述待运行的程序的指令类型;
当确定所述待运行的程序的指令类型为预设指令类型时,确定所述待运行的程序为待保护程序。


4.根据权利要求3所述的方法,其特征在于,当所述待运行的程序并非为待保护程序时,直接将所述待运行的程序输入至所述进程虚拟机进行运行。


5.根据权利要求1-4任一项所述的方法,其特征在于,所述预建立的进程虚拟机中包括多条基本指令;所述利用预建立的虚拟编码器将待保护程序编译至预建立的进程虚拟机,获取虚拟编码程序,具体包括:
利用预建立的虚拟编码器,将所述待保护程序与所述多条基本指令中的一条或多条相...

【专利技术属性】
技术研发人员:陈钢
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1