CN101211319B - 一种用于存储装置的程序文件保护方法及保护装置 - Google Patents
一种用于存储装置的程序文件保护方法及保护装置 Download PDFInfo
- Publication number
- CN101211319B CN101211319B CN2006101564789A CN200610156478A CN101211319B CN 101211319 B CN101211319 B CN 101211319B CN 2006101564789 A CN2006101564789 A CN 2006101564789A CN 200610156478 A CN200610156478 A CN 200610156478A CN 101211319 B CN101211319 B CN 101211319B
- Authority
- CN
- China
- Prior art keywords
- program file
- memory storage
- protection
- address
- address field
- 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
Abstract
本发明提供的一种用于存储装置的程序文件保护方法,程序文件中设置至少一保护地址段,还包括步骤:(1)存储装置读取程序文件,对至少一保护地址段进行检查;(2)存储装置根据检查结果读出程序文件内容或取消读取操作;本发明还提供一种程序文件保护装置,采用本发明提供的程序文件保护方法和保护装置,可实现在不影响程序文件正常运行的情况下,对程序文件防止复制保护,安全可靠,使用简便,易于推广使用。
Description
技术领域
本发明涉及电数字数据处理领域,特别涉及一种用于存储装置的程序文件保护方法。
背景技术
目前很多软件提供商都被盗版所烦恼,有对软件程序即可执行的程序文件进行防止复制的需求,希望能把程序文件保存在存储装置如闪存盘内,程序在存储装置内可以运行,但却无法复制出来。但从理论上,程序运行就必须能够读出程序的内容,而能读出内容就必定能拷贝。因此,该需求就一直无法实现。
发明内容
本发明目的在于提供一种程序文件保护方法及保护装置,在不影响程序文件正常运行的情况下,对程序文件实现防止复制保护。
本发明提供的一种用于存储装置的程序文件保护方法,程序文件中设置至少一保护地址段,还包括步骤:(1)存储装置读取程序文件,对至少一保护地址段进行检查;(2)存储装置根据检查结果读出程序文件内容或取消读取操作;将至少一保护地址段设为无效,无效信息保存在存储装置预留存储空间中,存储装置根据指向程序文件的读取命令,检验读取命令中的指定地址是否与保护地址段相符,若不相符则读取指定地址中的数据,否则取消读取操作;或设置一地址段表,将至少一保护地址段标记为无效,将程序文件的其他至少一地址段标记为有效;对于指向程序文件的读取命令,存储装置找出地址段表中与读取命令指定地址对应的地址段,若对应的地址段标记为有效,则读取指定地址中的数据,否则取消读取操作。上述保护地址段为空,或为与程序文件的运行无关的任意数据。本发明方法为保护地址段加密,密码信息保存在存储装置预留存储空间中。指向程序文件的读取命令包括密码信息,其中,存储装置将读取命令中包含的密码信息与保存在存储装置预留存储空间中的密码信息比较,若密码信息相符则读取指定地址中的数据,否则取消读取操作。其中保护地址段是选取程序文件中的有效地址段,保护地址段中的数据是程序文件运行所需的有效数据。上述存储装置包括闪存盘、硬盘、个人电脑或掌上电脑。
本发明还提供一种程序文件保护装置,程序文件中设置至少一保护地址段,包括一用于读取程序文件及对至少一保护地址段进行检查的检查装置,和一根据检查结果读出程序文件内容或取消读取操作的执行装置,检查装置将检查结果发送给执行装置,该执行装置执行具体操作。
采用本发明提供的程序文件保护方法和保护装置,可实现在不影响程序文件正常运行的情况下,对程序文件的防止复制保护,安全可靠,使用简便,易于推广使用。
附图说明
图1是本发明第一实施例的程序文件存储示意图;
图2是本发明第一实施例文件读取操作的流程示意图;
图3是本发明第二实施例的程序文件存储示意图;
图4是本发明第二实施例的地址信息表示例;
图5是本发明第三实施例的程序文件存储示意图;
图6是本发明第三实施例文件读取操作的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
提出本发明的第一实施例,用于在闪存盘中实现对可执行文件的保护。
本实施例基于WINDOWS操作系统和FAT文件系统。FAT文件系统具有链式结构,每个文件都具有一个链表,该链表记录文件所有片段的存储地址,将存储在存储器中的多个文件片段组织成为完整的文件。对文件的读操作是根据每个文件的链表,依次根据链表中的文件片段存储地址,将对应的文件片段从存储器里读出来。对文件的读操作包括文件的读取、复制或者运行等操作。
当文件链表中的信息被破坏,操作系统就无法将所有文件片段读取出来,由此可使操作系统无法正确还原文件,操作系统就会报错而无法完成读取或复制。但运行程序文件时,操作系统不会一次性读取所有程序文件,而只把程序文件的前一小部分读入内存。当程序运行到某区域的时候,操作系统才去存储器里调入该区域相关内容,也就是说,如果程序不运行某区域中保存的代码,那在运行阶段就不会调入该区域中的数据,因此即使程序文件有所损坏,也不会影响程序的执行。基于上述原理我们只要对程序文件进行适当的调整,造成程序文件的一部分不会被程序使用到,在该程序文件的链表中破坏该区域的数据,让操作系统无法读出该区域的数据,就可以实现程序可以运行,程序文件却无法读取或复制的功能。
参见图1,示出本实施例的程序文件存储示例,是程序文件的一部分链表,该链表的地址段13(128K到191K)内开辟一段地址(150K到191K),设置一无效地址段X,该无效地址段X内可以是任意与程序运行无关的数据,也可以为空。在闪存盘的预留存储空间内存储与无效地址段X相对应的无效地址段信息(150K到191K),该无效地址段信息标明该地址段内是效数据段。
结合图2,示出对文件进行读取操作的流程:
步骤S101,闪存盘接收主机发来的文件操作命令,该文件操作命令是对文件进行读取;
步骤S102,将操作命令中的指定地址与闪存盘预先存储的无效地址段信息进行比较;
步骤S103,若操作命令中的指定地址与闪存盘预先存储的无效地址段信息不吻合,说明该指定地址内不含有无效数据,可以正常读取,则进行步骤S105;否则进行步骤S104;
步骤S104,向主机返回读取文件失败信息,该文件无法被读取或被复制,流程结束;
步骤S105,从指定地址中取出数据返回给主机,完成当前文件操作命令, 进行步骤S106;
步骤S106,接收下一文件操作命令直到文件全部读取完毕或主机不再发送文件操作命令,流程结束。
根据上述流程可知,若一普通文件未经本发明方法的保护,则对该文件所在地址段的读取指令都可以顺利完成,即主机可以读取、复制该文件;但若一文件经过本发明方法的保护,则在对文件所在的某一地址段13进行读取操作时,该地址段13与预设的无效地址段X吻合,则主机无法完成对该文件的读取和复制。其中的吻合可能是操作指令地址段包含了预设的无效地址段X、预设的无效地址段X包含了操作指令地址段、两地址段一致或重叠的情况。
对于可执行的程序文件,上述保护方式将不影响程序的正常运行。本方法将无效地址段X加入程序文件中,使得该无效地址段X中的无效数据不会被程序文件调用,即程序文件运行无需使用无效地址段中的数据,则主机不需要将该段无效数据读入内存,因此程序文件可以正常运行,由此实现在不影响程序文件正常运行的情况下对程序文件的防止复制保护。
在上述第一实施例中,预设了一个无效地址段X,实际上如图3所示,可以预设多个无效地址段X、Y等,分别对应多个无效信息;设置无效地址段表,保存多个无效地址段的无效信息。当文件操作命令指向其中任一无效地址段时,通过核对无效地址段表,得出该段数据无效,操作失败的信息;而运行该程序文件时,由于没有任何指令对这些无效地址段进行调用,因而无需访问到无效地址段,程序可以正常运行,从而实现在不影响程序文件正常运行的情况下对程序文件的防止复制保护。
由此得出本发明第二实施例:如图4所示,在闪存盘的固件里设置一地址段表,该地址段表中记录文件所有片段的地址,同时标明哪些地址段是预设为无效地址段,哪些地址段是有效的。在接到主机系统发下来的文件操作命令以后,就把命令地址与此表中的地址段进行比较,如果对应地址段为有效则正常读写,否则报错。
对程序文件具体的处理方法是:在一个程序文件中开辟一段代码空间,如定义一个数组,此数组只需要占用空间就好,整个程序都无须干涉此数组。这样在该程序文件编译以后,这段连续的空间就是无用的。通过编译器输出 的文件,得知可执行文件里无效空间所在的地址段,如第100K到200K的位置是无用的。把该可执行文件拷贝到闪存盘中,计算出无效空间在闪存盘中占用的地址段,在闪存盘预留区域内保存那部分地址信息,表明该段地址为无效。
上述实施例中,无效地址段中或为空,或是任意与程序运行无关的数据,若采用逐一读取扇区内容的命令,则可以将包括上述无效地址段在内的程序文件完整读取或复制出来,使得上述实施例的文件保护措施失效。为解决上述问题,本发明提出第三实施例。
参照图5,示出本实施例的程序文件存储示例,是程序文件的一部分链表。任选该程序文件的一地址段13(128K到191K),在地址段13内选取一保护地址段Z(150K到191K),该保护地址段Z内的数据是程序文件自身的正常数据。为该保护地址段Z设置密码,密码保存在闪存盘预留区域内;同时将该密码包含在该程序文件调用该段数据的指令中。
结合图6,示出对文件进行读取操作的流程:
步骤S201,闪存盘接收主机发来的文件操作命令,该文件操作命令是对文件进行读取;
步骤S202,查找操作命令中的密码,将操作命令中的密码与闪存盘预留区域内的密码进行比较;
步骤S203,若操作命令中的密码与闪存盘预留区域内的密码相符则进行步骤S205,否则进行步骤S204;
步骤S204,向主机返回读取文件失败信息,该文件无法被读取或被复制,流程结束;
步骤S205,从指定地址中取出数据返回给主机,完成当前文件操作命令,进行步骤S206;
步骤S206,接收下一文件操作命令直到文件全部读取完毕或主机不再发送文件操作命令,流程结束。
根据上述流程可知,若一普通文件未经本发明方法的保护,则对该文件所在地址段的读取指令都可以顺利完成,即主机可以读取、复制该文件;但若一文件经过本发明方法的保护,则在对文件的保护地址段进行读取操作时, 读取命令中不包含密码,或密码核对错误,则主机无法完成对该文件的读取和复制。
对于可执行的程序文件,上述保护方式将不影响程序的正常运行。本方法将程序文件中的一段有用数据加密,而密码对用户以及对主机都是隐藏的,无法被盗取或破解。只有程序文件自身的调用指令内含有密码,可以对该段数据解密正常调用,因此程序文件可以正常运行,由此实现在不影响程序文件正常运行的情况下对程序文件的防止复制保护。
本发明提供的文件保护方法及保护装置适用于多种操作系统及文件系统下的各类可执行文件,可用于多种存储装置内文件的保护,存储装置包括闪存盘、硬盘,无效信息或密码可以保存在存储装置的固件或预留的存储空间中;本发明提供的存储装置还可以是个人电脑或掌上电脑等主机设备。对于存储装置是主机设备的情况,对操作命令的分析、对保护地址段的密码验证原理与前述相似,若验证结果为密码符合,则执行读取操作,读出程序文件内容;若验证结果为密码不符或查找不到密码,则返回读取错误信息,或取消读取操作。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种用于存储装置的程序文件保护方法,所述程序文件中设置至少一保护地址段,将所述至少一保护地址段设为无效,无效信息保存在所述存储装置预留存储空间中,所述方法还包括:
(1)存储装置读取所述程序文件,对所述至少一保护地址段进行检查;以及
(2)存储装置根据检查结果以及指向所述程序文件的读取命令,检验所述读取命令中的指定地址是否与所述保护地址段相符,若不相符则读取指定地址中的数据,否则取消读取操作。
2.根据权利要求1所述的用于存储装置的程序文件保护方法,其特征在于,设置一地址段表,将所述至少一保护地址段标记为无效,将所述程序文件的其他至少一地址段标记为有效;对于指向所述程序文件的读取命令,所述存储装置找出所述地址段表中与所述读取命令指定地址对应的地址段,若所述对应的地址段标记为有效,则读取指定地址中的数据,否则取消读取操作。
3.根据权利要求1或2所述的用于存储装置的程序文件保护方法,其特征在于,所述保护地址段为空,或为与所述程序文件的运行无关的任意数据。
4.一种用于存储装置的程序文件保护方法,所述程序文件中设置至少一保护地址段,为所述保护地址段加密,密码信息保存在所述存储装置预留存储空间中,所述方法还包括步骤:
(1)存储装置读取所述程序文件,对所述至少一保护地址段进行检查;以及
(2)存储装置根据检查结果,并根据指向所述程序文件的读取命令,检验所述读取命令中包含的密码信息是否与所述保存在所述存储装置预留存储空间中的密码信息相符,若相符则读取指定地址中的数据,否则取消读取操作。
5.根据权利要求4所述的用于存储装置的程序文件保护方法,其特征在于,所述保护地址段是选取所述程序文件中的有效地址段,所述保护地址段中的数据是所述程序文件运行所需的有效数据。
6.根据权利要求1或4所述的用于存储装置的程序文件保护方法,其特征在于,所述存储装置包括闪存盘、硬盘、个人电脑或掌上电脑。
7.一种程序文件保护装置,所述程序文件中设置至少一保护地址段,所述至少一保护地址段被设为无效,无效信息保存在所述存储装置预留存储空间中,所述程序文件保护装置还包括一用于读取所述程序文件及对所述至少一保护地址段进行检查的检查装置,和一执行装置,所述检查装置将检查结果发送给所述执行装置,所述执行装置根据检查结果并根据指向所述程序文件的读取命令,检验所述读取命令中的指定地址是否与所述保护地址段相符,若不相符则读取指定地址中的数据,否则取消读取操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101564789A CN101211319B (zh) | 2006-12-31 | 2006-12-31 | 一种用于存储装置的程序文件保护方法及保护装置 |
HK08113792.5A HK1122879A1 (en) | 2006-12-31 | 2008-12-19 | Method and device for program file protection in a storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101564789A CN101211319B (zh) | 2006-12-31 | 2006-12-31 | 一种用于存储装置的程序文件保护方法及保护装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101211319A CN101211319A (zh) | 2008-07-02 |
CN101211319B true CN101211319B (zh) | 2011-03-30 |
Family
ID=39611356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101564789A Active CN101211319B (zh) | 2006-12-31 | 2006-12-31 | 一种用于存储装置的程序文件保护方法及保护装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101211319B (zh) |
HK (1) | HK1122879A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486837B (zh) * | 2010-12-02 | 2015-01-07 | 国民技术股份有限公司 | 一种向SD memory卡读写私有数据的方法 |
CN102760102B (zh) * | 2011-04-26 | 2014-12-24 | 慧荣科技股份有限公司 | 快闪存储装置及其数据保护方法 |
CN103106354B (zh) * | 2011-11-14 | 2017-02-08 | 中颖电子股份有限公司 | 限制将存储装置中受保护的数据复制到pc端的方法 |
CN103425935A (zh) * | 2012-05-16 | 2013-12-04 | 侯方勇 | 基于地址的存储器数据加密方法和装置 |
CN114329361B (zh) * | 2022-03-03 | 2022-05-27 | 北京芯愿景软件技术股份有限公司 | 存储装置和数据读取方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930826A (en) * | 1997-04-07 | 1999-07-27 | Aplus Integrated Circuits, Inc. | Flash memory protection attribute status bits held in a flash memory array |
-
2006
- 2006-12-31 CN CN2006101564789A patent/CN101211319B/zh active Active
-
2008
- 2008-12-19 HK HK08113792.5A patent/HK1122879A1/xx unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930826A (en) * | 1997-04-07 | 1999-07-27 | Aplus Integrated Circuits, Inc. | Flash memory protection attribute status bits held in a flash memory array |
Non-Patent Citations (2)
Title |
---|
JP特开2002-351742A 2002.12.06 |
JP特开平7-182242A 1995.07.21 |
Also Published As
Publication number | Publication date |
---|---|
CN101211319A (zh) | 2008-07-02 |
HK1122879A1 (en) | 2009-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8028340B2 (en) | Piracy prevention using unique module translation | |
CN101425016B (zh) | 运行安装软件的方法和系统 | |
JP4770425B2 (ja) | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 | |
USRE44131E1 (en) | Storage device having function for coping with computer virus | |
CA2014868C (en) | Computer file protection system | |
CN101211319B (zh) | 一种用于存储装置的程序文件保护方法及保护装置 | |
US20030120938A1 (en) | Method of securing software against reverse engineering | |
CN102222196A (zh) | 验证自修改的计算机代码校验和的方法、装置及程序载体 | |
JP4931542B2 (ja) | ロード先情報に対する改ざん検証機能を備えたプログラムローダ、プログラムローダを含むプロセッサ、プロセッサを含むデータ処理装置、プログラムロード方法、及び集積回路 | |
CN105184118A (zh) | 一种基于代码碎片化的Android应用程序加壳保护方法及装置 | |
US10628562B2 (en) | Method for protecting a computer program from being influenced, and computer system | |
CN103942499A (zh) | 基于移动存储器的数据黑洞处理方法及移动存储器 | |
CN101226508A (zh) | 保护安全域以避免未授权的存储器访问的系统和方法 | |
CN105637486A (zh) | 内存完整性检查 | |
EP1745340B1 (en) | Intrusion detection during program execution in a computer | |
KR102459774B1 (ko) | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 | |
Krasov et al. | Methods for building a trusted environment in Unix operating systems based on the implementation of a digital watermark | |
JP4807289B2 (ja) | 情報処理装置及びファイル処理方法並びにプログラム | |
CN100495285C (zh) | 一种软件保护的方法 | |
CN112784261B (zh) | 用于程序运行的方法及相应的系统、计算机设备和介质 | |
CN102117394A (zh) | 检测是否已经复制了计算机文件的方法和装置以及能够进行这种检测的方法和装置 | |
RU2011147225A (ru) | Надежная защита от копирования и/или воспроизведения | |
WO2018081093A1 (en) | Software algorithm security | |
CN103942492A (zh) | 单机版数据黑洞处理方法及计算设备 | |
CN112528240A (zh) | 面向密码代码的自动化程序敏感数据保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1122879 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1122879 Country of ref document: HK |