发明名称 |
软件保护装置与计算机配合执行CPU指令的方法 |
摘要 |
本发明使软件保护装置可以模拟计算机CPU的指令提取、解码、执行和I/O并且可以跟计算机进行运行状态的交互。当计算机把当前的运行状态发送到软件保护装置时,由软件保护装置运行计算机CPU指令;当软件保护装置把运行状态传回计算机时,由计算机继续运行,通过这样的循环实现计算机与软件保护装置交互执行计算机的CPU指令,并且这种方法适用于任意架构的CPU。 |
申请公布号 |
CN102760072A |
申请公布日期 |
2012.10.31 |
申请号 |
CN201210145813.0 |
申请日期 |
2012.05.12 |
申请人 |
北京深思洛克软件技术股份有限公司 |
发明人 |
不公告发明人 |
分类号 |
G06F9/455(2006.01)I;G06F12/08(2006.01)I |
主分类号 |
G06F9/455(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
一种软件保护装置与计算机配合执行CPU指令的方法,所述软件保护装置中具有模拟寄存器,用于模拟与所述软件保护装置配合工作的计算机中寄存器的状态,其特征在于,所述软件保护装置还具有:I/O单元,用于在所述软件保护装置中模拟所述计算机对所述计算机中内存的读写,以及在所述计算机与所述软件保护装置交换计算机运行状态时,与所述计算机交互所有的状态数据;指令解析单元,用于解析所述软件保护装置当前正在模拟执行的CPU指令;控制单元,用于判断所述当前正在模拟执行的CPU指令是否能在所述软件保护装置内执行;指令执行单元,用于模拟所述当前正在模拟执行的CPU指令的功能,改变所述软件保护装置中所述模拟寄存器的内容;所述计算机中包括:配合单元,用于与所述软件保护装置中的I/O模块通信,控制所述计算机中的寄存器、内存或端口以执行所述CPU指令;并且所述配合单元与所述软件保护装置中的所述I/O单元配合工作,实现所述软件保护装置与所述计算机之间的运行状态的交互;所述方法包括:步骤1:所述计算机把计算机中当前寄存器数据发送到所述软件保护装置;步骤2:所述软件保护装置使用所述计算机发送过来的所述寄存器数据初始化所述软件保护装置中的各个对应的模拟寄存器;步骤3:所述软件保护装置获取指令;步骤4:所述指令解析单元解析所述指令;步骤5:所述控制模块根据解析结果判断是否结束所述指令;如果结束,则所述计算机继续执行后续指令;步骤6:如果不结束,则所述控制模块继续判断所述指令是否能被所述指令执行单元执行;如果无法执行,则在所述计算机中执行所述指令;如果能够被所述指令执行单元执行,则由所述指令执行单元执行。 |
地址 |
100022 北京市海淀区中关村南大街甲8号铸诚大厦1201 |