掌桥专利:专业的专利平台
掌桥专利
首页

用于USB存储器的安装程序防拷贝方法及系统

文献发布时间:2024-04-18 19:52:40


用于USB存储器的安装程序防拷贝方法及系统

技术领域

本发明涉及安装程序防拷贝技术领域,特别地,涉及一种用于USB存储器的安装程序防拷贝方法及系统、电子设备、计算机可读取的存储介质。

背景技术

随着计算机技术的飞速发展,各类软件应用程序的安装方式也不断更新和演进,在数据的传输过程中,USB存储器作为一种方便、快捷的工具,广泛应用于各个领域,如企业、教育、科研等。由于USB存储器具有易携带和高容量的特点,越来越多的软件开发商将安装程序存储在USB存储器上以便用户进行安装和使用。然而,这也带来了一些潜在的问题,其中之一便是安装程序的非法复制和传播。

现有的USB存储器防拷贝方法可分为物理限制和软件限制两类。其中,物理限制是通过改变USB存储器硬件本身,如锁定USB接口、修改硬件连接等,从而限制USB存储器只能在特定设备上使用,然而,这种方法可能会对用户的使用便利性造成影响,且技术复杂,难以广泛推广。而软件限制则主要包括加密和版权管理两类方法,其中,加密方法是使用软件对USB存储器中的数据进行加密,只有授权用户能够解密并访问,但加密解密过程需要额外的加载时间,给用户带来不必要的等待,并且一些加密方法需要增加独立的加密芯片以追求更灵活的加密管控,但其复杂度和生产成本也会大幅增加;版权管理则是将许可证信息嵌入软件中以限制数据的访问、传播和复制,但通常需要通过网络与外部服务器连接,无法离线使用,使用场景有限。

发明内容

本发明提供了一种用于USB存储器的安装程序防拷贝方法及系统、电子设备、计算机可读取的存储介质,以解决现有的USB存储器防拷贝方法存在的上述缺点。

根据本发明的一个方面,提供一种用于USB存储器的安装程序防拷贝方法,包括以下内容:

在USB存储器中写入防拷贝标识符和安装程序;

在启动安装程序时,基于防拷贝标识符检测运行环境是否合法,若合法则继续执行安装程序,若不合法则退出安装程序。

进一步地,所述在USB存储器中写入防拷贝标识符和安装程序的过程具体为:

在USB存储器中创建一个安装文件,并在安装文件中写入数据直至占满USB存储器的全部存储空间;

将安装文件的文件指针移动至倒数第n个字节,在末尾的n个字节中重复写入数据直至存储块损坏;

隐藏损坏存储块的坏块信息;

将安装程序的文件数据从安装文件的开始位置写入,并对安装文件进行截断处理,得到安装程序段和验证文件段。

进一步地,所述隐藏损坏存储块的坏块信息的过程包括以下内容:

采用物理寻址的方式将损坏存储块地第一个Page的空闲区中的第6个字节修改为0xff,并删除坏块表中关于损坏存储块的记录。

进一步地,所述基于防拷贝标识符检测运行环境是否合法的过程包括以下内容:

安装程序运行后,检查是否在USB存储器中运行,若是则继续执行安装程序,否则退出安装程序;

将文件指针移动至验证文件段的倒数第n个字节并尝试读取文件信息,若倒数n个字节读取全部失败,则判定运行环境合法,否则判定运行环境不合法。

进一步地,在确定安装程序是在USB存储器中运行后,还包括以下内容:

检测安装程序段和验证文件段的大小,若大小异常则退出安装程序,否则继续执行。

进一步地,在基于验证文件段的倒数n个字节读取是否全部失败来判定运行环境的合法性之后,还包括以下内容:

再次隐藏损坏存储块的坏块信息。

另外,本发明还提供一种用于USB存储器的安装程序防拷贝系统,包括:

数据写入模块,用于在USB存储器中写入防拷贝标识符和安装程序;

防拷贝执行模块,用于在启动安装程序时,基于防拷贝标识符检测运行环境是否合法,若合法则继续执行安装程序,若不合法则退出安装程序。

进一步地,所述数据写入模块包括:

文件创建单元,用于在USB存储器中创建一个安装文件,并在安装文件中写入数据直至占满USB存储器的全部存储空间;

数据写入单元,用于将安装文件的文件指针移动至倒数第n个字节,在末尾的n个字节中重复写入数据直至存储块损坏;

信息隐藏单元,用于隐藏损坏存储块的坏块信息;

文件处理单元,用于将安装程序的文件数据从安装文件的开始位置写入,并对安装文件进行截断处理,得到安装程序段和验证文件段。

另外,本发明还提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。

另外,本发明还提供一种计算机可读取的存储介质,用于存储在USB存储器上实现安装程序防拷贝的计算机程序,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。

本发明具有以下效果:

