[发明专利]软件保护装置与计算机配合执行CPU指令的方法有效
申请号: | 201210145813.0 | 申请日: | 2012-05-12 |
公开(公告)号: | CN102760072A | 公开(公告)日: | 2012-10-31 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 北京深思洛克软件技术股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F12/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100022 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 保护装置 计算机 配合 执行 cpu 指令 方法 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种计算机和软件保护装置配合执行计算机CPU指令的方法。
背景技术
在使用可移植代码的软件保护装置对软件进行保护时,由于软件保护装置中的CPU和计算机CPU的体系结构的差异,被保护软件中待移植的代码段并不能直接移植到软件保护装置中运行,通常的做法是按照被移植代码段的逻辑重新编写一段代码,然后将其编译成软件保护装置中能够运行的程序并下载到软件保护装置内,而且还要将原软件中被移植的代码段删除,换成访问软件保护装置的代码。这一系列操作非常耗时,而且还要求有一定的技术能力。如果在软件保护装置内设置一系列模块来模拟计算机CPU指令的提取、解析、执行以及I/O操作,这样的一个软件保护装置就相当于另一个计算机CPU,可以直接运行为计算机CPU编译的软件中的指令。当需要将软件中被保护的代码段移植到这样的软件保护装置中时,可以直接将被保护的代码拷贝到软件保护装置中即可,这样比现有的保护方式更为方便、快捷,而且这一列操作完全可以由软件自动由完成,对操作人员的技术要求会大大降低。
发明内容
本发明涉及一种软件保护装置与计算机配合执行CPU指令的方法,所述软件保护装置中维护有模拟寄存器,其用于模拟计算机中寄存器的状态,所述软件保护装置还具有:
I/O单元,用于在所述软件保护装置中模拟所述计算机对所述计算机中内存的读写,以及在所述计算机与所述软件保护装置交换计算机运行状态时,与所述计算机交互所有的状态数据;
指令解析单元,用于解析所述软件保护装置当前正在模拟执行的CPU指令;
控制单元,用于判断所述当前正在模拟执行的CPU指令是否能在所述软件保护装置内执行;
指令执行单元,用于模拟所述当前正在模拟执行的CPU指令的功能,改变所述软件保护装置中所述模拟寄存器的内容;
所述计算机中包括:
配合单元,用于与所述软件保护装置中的I/O模块通信,控制所述计算机中的寄存器、内存或端口以执行所述CPU指令;
所述方法包括:
步骤1:所述计算机把计算机中当前寄存器数据发送到所述软件保护装置;
步骤2:所述软件保护装置使用所述计算机发送过来的所述寄存器数据初始化所述软件保护装置中的各个对应的模拟寄存器;
步骤3:所述软件保护装置获取指令;
步骤4:所述指令解析单元解析所述指令;
步骤5:所述控制模块根据解析结果判断是否结束所述指令;如果结束,则所述计算机继续执行后续指令;
步骤6:如果不结束,则所述控制模块继续判断所述指令是否能被所述指令执行单元执行;如果无法执行,则在所述计算机中执行所述指令;如果能够被所述指令执行单元执行,则由所述指令执行单元执行。
根据本发明的一个方面,在步骤5中,如果结束指令,则发送所述软件保护装置内各模拟寄存器的数据到所述计算机,所述配合单元接受所述各模拟寄存器的数据并设置所述计算机中对应的各个寄存器,然后由所述计算机继续向下执行。
根据本发明的一个方面,在步骤6中,如果所述指令无法被所述指令执行模块执行,则所述控制模块通过所述I/O模块把所述软件保护装置的各模拟寄存器的数据发送到所述计算机,再由所述计算机中的配合单元配合接受这些数据并设置所述计算机中对应的各个寄存器,然后在所述计算机中执行所述指令。
根据本发明的一个方面,所述无法执行的指令包括中断指令或异常指令。
附图说明
图1是本发明应用于x86架构的CPU时所涉及到的各模块示意图。
图2是本发明应用于x86架构的CPU时软件保护装置执行计算机指令时的流程图。
具体实施方式
图1是本发明所涉及到的软件保护装置和计算机中各模块的示意图。图1中软件保护装置中的箭头方向表示软件保护装置中执行计算机指令时经过各个模块的流程,计算机中的箭头方向表示计算机中的软件模块(也可称为配合单元)读写计算机的寄存器、内存或端口。
首先,在软件保护装置中具有模拟寄存器(图1中以“寄存器”表示),用于模拟计算机中寄存器,对应地模拟出计算机的CPU中各个寄存器的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思洛克软件技术股份有限公司,未经北京深思洛克软件技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210145813.0/2.html,转载请声明来源钻瓜专利网。