CN1987715A - 一种软件保护的方法 - Google Patents

一种软件保护的方法 Download PDF

Info

Publication number
CN1987715A
CN1987715A CN 200510130169 CN200510130169A CN1987715A CN 1987715 A CN1987715 A CN 1987715A CN 200510130169 CN200510130169 CN 200510130169 CN 200510130169 A CN200510130169 A CN 200510130169A CN 1987715 A CN1987715 A CN 1987715A
Authority
CN
China
Prior art keywords
program
software
kernel program
target platform
kernel
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.)
Granted
Application number
CN 200510130169
Other languages
English (en)
Other versions
CN100495285C (zh
Inventor
李春华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Petevio Institute Of Technology Co ltd
Original Assignee
Potevio Institute of Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Potevio Institute of Technology Co Ltd filed Critical Potevio Institute of Technology Co Ltd
Priority to CN 200510130169 priority Critical patent/CN100495285C/zh
Publication of CN1987715A publication Critical patent/CN1987715A/zh
Application granted granted Critical
Publication of CN100495285C publication Critical patent/CN100495285C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种软件保护的方法,为每份需要保护的核心程序配置保护程序,且将核心程序转换成目标平台无法运行的格式,在使用核心程序时先启动保护程序,该方法还包括:步骤A,保护程序判断是否通过授权验证,如果通过则执行步骤B,否则中断当前处理流程;步骤B,保护程序将目标平台无法运行的核心程序恢复成目标平台可以运行的格式后启动核心程序。使用本发明所提供的技术方案,软件发行者只需从软件开发者获取软件的可执行程序即可保护软件,而无需获取软件的源代码。这样首先使得软件发行者和软件开发者可以并行的专注于各自所关注的内容;其次降低了对于软件发行者开发条件的要求,从而降低了软件发行的成本,缩短了软件发行的周期。

Description

一种软件保护的方法
技术领域
本发明属于数字内容保护领域,特别涉及到利用闪存卡或优盘存储发行软件时的软件保护方法。
背景技术
软件保护是软件发行时要考虑的重要因素,所谓软件保护是指软件使用者应该在得到授权以后才能正常使用软件。对软件进行保护能保证软件不被非法分发。和验证硬件相结合的软件保护方法由于其安全程度高,已经越来越普遍的应用到软件发行之中。这种方法通常为每套软件分配一个具有唯一标识号的验证硬件,在使用软件的时候,要求必须同时提供该验证硬件才能正常运行软件。也就是说,只有拥有与软件相对应的验证硬件才能得到使用授权,这样就保证了软件不能被非法分发。
在现有技术中,为了让软件在执行过程中检测与之对应的验证硬件信息,需要在完成软件核心功能的功能代码中插入额外的保护代码,由保护代码去执行相关检测;同时,对功能代码做一定的修改,使功能代码在完成核心功能的过程中调用保护代码。由于防止软件被非法分发是软件发行者需要关注的问题,因此保护代码的开发和插入,以及配套验证硬件的设计是由软件发行者完成的。这就需要软件发行者在发行软件之前必须从软件开发者处得到软件的源代码。
但是,随着软件发行者和软件开发者越来越独立,软件发行者通常无法得到软件的源代码。即使得到了软件的源代码,也需要完成功能代码修改、保护代码插入以及重新编译等工作。这个过程步骤繁多,会延长软件发行的周期;并且要求软件发行者具有几乎和软件开发者同样的开发条件,如此会增加软件发行的成本。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件保护的方法,使软件发行者无需获取软件源代码即可对要发行的软件进行保护。
为了达到上述目的,本发明提供了一种软件保护的方法,为每份需要保护的核心程序配置对应的保护程序,且将核心程序转换成目标平台无法运行的格式,在使用核心程序时先启动保护程序,该方法还包括:
步骤A,保护程序判断是否通过授权验证,如果通过则执行步骤B,否则中断当前处理流程;
步骤B,保护程序将目标平台无法运行的核心程序恢复成目标平台可以运行的格式后启动核心程序。
其中,所述将核心程序转换成目标平台无法运行的格式为:将核心程序加密;
所述将软件可执行程序转换成目标平台可以运行的格式为:将核心程序解密。
其中,所述将核心程序加密为:
用相同的密钥对即将存储于不同存储介质中的核心程序加密。
其中,所述将核心程序加密为:
为即将存储于不同存储介质中的核心程序分配各不相同的密钥,对每份核心程序用该份核心程序对应的密钥进行加密。
其中,所述密钥与所述存储介质的硬件标识号相关。
其中,所述存储介质为:闪存卡或优盘。
其中,进一步为每份核心程序配置对应的验证硬件,所述判断是否通过授权验证为:
根据基于验证硬件的授权验证流程,判断是否提供了正确的验证硬件,如果是则认为通过授权验证,否则认为未通过授权验证。
其中,所述验证硬件为存储核心程序和保护程序的存储介质。
其中,步骤B包括:
步骤B1,保护程序读取目标平台无法运行的核心程序;
步骤B2,保护程序将目标平台无法运行的核心程序转换成目标平台可以运行的格式后存储在目标平台的易失性存储器;
步骤B3,保护程序启动核心程序。
其中,步骤B之后进一步包括:
保护程序终止自身的运行。
采用本发明所提供的技术方案,在软件发行前是将软件的可执行程序转化成目标平台无法运行的格式,在软件使用时又是由保护程序将软件的可执行程序恢复为目标平台可以运行的格式,也就是说,只对软件的可执行程序进行了处理。由此可见,软件发行者只需从软件开发者获取软件的可执行程序即可对软件进行保护,而不需要获取软件的源代码。这样首先使得软件发行者和软件开发者可以并行的专注于各自所关注的内容,即软件开发者专注于软件核心功能的开发,而软件发行者专注于软件保护技术的开发;其次降低了对于软件发行者开发条件的要求,从而降低了软件发行的成本,缩短了软件发行的周期。
附图说明
图1是本发明提供的软件保护方法的实施例在软件发行时的处理流程。
图2是本发明提供的软件保护方法的实施例在软件使用时的处理流程。
具体实施方式
本发明的核心思想在于,软件发行者将欲保护软件的可执行程序转换成目标平台无法运行的格式后和配套验证硬件一同发行,在目标平台需要运行欲保护软件的可执行程序时先由另一个可执行程序进行授权验证,如果验证通过则将欲保护软件的可执行程序恢复成目标平台可以运行的格式,然后启动欲保护软件的可执行程序。在本发明中,欲保护软件的可执行程序称为核心程序,另一个可执行程序称为保护程序,核心程序和保护程序是一一对应的。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
请参考图1,图1是本发明提供的软件保护方法的实施例在软件发行时的处理流程。
步骤101,将核心程序转换成目标平台无法运行的格式后存储在发行媒介上,并且把核心程序文件名更改为一临时文件名。
将核心程序转换成目标平台无法运行的格式可以有很多种方法,例如将核心程序加密,或者将核心程序的数据做某种编码变换。这样,只有经过解密或者反变换才能在目标平台运行核心程序。
特别的,如果采用加密的方法将核心程序转换成目标平台无法运行的格式,加密的时候可以采用两种方式:一种方式是所有发行该软件的发行媒介上所存储的都是核心程序经过同一个密钥加密后的形式;另一种方式是每份发行该软件的发行媒介上所存储的是核心程序经过不同密钥加密后的形式。
步骤102,将与核心程序对应的保护程序存储在发行媒介上,并且把保护程序文件名更改为核心程序原文件名。
保护程序是能够在目标平台上运行的可执行程序,它的作用是在启动后进行授权验证,如果验证通过则将核心程序转换成目标平台可以运行的格式,并且执行核心程序。这里,如果采用的是基于验证硬件的授权验证技术,那么,所述进行授权验证指的是检测核对验证硬件信息,以判断使用者是否提供了正确的验证硬件,
步骤103,将发行媒介和对应的验证硬件一起发行。
发行媒介和配套验证硬件之间是一一对应的关系,每一份存储有软件和保护程序的发行媒介都有与之对应的配套验证硬件。
特别的,如果是用闪存卡作为发行媒介,那么可以用同一个闪存卡作为配套验证硬件。因为每个闪存卡都有一个唯一的标识号,使用软件时保护程序可以根据这个标识号来判断软件使用者是否提供了正确的验证硬件。
如果在步骤102中,每份发行该软件的发行媒介上所存储的是核心程序经过不同密钥加密后的形式,那么加密的时候采用的密钥可以与配套验证硬件的标识号相关。
在步骤102中,如果所述授权验证采用的不是基于验证硬件的授权验证技术,那么就可以省略步骤103。
请参考图2,图2是本发明提供的软件保护方法的实施例在软件使用时的处理流程。
步骤201,在目标平台上运行保护程序。
步骤202,保护程序检查配套验证硬件是否存在,如果存在则执行步骤203,否则执行步骤207。
步骤203,保护程序读取配套验证硬件的标识号。
步骤204,保护程序核对配套验证硬件的标识号,判断该配套验证硬件是否与存储核心程序和保护程序的发行媒介相匹配,如果匹配则执行步骤205,否则执行步骤207。
步骤205,保护程序将核心程序转换成目标平台可以运行的格式后写入目标平台的易失性存储器内。
在软件发行的时候,核心程序被转换成目标平台无法运行的格式后被存储于发行媒介。保护程序从发行媒介上将目标平台无法运行的核心程序读取并转换成目标平台可以运行的格式后,将目标平台可运行的核心程序写入目标平台的易失性存储器上。
之所以要使用目标平台的易失性存储器,是因为如果目标平台可以运行的核心程序被保护程序写入了目标平台的非易失性存储器,那么在软件运行终止以后,就可以从目标平台的非易失性存储器中读取目标平台可以运行的核心程序并加以分发,从而可以在其他目标平台上直接运行核心程序。而核心程序在运行时不做相关的授权验证,也就不具备软件保护功能。而使用目标平台的易失性存储器,在软件运行终止以后,目标平台可以运行的核心程序所占用的存储空间被释放,这样就无法从易失性存储器中读出目标平台可以运行的核心程序,从而每次需要运行核心程序的时候都必须先启动保护程序,经过相关的授权验证,进而保证了软件不被非法分发,实现了软件保护。
特别的,如果在软件发行前采用加密的方式将核心程序转换成目标平台无法运行的格式,那么此处所述将核心程序转换成目标平台可以运行的格式为与将核心程序解密。
步骤206,保护程序启动核心程序,并终止保护程序自身的运行,结束本次流程。
步骤207,保护程序认为软件授权验证未通过,不能使用软件。
对于未通过授权验证的情况,保护程序可以终止自身的运行;也可以提示使用者授权验证未通过后终止自身的运行;还可以提示使用者提供正确的验证硬件。
上述步骤202到步骤204,其实就是授权验证的过程。在本具体实施例中,采用的是基于验证硬件的授权验证技术。在实际应用中,还可以采用其他授权验证技术,例如基于序列号的授权验证技术等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1、一种软件保护的方法,其特征在于,为每份需要保护的核心程序配置对应的保护程序,且将核心程序转换成目标平台无法运行的格式,在使用核心程序时先启动保护程序,该方法还包括:
步骤A,保护程序判断是否通过授权验证,如果通过则执行步骤B,否则中断当前处理流程;
步骤B,保护程序将目标平台无法运行的核心程序恢复成目标平台可以运行的格式后启动核心程序。
2、根据权利要求1所述的软件保护的方法,其特征在于,所述将核心程序转换成目标平台无法运行的格式为:将核心程序加密;
所述将软件可执行程序转换成目标平台可以运行的格式为:用与加密时所使用的密钥相同的密钥将核心程序解密。
3、根据权利要求2所述的软件保护的方法,其特征在于,所述将核心程序加密为:
用相同的密钥对即将存储于不同存储介质中的核心程序加密。
4、根据权利要求2所述的软件保护的方法,其特征在于,所述将核心程序加密为:
为即将存储于不同存储介质中的核心程序分配各不相同的密钥,对每份核心程序用该份核心程序对应的密钥进行加密。
5、根据权利要求4所述的软件保护的方法,其特征在于,所述密钥与所述存储介质的硬件标识号相关。
6、根据权利要求3或4所述的软件保护的方法,其特征在于,所述存储介质为:闪存卡或优盘。
7,根据权利要求1所述的软件保护的方法,其特征在于,进一步为每份核心程序配置对应的验证硬件,所述判断是否通过授权验证为:
根据基于验证硬件的授权验证流程,判断是否提供了正确的验证硬件,如果是则认为通过授权验证,否则认为未通过授权验证。
8、根据权利要求7所述的软件保护的方法,其特征在于,所述验证硬件为存储核心程序和保护程序的存储介质。
9、根据权利要求1所述的软件保护的方法,其特征在于,步骤B包括:
步骤B1,保护程序读取目标平台无法运行的核心程序;
步骤B2,保护程序将目标平台无法运行的核心程序转换成目标平台可以运行的格式后存储在目标平台的易失性存储器;
步骤B3,保护程序启动核心程序。
10、根据权利要求1所述的软件保护的方法,其特征在于,步骤B之后进一步包括:
保护程序终止自身的运行。
CN 200510130169 2005-12-19 2005-12-19 一种软件保护的方法 Expired - Fee Related CN100495285C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510130169 CN100495285C (zh) 2005-12-19 2005-12-19 一种软件保护的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510130169 CN100495285C (zh) 2005-12-19 2005-12-19 一种软件保护的方法

Publications (2)

Publication Number Publication Date
CN1987715A true CN1987715A (zh) 2007-06-27
CN100495285C CN100495285C (zh) 2009-06-03

Family

ID=38184539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510130169 Expired - Fee Related CN100495285C (zh) 2005-12-19 2005-12-19 一种软件保护的方法

Country Status (1)

Country Link
CN (1) CN100495285C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464301C (zh) * 2007-08-09 2009-02-25 威盛电子股份有限公司 应用程序处理方法及系统
CN103164640A (zh) * 2011-12-08 2013-06-19 北京深思洛克软件技术股份有限公司 一种控制软件保护装置中可执行文件执行的方法
CN108259429A (zh) * 2016-12-29 2018-07-06 航天信息股份有限公司 一种针对软件分发进行控制的方法和系统
CN109299945A (zh) * 2017-07-24 2019-02-01 上海荆虹电子科技有限公司 一种基于生物识别算法的身份验证的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464301C (zh) * 2007-08-09 2009-02-25 威盛电子股份有限公司 应用程序处理方法及系统
CN103164640A (zh) * 2011-12-08 2013-06-19 北京深思洛克软件技术股份有限公司 一种控制软件保护装置中可执行文件执行的方法
CN108259429A (zh) * 2016-12-29 2018-07-06 航天信息股份有限公司 一种针对软件分发进行控制的方法和系统
CN108259429B (zh) * 2016-12-29 2021-01-29 航天信息股份有限公司 一种针对软件分发进行控制的方法和系统
CN109299945A (zh) * 2017-07-24 2019-02-01 上海荆虹电子科技有限公司 一种基于生物识别算法的身份验证的方法及装置
CN109299945B (zh) * 2017-07-24 2020-10-09 深圳荆虹科技有限公司 一种基于生物识别算法的身份验证的方法及装置

Also Published As

Publication number Publication date
CN100495285C (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
US6134659A (en) Controlled usage software
US9633183B2 (en) Modular software protection
CN102073826B (zh) 利用轻量级数字水印添加组件的数字版权管理的系统和方法
US6749115B2 (en) Dual processor trusted computing environment
US7971017B1 (en) Memory card with embedded identifier
CN101872404B (zh) 一种保护Java软件程序的方法
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN103065072B (zh) 提高Java软件破解难度的方法及装置、版权验证方法
EP2264640B1 (en) Feature specific keys for executable code
CN106650327A (zh) 基于动态恢复so文件的Android应用加固方法
US20110271350A1 (en) method for protecting software
CN103440441A (zh) 软件保护的方法及系统
JP5567033B2 (ja) ソフトウェアライセンス保護方法、そのためのシステム、サーバ、端末機、及びコンピュータで読み取り可能な記録媒体
WO2007044947A2 (en) Software-firmware transfer system
CN102663292A (zh) 一种实现智能卡应用部署的方法及系统
CN112486607B (zh) 一种基于软硬件结合的虚拟桌面授权许可方法
CN100495285C (zh) 一种软件保护的方法
US20020147922A1 (en) Software protection mechanism
JP2886969B2 (ja) プログラム変換方法
CN107958141A (zh) 一种基于芯片id号的软件保护方法
JP2009093229A (ja) プログラム制御装置及び方法とプログラム
CN102937907A (zh) 利用sd卡片进行授权软体安装更新使用的方法
CN102117394A (zh) 检测是否已经复制了计算机文件的方法和装置以及能够进行这种检测的方法和装置

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
ASS Succession or assignment of patent right

Owner name: CHINA POTEVIO CO., LTD.

Free format text: FORMER OWNER: PUTIAN IT TECH INST CO., LTD.

Effective date: 20130924

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: PUTIAN IT TECH INST CO., LTD.

Free format text: FORMER NAME: PUTIAN INST. OF INFORMATION TECHNOLOGY

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: HAIDIAN, BEIJING TO: 100080 HAIDIAN, BEIJING

CP03 Change of name, title or address

Address after: No. two, 6 North Street, Beijing, Haidian District, Haidian

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: 100085, No. two, 2 street, base of information industry, Beijing

Patentee before: POTEVIO Institute of Information Technology

TR01 Transfer of patent right

Effective date of registration: 20130924

Address after: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee after: CHINA POTEVIO CO.,LTD.

Address before: No. two, 6 North Street, Beijing, Haidian District, Haidian

Patentee before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: PUTIAN IT TECH INST CO., LTD.

Free format text: FORMER OWNER: CHINA POTEVIO CO., LTD.

Effective date: 20131205

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131205

Address after: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee before: CHINA POTEVIO CO.,LTD.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090603

Termination date: 20211219