本发明的用于USB存储器的安装程序防拷贝方法,通过在USB存储器中写入防拷贝标识符和安装程序,在设备对USB存储器进行读写操作后并启动安装程序时,可以基于防拷贝标识符来检测安装程序的运行环境是否合法,只有合法才能继续执行安装程序。本发明采用防拷贝标识符的方式来实现防拷贝功能,不需要额外的加解密过程,实施成本低,而且不需要与任何第三方通信,实现了零交互,可实现离线使用,大大提升了适用性。

另外,本发明的用于USB存储器的安装程序防拷贝系统同样具有上述优点。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例的用于USB存储器的安装程序防拷贝方法的流程示意图。

图2是图1中步骤S1的子流程示意图。

图3是图1中步骤S2的子流程示意图。

图4是图1中步骤S2的另一子流程示意图。

图5是图1中步骤S2的又一子流程示意图。

图6是本发明另一实施例的用于USB存储器的安装程序防拷贝系统的模块结构示意图。

图7是图6中数据写入模块的单元结构示意图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。

可以理解,如图1所示,本发明的优选实施例提供一种用于USB存储器的安装程序防拷贝方法,包括以下内容:

步骤S1:在USB存储器中写入防拷贝标识符和安装程序;

步骤S2:在启动安装程序时,基于防拷贝标识符检测运行环境是否合法,若合法则继续执行安装程序,若不合法则退出安装程序。

可以理解,本实施例的用于USB存储器的安装程序防拷贝方法,通过在USB存储器中写入防拷贝标识符和安装程序,在设备对USB存储器进行读写操作后并启动安装程序时,可以基于防拷贝标识符来检测安装程序的运行环境是否合法,只有合法才能继续执行安装程序。本发明采用防拷贝标识符的方式来实现防拷贝功能,不需要额外的加解密过程,实施成本低,而且不需要与任何第三方通信,实现了零交互,可实现离线使用,大大提升了适用性。

可以理解,如图2所示,在所述步骤S1中,所述在USB存储器中写入防拷贝标识符和安装程序的过程具体为:

步骤S11:在USB存储器中创建一个安装文件,并在安装文件中写入数据直至占满USB存储器的全部存储空间;

步骤S12:将安装文件的文件指针移动至倒数第n个字节,在末尾的n个字节中重复写入数据直至存储块损坏;

步骤S13:隐藏损坏存储块的坏块信息;

步骤S14:将安装程序的文件数据从安装文件的开始位置写入,并对安装文件进行截断处理,得到安装程序段和验证文件段。

具体地,先在USB存储器中创先一个后缀为可执行文件的安装文件X,在安装文件X中写入数据直到占满USB存储器的全部存储空间,此时USB存储器无法再写入数据。

然后,将安装文件X的文件指针移动至倒数第n个字节处,在末尾的n个字节位置重复写入数据,直至写入次数超过最大次数,此时末尾n个字节位置所对应的存储块被损坏。可以理解,USB存储器的存储单元被组织为块(Block),一个块中又包含了多个页(Page),每个页由有效区和空闲区OOB(Out of Band)组成,其中,OOB用于存储元数据和纠错码等辅助信息,这些区域位于每个物理页中,不包括主要的用户数据。当一个块中有多个存储单元损坏时,存储块的第一个Page的OOB区中的第6个字节将被标记为非0xff,用于表示该存储块为坏块,不能进行擦除操作。同时,管理程序还会维持一张坏块表BBT(Bad Block Table)来便于快速查找。

接着,隐藏损坏存储块的坏块信息,防止在安装程序时通过坏块信息进行反向破解。其中,所述隐藏损坏存储块的坏块信息的过程包括以下内容:

采用物理寻址的方式将损坏存储块地第一个Page的空闲区中的第6个字节修改为0xff,并删除坏块表中关于损坏存储块的记录。

具体地,通过步骤S11和步骤S12的处理,末尾n个字节所对应的存储块已经被标记为坏块,此时可通过物理寻址的方式查找BBT,以找出损坏存储块的位置,再将损坏存储块的第一个Page的OOB区中的第6个字节修改为0xff,从而将损坏存储块标记为正常块,隐藏坏块信息,并在BBT中删除损坏存储块的记录。

然后,将安装程序打包成一个可执行文件,并读取安装程序文件的数据后,从安装文件X的开始位置写入,并对安装文件X进行截断处理,前一部分作为安装程序段,后一部分作为验证文件段。

可以理解,本发明利用坏块标志信息来生成防拷贝标识符并隐藏标识符,标识符与USB存储器绑定且无法被复制,能够有效地防止安装程序的非授权复制和传播。

另外,在本发明的其它实施例中,也可以采用USB存储器的固件信息或者采用自定义数据写入到USB存储器中作为防拷贝标识符,后续通过识别USB存储器读取的固件信息或自定义数据是否与预设信息或预设数据一致,来判定USB存储器是正版还是盗版。但USB存储器的固件信息有可能是重复或者伪造的,而自定义写入的数据是易丢失的,相比于采用坏块标志信息作为防拷贝标识符,安全性和可靠性较差。

可以理解,如图3所示,在所述步骤S2中,所述基于防拷贝标识符检测运行环境是否合法的过程包括以下内容:

