CN100454256C - 一种提高自定义程序运行速度的方法和装置 - Google Patents
一种提高自定义程序运行速度的方法和装置 Download PDFInfo
- Publication number
- CN100454256C CN100454256C CNB2006101696082A CN200610169608A CN100454256C CN 100454256 C CN100454256 C CN 100454256C CN B2006101696082 A CNB2006101696082 A CN B2006101696082A CN 200610169608 A CN200610169608 A CN 200610169608A CN 100454256 C CN100454256 C CN 100454256C
- Authority
- CN
- China
- Prior art keywords
- self
- defining programm
- information safety
- self defining
- program operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种提高自定义程序运行速度的方法和装置,属于计算机应用领域。为了解决现有技术中用户自定义程序执行速度慢及浪费硬件资源的问题,本发明提供了一种提高自定义程序运行速度的方法,所述方法包括将自定义程序编译成信息安全设备能执行的程序,将编译后的自定义程序下载到信息安全设备中,当信息安全设备收到运行自定义程序命令后,运行自定义程序,然后返回运行结果。本发明还提供了一种提高自定义程序运行速度的装置,所述装置包括目标代码编译模块和信息安全设备。采用本发明所述方案简化了自定义程序的运行过程,加快了自定义程序的运行速度。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种提高自定义程序运行速度的方法和装置。
背景技术
MMU(Memory Management Unit,存储器管理单元)具有强大的管理功能,同时能有效地利用存储空间。因为MMU可提供物理地址空间的制造商保护、物理地址空间的操作系统保护以及虚拟地址空间的操作系统保护,所以用户本地执行的代码能得到有效地保护,也能防止用户的恶意代码对COS(Card Operating System,卡片操作系统)的攻击,同时还能对用户自定义程序进行监控,控制用户自定义程序的权限。
COS从本质上说是智能卡芯片内的一个监控软件,用于接收和处理外界发给智能卡的各种信息,管理卡内的存储器,并给出相应的应答信息。在现有技术中,COS一般为软件开发商编写的可被信息安全设备所识别并执行的程序。
信息安全设备是一种带有处理器和存储器的装置,内置智能卡芯片,保证内部数据不会被非法获取,同时具有可编程运算功能。主要用于信息传输、信息的安全存储以及对网络传输信息内容的审计和身份认证等领域,具有抗攻击、安全性高的特性。现有信息安全设备内部通常采用COS来管理,USB Key是一种USB接口的信息安全设备,它内置单片机或智能卡芯片,可以存储用户的密钥或数字证书等。
WDT(Watch Dog Timer,看门狗定时器)是为防止程序进入死循环而设计的电路,在看门狗定时器电路中有一个输入及一个输出到微控制器单元MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到输入端,给WDT清零,如果超过规定的时间不给WDT清零,一般在程序跑飞时,WDT超过定时时长,就会给出一个复位信号到MCU,使MCU复位,防止程序进入死循环。其工作原理是:在系统运行后,启动看门狗定时器的计数器,看门狗就开始自动计数,如果到了一定的时间还没有进行清看门狗,那么看门狗计数器就会溢出,从而引起看门狗中断,造成系统复位,所以在使用有看门狗的芯片时要注意清看门狗。
随着信息化产品的飞速发展,越来越多的信息安全设备为用户提供了丰富的系统调用函数和自定义程序功能,用户可以编写自己的程序来加强信息安全设备的安全性,灵活地在自己熟悉的开发环境下,使用不同的语言随心编写程序。例如,用户可以用某种开发工具将算法编译生成一个可执行程序,然后将该文件下到芯片中。需要的时候便可调用该可执行程序完成相应的功能。但现有技术中,用户的可执行程序不是由芯片直接运行,而是由虚拟机来解释执行。即COS将可执行文件的内容读入,由虚拟机解释执行用户自定义程序的每一条指令,由于中间经历了一个翻译的过程,使得执行速度比较慢,造成了硬件的资源浪费。
发明内容
本发明为了解决现有技术中用户自定义程序执行速度慢及浪费硬件资源的问题,提供了一种提高自定义程序运行速度的方法和装置。所述技术方案如下:
一种提高自定义程序运行速度的方法,所述方法包括以下步骤:
步骤A:编译器将自定义程序编译成信息安全设备能直接执行的程序;
步骤B:将所述编译后的自定义程序下载到所述信息安全设备中;
步骤C:当所述信息安全设备收到运行所述自定义程序命令后,COS把控制权转交给所述自定义程序,自定义程序运行结束时返回运行结果,并将控制权重新交给COS,所述自定义程序在运行的过程中COS呈挂起状态。
所述步骤B中的自定义程序下载到由卡片操作系统指定地址的存储单元中。
所述步骤B还包括:卡片操作系统设置看门狗定时器,相应地,步骤C还包括:
执行所述自定义程序时,卡片操作系统对所述看门狗定时器清零,所述看门狗定时器进行监控,如果所述自定义程序运行时间超过定时时长,所述看门狗定时器产生中断,停止执行所述自定义程序;否则,当所述自定义程序运行结束后,所述卡片操作系统对看门狗定时器再次清零。
所述步骤C还包括:
控制所述自定义程序的访问权限。
所述信息安全设备为USB Key。
所述步骤A还包括:
对编译后的自定义程序进行加密,相应地,所述步骤B还包括,对所述自定义程序进行解密。
所述步骤A还包括:
对编译后的自定义程序加校验码,相应地,所述步骤B还包括,对所述自定义程序进行校验,检验所述校验码是否正确。
本发明同时提供了一种提高自定义程序运行速度的装置,所述装置包括:
目标代码编译模块,用于将自定义程序编译为可被信息安全设备执行的程序,以及将编译后的程序下载到所述信息安全设备;
信息安全设备,用于存储编译后的自定义程序,当收到运行所述自定义程序命令后,COS把控制权转交给所述自定义程序,自定义程序运行结束时返回运行结果,并将控制权重新交给COS,所述自定义程序在运行的过程中COS呈挂起状态。
所述目标代码编译模块具体包括:
源代码编辑模块,用于提供用户编写自定义程序的环境;
编译模块,用于对所述自定义程序的源代码进行编译,编译为信息安全设备直接执行的程序;
下载模块,用于将编译后的自定义程序下载到信息安全设备内部的指定存储单元中。
所述信息安全设备具体包括:
用户程序存储模块,用于存储下载的自定义程序;
卡片操作系统模块,用于设置存储器管理单元和看门狗计时器,使所述存储器管理单元对所述自定义程序进行管理,以及定时清空看门狗定时器;
存储器管理单元,用于将所述自定义程序设置为可执行或只写状态,用于控制用户所述自定义程序运行时能访问的存储区域,限制所述自定义程序访问非法区域。
本发明的技术方案带来的有益效果是:
通过将用户自定义的程序直接编译为可以被信息安全设备直接执行的程序,简化了自定义程序的运行过程,加快了自定义程序的运行速度。
附图说明
图1是本发明实施例1提供的提高自定义程序运行速度的方法流程图;
图2是本发明实施例2提供的提高自定义程序运行速度的装置示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但本发明不局限于以下实施例。
实施例1
参见图1,提供了一种提高自定义程序运行速度的方法,在本实施例中,信息安全设备为USB Key,该USB Key采用方舟CPU核,具有完整的MMU功能,并集成了中断控制器、时钟定时器和看门狗定时器。编辑器可任意选取,这里为GCC。
具体实施步骤如下:
步骤101:用户编写自定义程序,程序如下:
unsigned int Check(unsigned int y,unsigned int z,unsigned int id)
{
unsigned int chi;
chi=y+z;
chi=chi^y;
chi=chi^z;
chi=chi-id;
return chi;
}
用户自定义程序是在外部集成开发环境下完成编辑和编译工作的,开发人员在一台电脑上用特定的编译工具完成编辑和编译工作。
步骤102:GCC编译器对上述用户自定义程序进行编译,编译成可以直接被信息安全设备加载执行的程序代码。
在本实施例中,经过GCC编译器编译的用户自定义程序为一段二进制代码,这样就可以直接被信息安全设备加载执行,编译结果如下:
14 08 02 08 02 00 74 08 02 0c 82 0a
02 0c 62 08 02 80 82 08 00 08 12 00。
为了更安全,也可以对编译后的自定义程序进行加密,加密后的程序只有对应的信息安全设备才能进行解密。或者在编译后的自定义程序上填加校验码,当信息安全设备下载到自定义程序后,先对校验码进行检验,如果检验通过,则证明此程序可以执行,否则,此程序有错误,不执行。
步骤103:GCC编译器与信息安全设备建立连接,由PC机中的应用程序将编译后的用户自定义程序下载到信息安全设备中。
在本实施例中,用户自定义程序通过存储控制器的控制下载到信息安全设备内部COS管理的指定地址中。
步骤104:当信息安全设备接收到运行用户自定义程序的命令后,经过编译后的用户自定义程序在信息安全设备内部运行。
在本实施例中,由PC机中的应用程序向信息安全设备发送运行用户自定义程序的命令,当信息安全设备接收到外部发来的运行用户自定义程序的指令后,把控制权转交给用户自定义程序。
用户自定义程序运行时受到WDT的控制,用户自定义程序被调用时,WDT的计时器被清零,用户自定义程序运行结束时,将控制权交重新交给COS时,COS将WDT的计时器清零,用户自定义程序在运行的过程中COS呈挂起状态。
当用户自定义程序的运行时间超过某一设定的工作时间时,则认为程序陷入死循环。这时WDT的计时器的时间大于设定的工作时间,WDT将产生一个中断,强行终止用户自定义程序,使COS重新得到CPU的控制权。从而保护信息安全设备的正常运转。
其中,用户自定义程序的工作时间可由COS来设定。
在本实施例中,信息安全设备中的存储管理器单元可将用户自定义程序设置为只读,只写等状态,从而保证用户自定义程序的安全性。用户自定义程序运行时能访问的存储区域受到MMU的控制,若访问非法区域则被拒绝。
步骤105:用户自定义程序在信息安全设备内部运行完毕,将运行结果返回给用户。
实施例2
参见图2,提供了一种提高自定义程序运行速度的装置,该装置主要包括目标代码编译模块和信息安全设备两部分。
目标代码编译模块,用于将自定义程序编译为可被信息安全设备执行的程序,以及将编译后的程序下载到所述信息安全设备;
信息安全设备,用于存储编译后的自定义程序,当收到运行所述自定义程序命令后,COS把控制权转交给所述自定义程序,自定义程序运行结束时返回运行结果,并将控制权重新交给COS,所述自定义程序在运行的过程中COS呈挂起状态。
其中,目标代码编译模块具体包括:
源代码编辑模块,用于提供用户编写自定义程序的环境;
编译模块,用于对所述自定义程序的源代码进行编译,编译为信息安全设备直接执行的程序;
下载模块,用于将编译后的自定义程序下载到信息安全设备内部的指定存储单元中。
信息安全设备具体包括:
用户程序存储模块,用于存储下载的自定义程序;
卡片操作系统模块,用于设置存储器管理单元和看门狗计时器,使所述存储器管理单元对自定义程序进行管理,以及定时清空看门狗定时器;
存储器管理单元,用于将自定义程序设置为可执行或只写状态,用于控制自定义程序运行时能访问的存储区域,限制该自定义程序访问非法区域。
该存储器管理单元包含多个寄存器,通过这些寄存器实现其功能,操作,和状态。
以上对本发明所提供的一种提高自定义程序运行速度的方法和装置进行的介绍,本发明中采用具体实例对原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (10)
1.一种提高自定义程序运行速度的方法,其特征在于,所述方法包括以下步骤:
步骤A:编译器将自定义程序编译成信息安全设备能直接执行的程序;
步骤B:将所述编译后的自定义程序下载到所述信息安全设备中;
步骤C:当所述信息安全设备收到运行所述自定义程序命令后,COS把控制权转交给所述自定义程序,自定义程序运行结束时返回运行结果,并将控制权重新交给COS,所述自定义程序在运行的过程中COS呈挂起状态。
2.如权利要求1所述的提高自定义程序运行速度的方法,其特征在于,所述步骤B中的自定义程序下载到由卡片操作系统指定地址的存储单元中。
3.如权利要求1所述的提高自定义程序运行速度的方法,其特征在于,所述步骤B还包括:
卡片操作系统设置看门狗定时器,相应地,步骤C还包括:
执行所述自定义程序时,卡片操作系统对所述看门狗定时器清零,所述看门狗定时器进行监控,如果所述自定义程序运行时间超过定时时长,所述看门狗定时器产生中断,停止执行所述自定义程序;否则,当所述自定义程序运行结束后,所述卡片操作系统对看门狗定时器再次清零。
4.如权利要求1或3所述的提高自定义程序运行速度的方法,其特征在于,所述步骤C还包括:
控制所述自定义程序的访问权限。
5.如权利要求1所述的提高自定义程序运行速度的方法,其特征在于,所述信息安全设备为USB Key。
6.如权利要求1所述的提高自定义程序运行速度的方法,其特征在于,所述步骤A还包括:
对编译后的自定义程序进行加密,相应地,所述步骤B还包括,对所述自定义程序进行解密。
7.如权利要求1所述的提高自定义程序运行速度的方法,其特征在于,所述步骤A还包括:
对编译后的自定义程序加校验码,相应地,所述步骤B还包括,对所述自定义程序进行校验,检验所述校验码是否正确。
8.一种提高自定义程序运行速度的装置,其特征在于,所述装置包括:
目标代码编译模块,用于将自定义程序编译为可被信息安全设备执行的程序,以及将编译后的程序下载到所述信息安全设备;
信息安全设备,用于存储编译后的自定义程序,当收到运行所述自定义程序命令后,COS把控制权转交给所述自定义程序,自定义程序运行结束时返回运行结果,并将控制权重新交给COS,所述自定义程序在运行的过程中COS呈挂起状态。
9.如权利要求8所述的提高自定义程序运行速度的装置,其特征在于,所述目标代码编译模块具体包括:
源代码编辑模块,用于提供用户编写自定义程序的环境;
编译模块,用于对所述自定义程序的源代码进行编译,编译为信息安全设备直接执行的程序;
下载模块,用于将编译后的自定义程序下载到信息安全设备内部的指定存储单元中。
10.如权利要求8所述的提高自定义程序运行速度的装置,其特征在于,所述信息安全设备具体包括:
用户程序存储模块,用于存储下载的自定义程序;
卡片操作系统模块,用于设置存储器管理单元和看门狗计时器,使所述存储器管理单元对所述自定义程序进行管理,以及定时清空看门狗定时器;
存储器管理单元,用于将所述自定义程序设置为可执行或只写状态,用于控制所述自定义程序运行时能访问的存储区域,限制所述自定义程序访问非法区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101696082A CN100454256C (zh) | 2006-12-25 | 2006-12-25 | 一种提高自定义程序运行速度的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101696082A CN100454256C (zh) | 2006-12-25 | 2006-12-25 | 一种提高自定义程序运行速度的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1987789A CN1987789A (zh) | 2007-06-27 |
CN100454256C true CN100454256C (zh) | 2009-01-21 |
Family
ID=38184595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101696082A Active CN100454256C (zh) | 2006-12-25 | 2006-12-25 | 一种提高自定义程序运行速度的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100454256C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382892B (zh) * | 2008-09-24 | 2012-04-18 | 飞天诚信科技股份有限公司 | 下载.Net程序的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609748A (zh) * | 2004-10-14 | 2005-04-27 | 苏州超锐微电子有限公司 | 一种在网卡引导区实现开机锁功能的方法 |
CN1687900A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡运行环境的控制方法 |
CN1716212A (zh) * | 2004-06-29 | 2006-01-04 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
US20060174235A1 (en) * | 2003-02-18 | 2006-08-03 | Tomihisa Kamada | Native compile method, native compile preprocessing method, computer program, and server |
-
2006
- 2006-12-25 CN CNB2006101696082A patent/CN100454256C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174235A1 (en) * | 2003-02-18 | 2006-08-03 | Tomihisa Kamada | Native compile method, native compile preprocessing method, computer program, and server |
CN1716212A (zh) * | 2004-06-29 | 2006-01-04 | 联想(北京)有限公司 | 一种灾难恢复系统及方法 |
CN1609748A (zh) * | 2004-10-14 | 2005-04-27 | 苏州超锐微电子有限公司 | 一种在网卡引导区实现开机锁功能的方法 |
CN1687900A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡运行环境的控制方法 |
Non-Patent Citations (2)
Title |
---|
如何建立嵌入式Linux开发环境. 李驹光,郑耿.电脑编程技巧与维护,第8期. 2005 |
如何建立嵌入式Linux开发环境. 李驹光,郑耿.电脑编程技巧与维护,第8期. 2005 * |
Also Published As
Publication number | Publication date |
---|---|
CN1987789A (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Return-oriented flush-reload side channels on arm and their implications for android devices | |
Stefan et al. | Eliminating cache-based timing attacks with instruction-based scheduling | |
Ming et al. | {TaintPipe}: Pipelined symbolic taint analysis | |
CN104205064B (zh) | 将程序事件记录事件向运行时间检测事件变换的系统及方法 | |
TW202121169A (zh) | 用於異質計算之系統,方法,及設備 | |
CN111931251B (zh) | 一种基于区块链的可信计算芯片 | |
Cheng et al. | A jit compiler for android’s dalvik vm | |
Wang et al. | Enabling cross-isa offloading for cots binaries | |
Gu et al. | Building certified concurrent OS kernels | |
Zeng et al. | Pemu: A pin highly compatible out-of-vm dynamic binary instrumentation framework | |
CN104704474A (zh) | 用于管理的运行时间的基于硬件的运行时间检测设施 | |
CN104380264A (zh) | 运行时间检测报告 | |
CN104364769A (zh) | 处理器特性的运行时间检测监控 | |
Sarbazi-Azad | Advances in GPU research and practice | |
CN104169886B (zh) | 通过地址的运行时间检测间接采样的方法和系统 | |
CN104169887A (zh) | 通过指令操作码的运行时间检测间接采样 | |
Dinda et al. | Spying on the floating point behavior of existing, unmodified scientific applications | |
Kuang et al. | Exploiting dynamic scheduling for VM-based code obfuscation | |
Heo et al. | Implementing an application-specific instruction-set processor for system-level dynamic program analysis engines | |
Ning et al. | Hardware-assisted transparent tracing and debugging on ARM | |
Dalai et al. | A code obfuscation technique to prevent reverse engineering | |
Gutstein | Memory safety with CHERI capabilities: security analysis, language interpreters, and heap temporal safety | |
CN100454256C (zh) | 一种提高自定义程序运行速度的方法和装置 | |
Dubrulle et al. | A low-overhead dedicated execution support for stream applications on shared-memory CMP | |
Wichelmann et al. | MAMBO–V: Dynamic Side-Channel Leakage Analysis on RISC–V |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: FEITIAN CHENGXIN TECHNOLOGIES CO., LTD. Free format text: FORMER NAME: BEIJING FEITIAN CHENGXIN SCIENCE + TECHNOLOGY CO. LTD. |
|
CP03 | Change of name, title or address |
Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer Patentee after: Feitian Technologies Co., Ltd. Address before: 100083, Haidian District, Xueyuan Road, No. 40 research, 7 floor, 5 floor, Beijing Patentee before: Beijing Feitian Chengxin Science & Technology Co., Ltd. |