步骤S21:安装程序运行后,检查是否在USB存储器中运行,若是则继续执行安装程序,否则退出安装程序;

步骤S23:将文件指针移动至验证文件段的倒数第n个字节并尝试读取文件信息,若倒数n个字节读取全部失败,则判定运行环境合法,否则判定运行环境不合法。

具体地,在设备对USB存储器进行读写操作并运行安装程序段后,先检查安装程序是否在USB存储器中运行,例如,先获取安装文件X的路径,进而获取安装文件X所在的磁盘盘符,再获取所有磁盘的驱动器信息,从而可以判断当前运行的安装文件X是否在U盘中。若判定安装程序是在USB存储器中运行,则继续执行安装程序段,否则退出安装程序。然后,将安装文件X的文件指针移动至验证文件段的倒数第n个字节位置处,尝试读取文件信息,如果倒数n个字节读取全部失败,会显示对应的存储块已经损坏,则判定运行环境合法,USB存储器为正版,继续执行安装程序,否则判定USB存储器为拷贝之后的盗版,则退出安装程序。

可以理解,本发明通过事先对USB存储器中特定位置处的存储块进行重复写入,导致存储块损坏后隐藏坏块信息,在运行安装程序时,通过判断特定存储块的文件信息能否正常读取来识别USB存储器为正版或者盗版,利用坏块标识信息作为防拷贝标识符,使得防拷贝标识符与USB存储器绑定且无法被复制,能够有效地防止安装程序的非授权复制和传播。

可选地,如图4所示,在所述步骤S2中,在确定安装程序是在USB存储器中运行后,还包括以下内容:

步骤S22:检测安装程序段和验证文件段的大小,若大小异常则退出安装程序,否则继续执行。

可以理解,在确定安装程序在USB存储器中运行后,再通过检测安装程序段和验证文件段的文件大小进行再次判断,若安装文件和验证文件段的文件大小与步骤S14中截断处理得到的文件大小一致,则判定安装文件X正常,则继续执行安装程序,否则判定安装文件X异常,则退出安装程序。

作为优选的,如图5所示,在所述步骤S2中,在基于验证文件段的倒数n个字节读取是否全部失败来判定运行环境的合法性之后,还包括以下内容:

步骤S24:再次隐藏损坏存储块的坏块信息。

其中,所述步骤S24的具体执行过程与步骤S13相同,具体过程在此不再赘述。可以理解,在执行完成一次安装程序后,损坏存储块的坏块信息会再次被标记,此时需要再次隐藏损坏存储块的坏块信息,防止不法分子通过坏块信息进行反向破解,保证了下次执行安装程序时防拷贝的可靠性和有效性,同时有利于实现正版USB存储器的重复利用。

另外,如图6所示,本发明的另一实施例还提供一种用于USB存储器的安装程序防拷贝系统,优选采用如上所述的安装程序防拷贝方法,包括:

数据写入模块,用于在USB存储器中写入防拷贝标识符和安装程序;

防拷贝执行模块,用于在启动安装程序时,基于防拷贝标识符检测运行环境是否合法,若合法则继续执行安装程序,若不合法则退出安装程序。

可以理解,本实施例的用于USB存储器的安装程序防拷贝系统,通过在USB存储器中写入防拷贝标识符和安装程序,在设备对USB存储器进行读写操作后并启动安装程序时,可以基于防拷贝标识符来检测安装程序的运行环境是否合法,只有合法才能继续执行安装程序。本发明采用防拷贝标识符的方式来实现防拷贝功能,不需要额外的加解密过程,实施成本低,而且不需要与任何第三方通信,实现了零交互,可实现离线使用,大大提升了适用性。

另外,如图7所示,所述数据写入模块具体包括:

文件创建单元,用于在USB存储器中创建一个安装文件,并在安装文件中写入数据直至占满USB存储器的全部存储空间;

数据写入单元,用于将安装文件的文件指针移动至倒数第n个字节,在末尾的n个字节中重复写入数据直至存储块损坏;

信息隐藏单元,用于隐藏损坏存储块的坏块信息;

文件处理单元,用于将安装程序的文件数据从安装文件的开始位置写入,并对安装文件进行截断处理,得到安装程序段和验证文件段。

可以理解,本系统实施例的各个模块和单元与上述方法实施例的各个步骤相对应,故各个模块和单元的具体工作原理在此不再赘述,对应参考上述方法实施例即可。

另外,本发明的另一实施例还提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。

另外,本发明的另一实施例还提供一种计算机可读取的存储介质,用于存储在USB存储器上实现安装程序防拷贝的计算机程序,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。

一般计算机可读取存储介质的形式包括:软盘(floppy disk)、可挠性盘片(flexibledisk)、硬盘、磁带、任何其与的磁性介质、CD-ROM、任何其余的光学介质、打孔卡片(punch cards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、快闪可抹除可编程只读存储器(FLASH-EPROM)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输一计算机数据信号的总线的导线。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种抗疲劳金属材料及其锻造工艺
  • 一种增加金属材料抗疲劳性能的表面处理工艺
技术分类

06120116331676