[go: up one dir, main page]

CN111191194B - Off-line use permission system for multi-core processor software integrated development environment - Google Patents

Off-line use permission system for multi-core processor software integrated development environment Download PDF

Info

Publication number
CN111191194B
CN111191194B CN201911330749.1A CN201911330749A CN111191194B CN 111191194 B CN111191194 B CN 111191194B CN 201911330749 A CN201911330749 A CN 201911330749A CN 111191194 B CN111191194 B CN 111191194B
Authority
CN
China
Prior art keywords
software
information
host
license code
sub
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
Application number
CN201911330749.1A
Other languages
Chinese (zh)
Other versions
CN111191194A (en
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.)
Beijing Microelectronic Technology Institute
Mxtronics Corp
Original Assignee
Beijing Microelectronic Technology Institute
Mxtronics Corp
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 Beijing Microelectronic Technology Institute, Mxtronics Corp filed Critical Beijing Microelectronic Technology Institute
Priority to CN201911330749.1A priority Critical patent/CN111191194B/en
Publication of CN111191194A publication Critical patent/CN111191194A/en
Application granted granted Critical
Publication of CN111191194B publication Critical patent/CN111191194B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明一种多核处理器软件集成开发环境离线使用许可系统,适用于运行在离线主机上的多核处理器软件集成开发环境。通过在多核处理器软件集成开发环境每次启动时比较当前启动时间和上次合法启动时间,判断是否存在篡改主机时间以破解多核处理器软件集成开发环境使用许可的行为存在。在此基础上,通过对主机唯一身份标示、软件使用有效期信息的有限次组合、切分以及对切分后的信息字段和合法启动时间进行加密,再将加密后的信息分别存放在多个主机位置的方法,进一步加强了对软件使用许可的保护。该方法能够有效抵御通过将离线主机时间修改到软件使用有效期内,从而“绕过”软件使用许可判断机制的破解方法。

Figure 201911330749

The invention provides a multi-core processor software integrated development environment offline use licensing system, which is suitable for the multi-core processor software integrated development environment running on the offline host. By comparing the current startup time and the last legal startup time each time the multi-core processor software integrated development environment is started, it is judged whether there is an act of tampering with the host time to crack the use license of the multi-core processor software integrated development environment. On this basis, through the limited number of combinations of the unique identity of the host, the validity period of software use, segmentation, and encryption of the segmented information fields and legal startup time, and then the encrypted information is stored in multiple hosts. The location method further strengthens the protection of software licenses. The method can effectively resist the cracking method that "bypasses" the software use license judgment mechanism by modifying the offline host time to the validity period of the software use.

Figure 201911330749

Description

一种多核处理器软件集成开发环境离线使用许可系统A multi-core processor software integrated development environment offline license system

技术领域technical field

本发明提出一种多核处理器软件集成开发环境离线使用许可系统,属于计算机软件安全技术领域。The invention provides a multi-core processor software integrated development environment offline use licensing system, which belongs to the technical field of computer software security.

背景技术Background technique

随着微电子技术的不断发展,多核处理器已经成为用于计算机核心控制、计算的主流部件。为了配合多核处理器的程序设计,提供用户的劳动生产率,需要研制与之配套的软件集成开发环境。于此同时,为了保护多核处理器研用双方的商业利益,需要在集成开发环境软件中设计使用许可控制机制,用户必须获得许可后才可以合法使用多核处理器软件集成开发环境进行多核处理器的程序开发。With the continuous development of microelectronics technology, multi-core processors have become mainstream components for computer core control and computing. In order to cooperate with the program design of the multi-core processor and provide the user's labor productivity, it is necessary to develop a software integrated development environment supporting it. At the same time, in order to protect the commercial interests of both parties involved in the development of multi-core processors, it is necessary to design a license control mechanism in the integrated development environment software. Users must obtain permission before they can legally use the multi-core processor software integrated development environment for multi-core processors. program development.

对于软件使用许可,从软件许可的物理形式上看,可以分为硬件许可和软件许可两种方式。其中,硬件许可是设计特殊的加密硬件,如:USB软件加密狗,每当软件启动时,确定该加密硬件正确工作且具有合法软件使用许可后,该软件才能正确运行;软件许可是在被保护的软件中插入特殊的许可代码,在获得相应的加密软件使用许可码且解码正确后,软件才能正确使用。硬件许可相比软件许可安全性相对较高,但成本更高,目前已经很少使用了。For software licenses, from the point of view of the physical form of software licenses, it can be divided into hardware licenses and software licenses. Among them, the hardware license is specially designed encryption hardware, such as: USB software dongle. Whenever the software starts, it is determined that the encryption hardware works correctly and has a legal software license, the software can run correctly; the software license is protected A special license code is inserted into the encrypted software, and the software can only be used correctly after the corresponding encrypted software license code is obtained and decoded correctly. Hardware licenses are relatively more secure than software licenses, but they are more expensive and are rarely used today.

随着互联网高速发展,运行软件的主机基本具备连接互联网的能力,因此软件使用许可基本上通过互联网连接到软件开发商的服务器获得软件授权。但是,软件使用单位考虑到保护本单位的商业利益,在很多应用场景中,依旧要求运行软件的主机保持离线状态。所以,对于软件研制单位而言,在控制成本的约束下,开发面向离线主机的软件许可设计方法是非常必要的。With the rapid development of the Internet, the host running the software basically has the ability to connect to the Internet, so the software license is basically connected to the server of the software developer through the Internet to obtain the software authorization. However, considering the protection of the commercial interests of the software user, in many application scenarios, the host running the software is still required to remain offline. Therefore, for software development units, under the constraint of cost control, it is very necessary to develop a software licensing design method for offline hosts.

目前常用的软件许可主要包括两部分内容,一个是对主机身份的确认,另一个是对软件使用时间长度的控制。对于主机身份确认,通常采用硬盘序列号、网卡物理地址等信息作为主机唯一身份信息;对于软件使用时间长度控制,通常采用“起始时间+使用时长”的方式,即:从某一个时间开始、直到另一时间的特定时间段内可以合法使用该软件。Currently commonly used software licenses mainly include two parts, one is to confirm the identity of the host, and the other is to control the length of time the software is used. For host identity confirmation, information such as hard disk serial number and network card physical address is usually used as the unique identity information of the host; for software use time length control, the method of "start time + use time" is usually used, that is: starting from a certain time, The software can be legally used for a specified period of time until another time.

然而,对于离线的主机,由于缺乏来自互联网远端服务器的授时,其本地时间是可以随意更改的。对于上述“起始时间+使用时长”的软件许可方式而言,在超过软件许可授权的合法使用时间后,只需要将主机的时间改回到使用有效期内,就可以实现对软件许可机制的“欺骗”,继续使用该软件,导致软件研制单位的合法利益受到侵害。通过“时间欺骗”的方式破解软件使用许可基本不需要专业知识和成本,是普遍使用的软件使用许可破解方式之一。However, for an offline host, its local time can be changed at will due to the lack of timing from a remote server on the Internet. For the above-mentioned software licensing method of "starting time + duration of use", after the legal use time authorized by the software license is exceeded, the time of the host only needs to be changed back to the validity period of use, and the "software licensing mechanism" can be realized. deceive” and continue to use the software, resulting in the infringement of the legitimate interests of the software development unit. Cracking software licenses by means of "time deception" basically does not require professional knowledge and cost, and is one of the commonly used methods for cracking software licenses.

为了加强多核处理器软件集成开发环境的保护力度,提高破解的难度和成本,必须设计一种能够抵御“时间欺骗”这种破解方式的软件使用许可设计方法。In order to strengthen the protection of the multi-core processor software integrated development environment and increase the difficulty and cost of cracking, a software license design method that can resist the cracking method of "time cheating" must be designed.

发明内容SUMMARY OF THE INVENTION

本发明解决的技术问题是:为了克服以上现有的技术不足,提出一种多核处理器软件集成开发环境离线使用许可系统,以便抵御通过将离线主机的时间调整到软件使用许可的有效时间段内,从而继续获得多核处理器软件集成开发环境使用权的破解方法。The technical problem solved by the present invention is: in order to overcome the above existing technical deficiencies, a multi-core processor software integrated development environment offline license system is proposed, so as to resist adjusting the time of the offline host to the valid time period of the software license. , so as to continue to obtain the cracking method of the right to use the multi-core processor software integrated development environment.

本发明的技术解决方案是:The technical solution of the present invention is:

一种多核处理器软件集成开发环境离线使用许可系统,包括:软件使用许可码生成模块和软件使用许可检查模块;A multi-core processor software integrated development environment offline use license system, comprising: a software use license code generation module and a software use license check module;

软件使用许可码生成模块:接收外部输入的主机身份唯一标识、软件使用起始日期和软件使用有效时长,根据所述外部输入主机身份唯一标识、软件使用起始日期和软件使用有效时长生成软件使用许可码;所述软件使用许可码的生成包括步骤:子信息段生成、信息加密和子信息段组合;Software use license code generation module: Receive the externally input unique identifier of the host, the starting date of software use and the valid duration of software use, and generate the software usage according to the externally input unique identifier of the host, the starting date of software use and the valid duration of software use License code; the generation of the software use license code includes the steps of: sub-information segment generation, information encryption and sub-information segment combination;

其中,所述主机身份唯一标识是指运行多核处理器软件集成开发环境主机的身份唯一标示;所述软件使用起始日期是指允许多核处理器软件集成开发环境开始使用的日期;所述软件使用有效时长是指多核处理器软件集成开发环境从起始日期开始,正常使用的时间长度;Wherein, the unique identification of the host identity refers to the unique identification of the host running the multi-core processor software integrated development environment; the software use start date refers to the date when the multi-core processor software integrated development environment is allowed to be used; the software uses Valid duration refers to the duration of normal use of the multi-core processor software integrated development environment from the start date;

软件使用许可码检查模块:接收外部输入的当前主机身份唯一标识、当前主机运行时间和上次软件正确使用后保存的多个加密信息段,根据软件使用许可码生成模块生成的所述软件使用许可码和当前主机身份唯一标识和当前主机运行时间,判定是否允许多核处理器软件集成开发环境在当前主机上运行,并将判定结果作为输出量发送给外部多核处理器软件集成开发环境;Software license code checking module: receives the externally inputted unique identifier of the current host, the current host running time, and multiple encrypted information segments saved after the last correct use of the software, and generates the software license according to the software license code generation module. code, the current host identity unique identifier and the current host running time, determine whether the multi-core processor software integrated development environment is allowed to run on the current host, and send the judgment result as the output to the external multi-core processor software integrated development environment;

其中,所述当前主机身份唯一标识是指当前准确启动多核处理器软件集成开发环境的主机身份唯一标识;所述当前主机运行时间是指当前启动多核处理器软件集成开发环境主机的时间;所述上次软件正确使用后保存的多个加密信息段是指多核处理器软件集成开发环境在上次正确启动后,软件使用许可码检查模块将正确启动信息加密保存后的结果。Wherein, the unique identifier of the current host identity refers to the unique identifier of the host that accurately starts the multi-core processor software integrated development environment at present; the current host running time refers to the time when the multi-core processor software integrated development environment host is currently started; the The multiple encrypted information segments saved after the last correct use of the software refers to the result that the software license code checking module encrypts and saves the correct starting information after the multi-core processor software integrated development environment is correctly started last time.

本发明与现有技术相比的有益效果是:The beneficial effects of the present invention compared with the prior art are:

1)本发明中,软件使用许可检查模块增加了启动时间检测机制以获得当前软件启动时间,并在许可结果输出部分将当前软件启动时间与软件许可起始时间和有效时长进行比较,软件启动时间在软件有效时长范围内时,才能允许软件启动。通过这种机制,可以有效抵御利用时间欺骗方式“绕过”软件使用许可、非法获得多核处理器软件集成开发环境使用权的攻击。1) In the present invention, the software license checking module adds a startup time detection mechanism to obtain the current software startup time, and compares the current software startup time with the software license startup time and the effective duration in the license result output part, and the software startup time The software can be started only when the software is valid for a period of time. Through this mechanism, attacks that "bypass" the software license and illegally obtain the right to use the multi-core processor software integrated development environment by means of time deception can be effectively resisted.

2)本发明中,软件使用许可检查模块的许可码保存部分能够将获得的软件使用许可码存放在主机磁盘内、有限的多个位置,是一种有效地隐藏软件使用许可码的方法。通过这种方法可以提高从主机磁盘中非法获得软件许可码的难度。2) In the present invention, the license code storage part of the software license check module can store the obtained software license code in the host disk in a limited number of locations, which is a method for effectively hiding the software license code. This method makes it more difficult to illegally obtain software license keys from host disks.

3)本发明中,软件使用许可码生成模块在对主机身份标示、软件有效使用起始日期和软件有效使用时长为输入三个信息进行加密运算、生成软件许可码的过程中,通过有限的多种组合方式对由三个信息组成信息的进行乱序,而不是采用直接将三个信息拼接在一起的方式。通过这种方法,可以提高利用主机唯一标示、软件有效使用起始日期和软件有效使用时长三个信息逆向分析加密算法、进而破解软件使用许可的难度。3) In the present invention, the software use license code generation module is in the process of inputting three pieces of information to carry out encryption operation and generating software license code for the host identity mark, the software effective use start date and the software effective use duration, through a limited number of This combination method shuffles the information composed of three pieces of information, instead of directly splicing the three pieces of information together. Through this method, it is possible to improve the difficulty of reversely analyzing the encryption algorithm by using three pieces of information, namely, the unique identifier of the host, the starting date of the effective use of the software, and the duration of the effective use of the software, so as to crack the software license.

附图说明Description of drawings

图1是本发明中软件使用许可码生成模块示意图;1 is a schematic diagram of a software license code generation module in the present invention;

图2是本发明中软件使用许可检查模块示意图。FIG. 2 is a schematic diagram of a software license checking module in the present invention.

具体实施方式Detailed ways

本发明一种多核处理器软件集成开发环境离线使用许可系统,包括:软件使用许可码生成模块和软件使用许可检查模块;The invention provides a multi-core processor software integrated development environment offline use license system, comprising: a software use license code generation module and a software use license check module;

如图1所示,软件使用许可码生成模块:接收外部输入的主机身份唯一标识、软件使用起始日期和软件使用有效时长,根据所述外部输入主机身份唯一标识、软件使用起始日期和软件使用有效时长生成软件使用许可码;所述软件使用许可码的生成包括步骤:子信息段生成、信息加密和子信息段组合;As shown in Figure 1, the software use license code generation module: receives the externally input host identity unique identifier, software use start date and software use valid duration, according to the external input host identity unique identifier, software use start date and software Generating a software license code using a valid duration; the generation of the software license code includes the steps of: generating sub-information segments, encrypting information, and combining sub-information segments;

其中,所述主机身份唯一标识是指运行多核处理器软件集成开发环境主机的身份唯一标示;所述软件使用起始日期是指允许多核处理器软件集成开发环境开始使用的日期;所述软件使用有效时长是指多核处理器软件集成开发环境从起始日期开始,正常使用的时间长度;Wherein, the unique identification of the host identity refers to the unique identification of the host running the multi-core processor software integrated development environment; the software use start date refers to the date when the multi-core processor software integrated development environment is allowed to be used; the software uses Valid duration refers to the duration of normal use of the multi-core processor software integrated development environment from the start date;

如图2所示,软件使用许可码检查模块:接收外部输入的当前主机身份唯一标识、当前主机运行时间和上次软件正确使用后保存的多个加密信息段,根据软件使用许可码生成模块生成的所述软件使用许可码和当前主机身份唯一标识和当前主机运行时间,判定是否允许多核处理器软件集成开发环境在当前主机上运行,并将判定结果作为输出量发送给外部多核处理器软件集成开发环境;As shown in Figure 2, the software license code checking module: receives the unique identifier of the current host from the external input, the current host running time and multiple encrypted information segments saved after the last software was used correctly, and generates them according to the software license code generation module. The software uses the license code and the current host identity unique identifier and the current host running time, determine whether to allow the multi-core processor software integrated development environment to run on the current host, and send the judgment result as the output to the external multi-core processor software integration development environment;

其中,所述当前主机身份唯一标识是指当前准确启动多核处理器软件集成开发环境的主机身份唯一标识;所述当前主机运行时间是指当前启动多核处理器软件集成开发环境主机的时间;所述上次软件正确使用后保存的多个加密信息段是指多核处理器软件集成开发环境在上次正确启动后,软件使用许可码检查模块将正确启动信息加密保存后的结果。Wherein, the unique identifier of the current host identity refers to the unique identifier of the host that accurately starts the multi-core processor software integrated development environment at present; the current host running time refers to the time when the multi-core processor software integrated development environment host is currently started; the The multiple encrypted information segments saved after the last correct use of the software refers to the result that the software license code checking module encrypts and saves the correct starting information after the multi-core processor software integrated development environment is correctly started last time.

主机身份唯一标识是指主机中能排他的表示主机身份的特征信息,具体为:硬盘序列号或以太网MAC地址。The unique identifier of the host identity refers to the characteristic information in the host that can exclusively represent the identity of the host, specifically: the serial number of the hard disk or the Ethernet MAC address.

软件使用许可码生成模块中,子信息段生成步骤首先将外部输入的主机身份唯一标识、软件使用起始日期、软件使用有效时长三个信息进行组合,再将组合后的信息拆分成多个子信息段;In the software license code generation module, the sub-information segment generation step first combines the externally inputted unique identifier of the host, the start date of software use, and the effective duration of software use, and then splits the combined information into multiple sub-sections. information segment;

其中,外部输入的主机身份唯一标识、软件使用起始日期、软件使用有效时长三个信息组合方式并不限定,但在依据本系统描述进行编码实现时,只能采用一种组合方式;拆分子信息段时,子信息段的数量、每个子信息段的长度也不限定,但在依据本系统描述进行编码实现时,只能采用一种方式拆分得到子信息段。Among them, the combination of the externally input unique identifier of the host, the start date of software use, and the effective duration of software use is not limited, but only one combination can be used when coding is implemented according to the description of this system; In the case of information segments, the number of sub-information segments and the length of each sub-information segment are also not limited, but when coding is implemented according to the description of this system, only one way can be used to split the sub-information segments to obtain the sub-information segments.

软件使用许可码生成模块中,所述信息加密对每个子信息段都进行加密处理,获得加密子信息段;In the software license code generation module, the information encryption performs encryption processing on each sub-information segment to obtain an encrypted sub-information segment;

其中,加密算法不固定,但在依据本系统描述进行编码实现时,只能采用一种加密算法;Among them, the encryption algorithm is not fixed, but only one encryption algorithm can be used when coding is implemented according to the description of this system;

软件使用许可码生成模块中,所述子信息段组合将信息加密步骤生成的多个加密子信息段进行组合,生成软件使用许可码。In the software license code generation module, the sub-information segment combination combines multiple encrypted sub-information segments generated by the information encryption step to generate the software license code.

其中,加密子信息段组合方式并不限定,但在依据本系统描述进行编码实现时,只能采用一种组合方式。Wherein, the combination mode of the encrypted sub-information segments is not limited, but only one combination mode can be used when coding is implemented according to the description of this system.

软件使用许可码检查模块中,对于从外部接收到的软件使用许可码,通过子信息段拆分、信息解密、子信息段组合三个步骤解析得到软件使用许可码中包含的主机身份唯一标识、软件使用起始日期和软件使用有效时长。In the software license code checking module, for the software license code received from the outside, the unique identifier of the host identity contained in the software license code, The starting date of software use and the effective duration of software use.

其中,子信息段拆分执行的是软件使用许可码生成模块中,子信息段组合的逆操作,即按照与子信息段组合相同的规则,将软件使用许可码拆分成多个加密子信息段;信息解密执行的是软件使用许可码生成模块中,信息加密的逆操作,即按照与信息加密对应的解密算法对多个加密子信息段进行解密,生成对应的解密子信息段;子信息段组合执行的是软件使用许可码生成模块中,子信息段生成的逆操作,即按照与子信息段生成时的方式,将多个子信息段重新组合起来,从而完成从软件使用许可码中提取主机身份唯一标示、软件使用起始日期、软件使用有效时长。The sub-information segment splitting executes the inverse operation of the sub-information segment combination in the software license code generation module, that is, according to the same rules as the sub-information segment combination, the software license code is split into multiple encrypted sub-information The information decryption executes the inverse operation of the information encryption in the software license code generation module, that is, according to the decryption algorithm corresponding to the information encryption, decrypts multiple encrypted sub-information segments to generate corresponding decrypted sub-information segments; sub-information The segment combination executes the inverse operation of the sub-information segment generation in the software license code generation module, that is, recombines multiple sub-information segments in the same way as when the sub-information segment was generated, so as to complete the extraction from the software license code. The unique identification of the host, the start date of software use, and the effective duration of software use.

在软件使用许可码检查模块首次运行时,其从软件使用许可码中提取主机身份唯一标示、软件使用起始日期、软件使用有效时长完后,需要与外部输入的当前主机身份唯一标识和当前主机运行时间进行比较,以判断是否允许多核处理器软件集成开发环境能否正确启动;When the software license code checking module runs for the first time, it extracts the unique identifier of the host identity, the starting date of software use, and the valid duration of the software use from the software license code, and needs to match the unique identifier of the current host and the current host with the externally inputted unique identifier of the current host. The runtime is compared to determine whether the multi-core processor software integrated development environment is allowed to start correctly;

其中,比较主机身份标识时,需要比较外部输入的当前主机身份唯一标识是否与从软件使用许可码中提取到的主机身份唯一标识完全一致,若一致,则通过比较比较,否则比较不通过;比较软件使用时间时,首先将从软件使用许可码中提取到的软件使用起始日期和软件使用有效时长相加,得到软件正确使用周期,再将比较当前主机运行时间是否落在软件正确使用周期中,若落在软件正确使用周期,则比较通过,否则比较不通过;当主机身份唯一标识和软件使用时间两者比较都通过时,则认为软件使用许可码有效,向外部输出允许多核处理器软件集成开发环境正确运行,否则输出不允许多核处理器软件集成开发环境正确运行。Among them, when comparing the host IDs, it is necessary to compare whether the current host ID uniquely input from the outside is completely consistent with the host ID unique ID extracted from the software license code. When the software usage time is calculated, firstly add the software usage start date extracted from the software usage license code and the software usage valid duration to obtain the correct software usage period, and then compare whether the current host running time falls within the software correct usage period. , if it falls within the correct use cycle of the software, the comparison is passed, otherwise it is not passed; when both the unique identifier of the host identity and the software use time pass, the software license code is considered valid, and the multi-core processor software is allowed to be output externally. The IDE is running correctly, otherwise the output does not allow the multi-core processor software IDE to function correctly.

当软件使用许可码检查模块允许多核处理器软件集成开发环境运行时,需要通过信息加密、子信息段生成、子信息段存储三个步骤对本次正确启动信息进行保存;When the software license code checking module allows the multi-core processor software integrated development environment to run, it needs to save the correct startup information through three steps of information encryption, sub-information segment generation, and sub-information segment storage;

其中,本次正确启动信息包含软件使用许可码和当前主机运行时间两个信息;信息加密可以采用多种加密算法,但在依据本系统描述进行编码实现时,只能采用一种加密算法,该加密算法与软件使用许可码中的加密算法无需一致;子信息段生成对加密后的本次软件有效启动信息进行拆分,形成多个加密子信息段,拆分方法可使用多种方式,但在依据本系统描述进行编码实现时,只能采用一种加密算法;子信息段存储将多个加密子信息段保存在当前主机磁盘的多个位置,依据本系统描述进行编码实现时,每个加密子信息段的位置必须固定。Among them, the correct startup information this time includes the software license code and the current host running time; information encryption can use a variety of encryption algorithms, but only one encryption algorithm can be used when coding according to the description of this system. The encryption algorithm does not need to be consistent with the encryption algorithm in the software license code; the sub-information segment generation splits the encrypted effective startup information of the current software to form multiple encrypted sub-information segments. When coding according to the description of this system, only one encryption algorithm can be used; the sub-information segment storage stores multiple encrypted sub-information segments in multiple locations of the current host disk, and when coding is implemented according to the description of this system, each The position of the encrypted subsections must be fixed.

当软件使用许可码检查模块再次运行时,首先需要获得上次正确启动信息,通过子信息段读取、子信息段组合、信息解密三个步骤得到软件使用许可码和上次软件正确启动时间,再从软件使用许可码中提取到主机身份唯一标识、软件使用起始日期、软件使用有效时长;再次,使用当前主机身份唯一标识、当前主机运行时间、上次软件正确启动时间、主机身份唯一标识、软件使用起始日期、软件使用有效时长五个信息进行比较,判断是否允许本次多核处理器软件集成开发环境正确启动;When the software license code checking module runs again, it first needs to obtain the last correct startup information, and obtain the software license code and the last correct software startup time through the three steps of sub-information segment reading, sub-information segment combination, and information decryption. Then extract the unique identifier of the host identity, the starting date of software use, and the valid duration of the software use from the software license code; again, use the unique identifier of the current host identity, the running time of the current host, the last time the software was started correctly, and the unique identifier of the host identity. 、Comparing five pieces of information, the starting date of software use and the effective duration of software use, to determine whether the multi-core processor software integrated development environment is allowed to start correctly;

其中,子信息段读取执行的操作为所述子信息段存储的逆操作,从当前主机磁盘中多个位置读取到加密子信息段;子信息段组合执行的操作为所述子信息段生成的逆操作,得到加密的上次软件正确启动信息;信息解密执行的操作为所述信息加密的逆操作,得到软件使用许可码和上次软件正确启动时间;主机身份标识比较方法具体为:比较主机身份标识时,需要比较外部输入的当前主机身份唯一标识是否与从软件使用许可码中提取到的主机身份唯一标识完全一致,若一致,则通过比较比较,否则比较不通过;软件使用时间比较的方法,具体为:比较软件使用时间时,首先将从软件使用许可码中提取到的软件使用起始日期和软件使用有效时长相加,得到软件正确使用周期,再比较当前主机运行时间是否落在软件正确使用周期中,若落在软件正确使用周期,则比较通过,否则比较不通过,同时,也需要比较当前主机运行时间是否晚于上次软件正确启动时间,若比较通过,则认为软件再次启动有效,否则认为发生了通过修改主机时间以破解软件使用许可码的企图,不允许软件启动。The operation performed by reading the sub-information segment is the inverse operation of the storage of the sub-information segment, and the encrypted sub-information segment is read from multiple locations in the current host disk; the operation performed by combining the sub-information segments is the sub-information segment. The generated inverse operation obtains the encrypted last software startup information correctly; the operation performed by the information decryption is the inverse operation of the information encryption, and obtains the software license code and the correct startup time of the last software; the host identity comparison method is specifically: When comparing the host IDs, it is necessary to compare whether the current host ID uniquely input from the outside is completely consistent with the host ID unique ID extracted from the software license code. The comparison method is as follows: when comparing the software usage time, firstly add the software usage start date extracted from the software usage license code and the software usage effective duration to obtain the correct usage period of the software, and then compare whether the current host running time is not. It falls in the correct software use cycle. If it falls within the software correct use cycle, the comparison is passed, otherwise it is not passed. At the same time, it is also necessary to compare whether the current host running time is later than the last software correct startup time. If the comparison passes, it is considered that It is valid to start the software again, otherwise it is considered that an attempt to crack the software license code by modifying the host time has occurred, and the software is not allowed to start.

当软件使用许可码检查模块再次运行并允许软件正确启动时,将本次正确启动信息保存到主机磁盘上。When the software uses the license code checking module to run again and allows the software to start correctly, save the information about this correct start to the host disk.

软件使用许可码检查模块中,当发生无法获得上次软件正确启动信息、当前主机身份唯一标识、当前主机运行时间中的任何一个时,都不允许软件启动,软件使用许可码检查模块恢复到等待首次运行状态,需要重新输入软件使用许可码。In the software license code check module, when any one of the last software startup information, the current host identity unique identifier, and the current host running time cannot be obtained, the software is not allowed to start, and the software license code check module returns to waiting. In the first running state, you need to re-enter the software license code.

本发明工作流程如下:The workflow of the present invention is as follows:

1)分别建立软件使用许可码生成模块和软件使用许可检查模块1) Establish a software license code generation module and a software license check module respectively

使用本发明所述方法时,软件研制方应首先建立软件使用许可码生成模块和软件使用许可检查模块。其中,软件使用许可码生成模块可以是一个独立的软件程序,它由软件研制方使用;软件使用许可检查模块可以是一个独立的软件程序,也可是一个嵌入在需要授权使用的软件中的一个软件模块。软件使用许可检查模块需要提供一个软件使用许可接口,通过该接口与被授权软件进行通信,实现授权信息的传递。When using the method of the present invention, the software developer should first establish a software license code generation module and a software license check module. Among them, the software license code generation module may be an independent software program, which is used by the software developer; the software license check module may be an independent software program, or a software embedded in the software that needs to be authorized for use. module. The software license checking module needs to provide a software license interface, and communicate with the authorized software through the interface to realize the transmission of authorization information.

2)通过软件使用许可码生成模块生成软件使用许可码2) Generate the software license code through the software license code generation module

软件使用许可码生成模块作为独立的软件程序,应需要输入和输出机制。通过输入机制,实现主机唯一身份信息、有效使用起始日期、有效使用时长三个信息的输入,通过输出机制,实现软件使用许可码的输出。为了生成软件使用许可码,软件使用许可码生成模块需要预置有限种输入信息组合机制和有限种输入信息切分机制。基于三个输入信息和内部预置的信息组合机制和信息切分机制,软件使用许可码生成模块首先从有限种输入信息组合机制中随机取出一种,根据这种机制对输入的主机唯一身份信息、有效使用起始日期、有效使用时长三个信息进行组合;其次,软件使用许可码生成模块从有限种信息切分机制中随机取出一种,根据这种机制对组合好的信息进行切分;再次,将切分好的信息字段输入到加密模块中进行加密;最后,按照顺序对完成加密的信息进行组合,形成最终的软件使用许可码。The software uses the license code generation module as an independent software program and should require input and output mechanisms. Through the input mechanism, the input of the host's unique identity information, the effective use start date, and the effective use duration is realized, and through the output mechanism, the output of the software license code is realized. In order to generate a software license code, the software license code generation module needs to preset a limited input information combination mechanism and a limited input information segmentation mechanism. Based on the three input information and the internal preset information combination mechanism and information segmentation mechanism, the software license code generation module first randomly selects one of the limited input information combination mechanisms. According to this mechanism, the unique identity information of the input host is , the effective use start date and the effective use duration are combined; secondly, the software license code generation module randomly selects one of the limited information segmentation mechanisms, and divides the combined information according to this mechanism; Thirdly, input the segmented information fields into the encryption module for encryption; finally, combine the encrypted information in sequence to form the final software license code.

3)软件首次启动时,软件使用许可检查模块判断该软件是否具有合法使用授权3) When the software is started for the first time, the software license checking module determines whether the software has legal license

软件首次启动时应触发软件使用许可检查模块启动,软件使用许可检查模块启动后,必须暂停软件启动过程,等待完成软件使用许可检查后再继续软件启动过程。When the software is started for the first time, the software license check module should be triggered to start. After the software license check module is started, the software start process must be suspended, and the software start process must be completed after the software license check is completed.

软件使用许可检查模块内部预置主机唯一身份信息、有效使用起始日期、有效使用时长三个信息的有限种组合方式和对组合后信息的有限种切分机制。这两个机制必须与软件许可码生成模块中预置的方式完全相同。同时,软件使用许可检查模块内部的解密模块也必须与软件许可码生成模块中的加密模块相对应,保证能够正确完成信息解密工作。The software license checking module is internally preset with the unique identity information of the host, the effective start date of effective use, and the effective use duration. There are limited combinations of three kinds of information, and limited kinds of segmentation mechanisms for the combined information. These two mechanisms must be exactly the same as those preset in the software license code generation module. At the same time, the decryption module inside the software license checking module must also correspond to the encryption module in the software license code generation module to ensure that the information decryption can be completed correctly.

软件使用许可检查模块通过输入界面接收由软件使用许可码生成模块生成的软件使用许可码后,开始判断软件使用许可码是否有效的工作。具体步骤如下:第一步,对软件使用许可码按照与软件使用许可码模块中顺序组合加密后信息的方式进行切分,并把多个子段分别输入到解密模块进行解密。第二步,对解密后的信息以与软件使用许可码模块中切分主机唯一身份信息、有效使用起始日期、有效使用时长三个信息相反的顺序对信息进行回复。回复时,由于软件许可码中没有携带两次信息组合方式的信息,因此软件使用许可检查模块需要对有限种切分方式的组合进行遍历,以便提取正确的信息。第三步,当提取出主机唯一身份信息、有效使用起始日期、有效使用时长三个信息后,软件使用许可检查模块需要判断软件使用许可码中的主机唯一身份信息是否与当前主机唯一身份信息一致;判断当主机时间是否处在软件使用许可范围内。如果两个判断均正确,则认为软件使用合法,运行软件继续启动;如果某一个判断不正确或者两个判断都不正确,则认为软件使用不合法,阻止软件继续启动并告知用户。After the software use license checking module receives the software use license code generated by the software use license code generation module through the input interface, it starts the work of judging whether the software use license code is valid. The specific steps are as follows: In the first step, the software license code is divided according to the method of sequentially combining the encrypted information with the software license code module, and multiple sub-segments are respectively input into the decryption module for decryption. The second step is to reply to the decrypted information in the reverse order of the three pieces of information in the software license code module: the unique identity information of the host, the effective use start date, and the effective use duration. When replying, because the software license code does not carry the information of the combination of the two information, the software license checking module needs to traverse the combination of limited segmentation methods in order to extract correct information. In the third step, after extracting the host unique identity information, the effective start date of effective use, and the effective use duration, the software license checking module needs to determine whether the host unique identity information in the software license code is the same as the current host unique identity information. Consistent; determine whether the host time is within the scope of the software license. If both judgments are correct, it is considered that the software is legal to use, and the running software continues to start; if one of the judgments is incorrect or both judgments are not correct, the software is considered illegal to be used, prevents the software from continuing to start and informs the user.

当软件正确启动后,软件使用许可检查模块将软件使用许可码存放在主机磁盘内、有限的多个位置上;同时,提取当前主机时间作为本次启动时间,在对本次启动时间加密后,将本次启动时间存放在主机的磁盘中。After the software is started correctly, the software license checking module stores the software license code in the host disk in a limited number of locations; at the same time, extracts the current host time as the current boot time, and after encrypting the current boot time, Store the current startup time in the host's disk.

4)软件再次启动时,软件使用许可检查模块判断该软件是否具有合法使用授权4) When the software starts again, the software license checking module determines whether the software has legal license

当软件再次启动时,软件使用许可检查模块从主机磁盘中获得上次正确启动后存放的软件使用许可码,按照上述步骤3)中过程获得主机唯一身份信息、有效使用起始日期、有效使用时长三个信息。同时,也从主机磁盘中获得上次软件正确启动的时间。之后,分别对比主机身份是否与当前主机一致和软件使用有效期是否有效。在对比软件使用有效期时,除了对比当前主机时间是否处在软件使用有效期内,还需要比较当前主机时间和上次软件正确启动时间。如果当前主机时间处在软件使用有效期内,而且当前主机时间比上次软件启动时间晚,则允许软件正确启动,否则组织软件继续启动。When the software starts up again, the software license checking module obtains the software license code stored after the last correct boot from the host disk, and obtains the host's unique identity information, effective use start date, and effective use duration according to the process in the above step 3). three messages. At the same time, the last time the software started correctly is also obtained from the host disk. After that, compare whether the identity of the host is consistent with the current host and whether the validity period of the software is valid. When comparing the validity period of the software, in addition to comparing whether the current host time is within the validity period of the software, it is also necessary to compare the current host time and the last time the software was correctly started. If the current host time is within the validity period of the software, and the current host time is later than the last software startup time, the software is allowed to start correctly, otherwise, the software continues to be started.

当软件正确启动过后,将本次软件正确启动时间保存在上次保存软件正确启动时间的位置,完成软件启动时间的更新。After the software has been started correctly, save the correct starting time of the software in the position where the correct starting time of the software was saved last time, and complete the update of the starting time of the software.

实施例Example

某离线主机采用网卡物理地址11-22-33-44-55-66作为主机身份唯一标示,申请使用多核处理器软件集成开发环境90天,起始日期为2019年1月1日,即:多核处理器软件集成开发环境有效使用期限为2019年1月1日至2019年3月31日。软件使用许可码生成模块和软件使用许可检查模块均由软件设计者设计,两者均为独立软件程序,其中软件使用许可检查模块通过本机虚拟网口与多核处理器软件集成开发环境通信,提供多核处理器软件集成开发环境授权信息。An offline host uses the physical address of the network card 11-22-33-44-55-66 as the unique identifier of the host, and applies for the use of a multi-core processor software integrated development environment for 90 days. The starting date is January 1, 2019, that is: multi-core The processor software integrated development environment is valid from January 1, 2019 to March 31, 2019. The software license code generation module and the software license check module are both designed by the software designer, and both are independent software programs. The software license check module communicates with the multi-core processor software integrated development environment through the local virtual network port, providing Multicore Processor Software Integrated Development Environment Licensing Information.

对于软件使用许可码生成模块,主机身份输入部分以文本窗口实现,在该窗口中输入网卡物理地址信息11-22-33-44-55-66;软件使用许可时间段以两个文本窗口实现,在第一个文本窗口中输入软件起始使用时间20190101,在第二个文本窗口中输入软件的有效使用时长90天。主机身份标示、软件起始使用时间、软件有效使用时长三个信息输入到软件使用许可码输出部分。For the software license code generation module, the host identity input part is implemented in a text window, in which the physical address information of the network card 11-22-33-44-55-66 is input; the software license time period is implemented in two text windows, In the first text window, enter 20190101 of the software's initial use time, and in the second text window, enter the software's effective use time of 90 days. The host identification mark, the software starting time, and the software effective use time are input into the output part of the software license code.

软件使用许可码输出部分预置三种输入信息组合方法,分别是:“主机身份标示+软件有效使用起始日期+软件有效使用时长”、“软件有效使用起始日期+软件有效使用时长+主机身份标示”和“软件有效使用时长+主机身份标示+软件有效使用起始日期”。软件使用许可码输出部分随身选择其中一种对输入的三个信息进行组合。本实施例中采用“主机身份标示+软件有效使用起始日期+软件有效使用时长”方式,形成1122334455662019010130的字符串。The output part of the software license code is preset with three input information combination methods, namely: "host identity mark + software effective use start date + software effective use duration", "software effective use start date + software effective use duration + host Identity Mark” and “Software Effective Use Duration + Host Identity Mark + Software Effective Start Date”. The output part of the software license code selects one of them to combine the three input information. In this embodiment, the method of "host identity mark + start date of effective use of software + duration of effective use of software" is adopted to form a string of 1122334455662019010130.

软件使用许可码输出部分预置三种对上述字符串分割形成多个不同子段的方式,包括:“7个字符+7个字符+8个字符”、“7个字符+8个字符+7个字符”和“8个字符+7个字符+7个字符”。本实施例中采用“7个字符+7个字符+8个字符”方式,形成1122334、4556620和19010130三个信息子段。之后分别对三个信息字段进行加密。本实施例中,采用DES方式加密。三个信息分别通过DES加密算法进行加密并形成密文,称为A、B和C。之后,顺序排列ABC形成软件使用许可码。The output part of the software license code is preset with three methods for dividing the above strings to form multiple different sub-segments, including: "7 characters + 7 characters + 8 characters", "7 characters + 8 characters + 7 characters" characters" and "8 characters + 7 characters + 7 characters". In this embodiment, the method of "7 characters+7 characters+8 characters" is used to form three information subsections 1122334, 4556620 and 19010130. The three information fields are then encrypted respectively. In this embodiment, DES is used for encryption. The three pieces of information are encrypted by the DES encryption algorithm and form ciphertext, called A, B, and C. After that, ABC is arranged in order to form a software license code.

在多核处理器软件集成开发环境首次启动时,需要输入软件使用许可码并验证通过才能正确启动软件。此时,对于软件使用许可检查模块,软件使用许可码输入部分以文本窗口实现,在窗口中输入软件使用许可码ABC。When the multi-core processor software integrated development environment is started for the first time, it is necessary to enter the software license code and verify that the software can be started correctly. At this time, for the software license check module, the software license code input part is implemented as a text window, and the software license code ABC is input in the window.

之后,主机身份检测部分和启动时间检测部分分别获得主机的网卡物理地址11-22-33-44-55-66和当前启动时间2019年1月10日。与此同时,许可结果输出部分按照软件预置的方式将软件使用许可码拆分成A、B、C三个信息字段,使用DES解密算法进行解密,得到1122334、4556620和19010130三个信息子段。此时,许可结果输出部分知道生成软件使用许可码时,对主机身份标示、软件有效使用起始日期和软件有效使用时长三个信息的排列顺序和信息子段划分都采用了三种方式中一个,但不知道具体使用了哪一种,因此需要顺序组合上述两个步骤中的三种方式,并在得到每一种结果后,分别提取出主机身份标示、软件有效使用起始日期和软件有效使用时长三个信息。之后分别将它们与本机的网卡物理地址和当前软件启动时间相比较,若相同,则允许多核处理器软件集成开发环境运行,若不相同,则阻止多核处理器软件集成开发环境运行。After that, the host identity detection part and the startup time detection part obtain the physical address of the host's network card 11-22-33-44-55-66 and the current startup time on January 10, 2019, respectively. At the same time, the license result output part splits the software license code into three information fields A, B, and C according to the software preset method, and decrypts it using the DES decryption algorithm to obtain three information sub-segments 1122334, 4556620 and 19010130. . At this time, the license result output part knows that when the software license code is generated, one of three methods is adopted for the arrangement order of the three information, the starting date of the software effective use, and the effective use duration of the software, and the division of information subsections. , but I don't know which one is used, so it is necessary to combine the three methods in the above two steps in sequence, and after each result is obtained, extract the host identity mark, the software effective start date and the software effective date. Three pieces of information about the duration of use. Then compare them with the physical address of the local network card and the current software startup time. If they are the same, the multi-core processor software integrated development environment is allowed to run. If they are different, the multi-core processor software integrated development environment is prevented from running.

当确认多核处理器软件集成开发环境可以运行后,将软件使用许可码按照预置的方式切分为多个字段,本实施例中,按照均分了两份的方式将字符串ABC分成两个字串D1和D2,两个字串分别保存在主机磁盘的注册表和软件安装路径中。同时,将本次软件正确启动时间采用DES算法进行加密,分别保存到主机磁盘的注册表和软件安装路径中。After confirming that the multi-core processor software integrated development environment can be run, the software license code is divided into multiple fields according to the preset method. In this embodiment, the string ABC is divided into two parts according to the method of dividing into two parts. The strings D1 and D2 are stored in the registry of the host disk and the software installation path respectively. At the same time, the correct startup time of the software is encrypted by using the DES algorithm, and saved to the registry of the host disk and the software installation path respectively.

当多核处理器软件集成开发环境再次启动时,软件使用许可检查模块需要检查软件使用许可码的有效性和当前启动时间的合法性。此时,软件使用许可检查模块分别从主机磁盘的注册表和软件安装路径中找到D1和D2并组合为ABC。之后,按照软件首次启动时的检查顺序,再次检查软件使用许可码的有效性。再后,提取上次软件启动时间,通过DES解密,对比两个保存位置的上次软件启动时间相一致,确保没有受到攻击后,将当前主机时间与上次软件启动时间向比较。如果主机身份符合软件使用许可码要求,当前软件启动时间在软件使用许可码提供的软件使用时间段内,并且当前主机时间晚于上次软件正确启动时间,则通过虚拟网口告知多核处理器软件集成开发环境可以正确启动,否则阻止多核处理器软件集成开发环境正确启动运行。When the multi-core processor software integrated development environment starts up again, the software license checking module needs to check the validity of the software license code and the legality of the current starting time. At this time, the software license checking module finds D1 and D2 from the registry of the host disk and the software installation path respectively and combines them into ABC. After that, check the validity of the software license code again according to the checking sequence when the software is started for the first time. Then, extract the last software startup time, decrypt it through DES, compare the last software startup time of the two storage locations to be consistent, and compare the current host time with the last software startup time after ensuring that there is no attack. If the host identity meets the requirements of the software license code, the current software startup time is within the software use time period provided by the software license code, and the current host time is later than the last correct software start time, the multi-core processor software will be notified through the virtual network port. The integrated development environment can start correctly, otherwise the multi-core processor software integrated development environment is prevented from starting and running correctly.

本发明说明书中未作详细描述的内容属本领域专业技术人员的公知技术。The content not described in detail in the specification of the present invention belongs to the well-known technology of those skilled in the art.

Claims (4)

1.一种多核处理器软件集成开发环境离线使用许可系统,其特征在于,包括:软件使用许可码生成模块和软件使用许可检查模块;1. a multi-core processor software integrated development environment offline use licensing system, is characterized in that, comprising: software use license code generation module and software use license inspection module; 软件使用许可码生成模块:接收外部输入的主机身份唯一标识、软件使用起始日期和软件使用有效时长,根据所述外部输入主机身份唯一标识、软件使用起始日期和软件使用有效时长生成软件使用许可码;所述软件使用许可码的生成包括步骤:子信息段生成、信息加密和子信息段组合;Software use license code generation module: Receive the externally input unique identifier of the host, the starting date of software use and the valid duration of software use, and generate the software usage according to the externally input unique identifier of the host, the starting date of software use and the valid duration of software use License code; the generation of the software use license code includes the steps of: sub-information segment generation, information encryption and sub-information segment combination; 其中,所述主机身份唯一标识是指运行多核处理器软件集成开发环境主机的身份唯一标示;所述软件使用起始日期是指允许多核处理器软件集成开发环境开始使用的日期;所述软件使用有效时长是指多核处理器软件集成开发环境从起始日期开始,正常使用的时间长度;Wherein, the unique identification of the host identity refers to the unique identification of the host running the multi-core processor software integrated development environment; the software use start date refers to the date when the multi-core processor software integrated development environment is allowed to be used; the software uses Valid duration refers to the duration of normal use of the multi-core processor software integrated development environment from the start date; 软件使用许可码检查模块:接收外部输入的当前主机身份唯一标识、当前主机运行时间和上次软件正确使用后保存的多个加密信息段,根据软件使用许可码生成模块生成的所述软件使用许可码和当前主机身份唯一标识和当前主机运行时间,判定是否允许多核处理器软件集成开发环境在当前主机上运行,并将判定结果作为输出量发送给外部多核处理器软件集成开发环境;Software license code checking module: receives the externally inputted unique identifier of the current host, the current host running time, and multiple encrypted information segments saved after the last correct use of the software, and generates the software license according to the software license code generation module. code, the current host identity unique identifier and the current host running time, determine whether the multi-core processor software integrated development environment is allowed to run on the current host, and send the judgment result as the output to the external multi-core processor software integrated development environment; 其中,所述当前主机身份唯一标识是指当前准确启动多核处理器软件集成开发环境的主机身份唯一标识;所述当前主机运行时间是指当前启动多核处理器软件集成开发环境主机的时间;所述上次软件正确使用后保存的多个加密信息段是指多核处理器软件集成开发环境在上次正确启动后,软件使用许可码检查模块将正确启动信息加密保存后的结果;Wherein, the unique identifier of the current host identity refers to the unique identifier of the host that accurately starts the multi-core processor software integrated development environment at present; the current host running time refers to the time when the multi-core processor software integrated development environment host is currently started; the The multiple encrypted information segments saved after the last correct use of the software refers to the result of the software license code checking module encrypting and saving the correct starting information after the multi-core processor software integrated development environment is correctly started last time; 主机身份唯一标识是指主机中能排他的表示主机身份的特征信息,具体为:硬盘序列号或以太网MAC地址;The unique identifier of the host identity refers to the characteristic information in the host that can exclusively represent the identity of the host, specifically: the hard disk serial number or the Ethernet MAC address; 软件使用许可码生成模块中,子信息段生成步骤首先将外部输入的主机身份唯一标识、软件使用起始日期、软件使用有效时长三个信息进行组合,再将组合后的信息拆分成多个子信息段;In the software license code generation module, the sub-information segment generation step first combines the externally inputted unique identifier of the host, the start date of software use, and the effective duration of software use, and then splits the combined information into multiple sub-sections. information segment; 其中,外部输入的主机身份唯一标识、软件使用起始日期、软件使用有效时长三个信息组合方式并不限定,但在依据本系统描述进行编码实现时,只能采用一种组合方式;拆分子信息段时,子信息段的数量、每个子信息段的长度也不限定,但在依据本系统描述进行编码实现时,只能采用一种方式拆分得到子信息段;Among them, the combination of the externally input unique identifier of the host, the start date of software use, and the effective duration of software use is not limited, but only one combination can be used when coding is implemented according to the description of this system; In the case of information segments, the number of sub-information segments and the length of each sub-information segment are also not limited, but when coding is implemented according to the description of this system, only one way can be used to split and obtain sub-information segments; 软件使用许可码生成模块中,所述信息加密对每个子信息段都进行加密处理,获得加密子信息段;In the software license code generation module, the information encryption performs encryption processing on each sub-information segment to obtain an encrypted sub-information segment; 软件使用许可码生成模块中,所述子信息段组合将信息加密步骤生成的多个加密子信息段进行组合,生成软件使用许可码;In the software license code generation module, the sub-information segment combination combines a plurality of encrypted sub-information segments generated by the information encryption step to generate a software license code; 在软件使用许可码检查模块首次运行时,从软件使用许可码中提取主机身份唯一标示、软件使用起始日期、软件使用有效时长完后,需要与外部输入的当前主机身份唯一标识和当前主机运行时间进行比较,以判断是否允许多核处理器软件集成开发环境能否正确启动;When the software license code checking module runs for the first time, the unique identifier of the host identity, the start date of software use, and the valid duration of software use are extracted from the software license code. Time comparison to determine whether the multi-core processor software integrated development environment is allowed to start correctly; 其中,比较主机身份标识时,需要比较外部输入的当前主机身份唯一标识是否与从软件使用许可码中提取到的主机身份唯一标识完全一致,若一致,则通过比较,否则比较不通过;比较软件使用时间时,首先将从软件使用许可码中提取到的软件使用起始日期和软件使用有效时长相加,得到软件正确使用周期,再将比较当前主机运行时间是否落在软件正确使用周期中,若落在软件正确使用周期,则比较通过,否则比较不通过;当主机身份唯一标识和软件使用时间两者比较都通过时,则认为软件使用许可码有效,向外部输出允许多核处理器软件集成开发环境正确运行,否则输出不允许多核处理器软件集成开发环境正确运行;Among them, when comparing the host IDs, it is necessary to compare whether the current host ID uniquely input externally is completely consistent with the host ID unique ID extracted from the software license code. If they are consistent, the comparison is passed; otherwise, the comparison fails; When using the time, firstly add the software use start date extracted from the software license code and the software use effective duration to obtain the correct software use period, and then compare whether the current host running time falls within the correct software use period, If it falls within the correct software use cycle, the comparison is passed, otherwise it is not passed; when both the host identity unique identifier and the software use time pass, the software license code is considered valid, and the external output allows multi-core processor software integration The development environment runs correctly, otherwise the output does not allow the multi-core processor software integrated development environment to run correctly; 当软件使用许可码检查模块允许多核处理器软件集成开发环境运行时,需要通过信息加密、子信息段生成、子信息段存储三个步骤对本次正确启动信息进行保存;When the software license code checking module allows the multi-core processor software integrated development environment to run, it needs to save the correct startup information through three steps of information encryption, sub-information segment generation, and sub-information segment storage; 其中,本次正确启动信息包含软件使用许可码和当前主机运行时间两个信息;信息加密可以采用多种加密算法,但在依据本系统描述进行编码实现时,只能采用一种加密算法,该加密算法与软件使用许可码中的加密算法无需一致;子信息段生成对加密后的本次软件有效启动信息进行拆分,形成多个加密子信息段,拆分方法可使用多种方式,但在依据本系统描述进行编码实现时,只能采用一种加密算法;子信息段存储将多个加密子信息段保存在当前主机磁盘的多个位置,依据本系统描述进行编码实现时,每个加密子信息段的位置必须固定;Among them, the correct startup information this time includes the software license code and the current host running time; information encryption can use a variety of encryption algorithms, but only one encryption algorithm can be used when coding according to the description of this system. The encryption algorithm does not need to be consistent with the encryption algorithm in the software license code; the sub-information segment generation splits the encrypted effective startup information of the current software to form multiple encrypted sub-information segments. When coding according to the description of this system, only one encryption algorithm can be used; the sub-information segment storage stores multiple encrypted sub-information segments in multiple locations of the current host disk, and when coding is implemented according to the description of this system, each The position of the encrypted sub-information segment must be fixed; 当软件使用许可码检查模块再次运行时,首先需要获得上次正确启动信息,通过子信息段读取、子信息段组合、信息解密三个步骤得到软件使用许可码和上次软件正确启动时间,再从软件使用许可码中提取到主机身份唯一标识、软件使用起始日期、软件使用有效时长;再次,使用当前主机身份唯一标识、当前主机运行时间、上次软件正确启动时间、主机身份唯一标识、软件使用起始日期、软件使用有效时长五个信息进行比较,判断是否允许本次多核处理器软件集成开发环境正确启动;When the software license code checking module runs again, it first needs to obtain the last correct startup information, and obtain the software license code and the last correct software startup time through the three steps of sub-information segment reading, sub-information segment combination, and information decryption. Then extract the unique identifier of the host identity, the starting date of software use, and the valid duration of the software use from the software license code; again, use the unique identifier of the current host identity, the running time of the current host, the last time the software was started correctly, and the unique identifier of the host identity. 、Comparing five pieces of information, the starting date of software use and the effective duration of software use, to determine whether the multi-core processor software integrated development environment is allowed to start correctly; 其中,子信息段读取执行的操作为所述子信息段存储的逆操作,从当前主机磁盘中多个位置读取到加密子信息段;子信息段组合执行的操作为所述子信息段生成的逆操作,得到加密的上次软件正确启动信息;信息解密执行的操作为所述信息加密的逆操作,得到软件使用许可码和上次软件正确启动时间;主机身份标识比较方法具体为:比较主机身份标识时,需要比较外部输入的当前主机身份唯一标识是否与从软件使用许可码中提取到的主机身份唯一标识完全一致,若一致,则通过比较,否则比较不通过;软件使用时间比较的方法,具体为:比较软件使用时间时,首先将从软件使用许可码中提取到的软件使用起始日期和软件使用有效时长相加,得到软件正确使用周期,再比较当前主机运行时间是否落在软件正确使用周期中,若落在软件正确使用周期,则比较通过,否则比较不通过,同时,也需要比较当前主机运行时间是否晚于上次软件正确启动时间,若比较通过,则认为软件再次启动有效,否则认为发生了通过修改主机时间以破解软件使用许可码的企图,不允许软件启动。The operation performed by reading the sub-information segment is the inverse operation of the storage of the sub-information segment, and the encrypted sub-information segment is read from multiple locations in the current host disk; the operation performed by combining the sub-information segments is the sub-information segment. The generated inverse operation obtains the encrypted last software startup information correctly; the operation performed by the information decryption is the inverse operation of the information encryption, and obtains the software license code and the correct startup time of the last software; the host identity comparison method is specifically: When comparing the host IDs, it is necessary to compare whether the current host ID uniquely input externally is completely consistent with the host ID unique ID extracted from the software license code. If they are consistent, the comparison is passed; otherwise, the comparison fails; The method is as follows: when comparing the software usage time, firstly add the software usage start date extracted from the software usage license code and the software usage valid duration to obtain the correct usage period of the software, and then compare whether the current host running time has fallen or not. In the correct use cycle of the software, if it falls within the correct software use cycle, the comparison will pass, otherwise the comparison will fail. At the same time, it is also necessary to compare whether the current host running time is later than the last software correct startup time. If the comparison passes, it is considered that the software It is valid to start again, otherwise it is considered that an attempt to crack the software license code by modifying the host time has occurred, and the software is not allowed to start. 2.根据权利要求1所述的一种多核处理器软件集成开发环境离线使用许可系统,其特征在于:软件使用许可码检查模块中,对于从外部接收到的软件使用许可码,通过子信息段拆分、信息解密、子信息段组合三个步骤解析得到软件使用许可码中包含的主机身份唯一标识、软件使用起始日期和软件使用有效时长。2. a kind of multi-core processor software integrated development environment offline license system according to claim 1 is characterized in that: in the software license code checking module, for the software license code received from the outside, through the sub-information segment The three steps of splitting, information decryption, and sub-information segment combination are analyzed to obtain the unique identifier of the host identity, the starting date of software use and the effective duration of software use contained in the software license code. 3.根据权利要求1所述的一种多核处理器软件集成开发环境离线使用许可系统,其特征在于:当软件使用许可码检查模块再次运行并允许软件正确启动时,将本次正确启动信息保存到主机磁盘上。3. a kind of multi-core processor software integrated development environment off-line license system according to claim 1, is characterized in that: when software license code checking module runs again and allows software to start correctly, this time correct start-up information is saved to the host disk. 4.根据权利要求1所述的一种多核处理器软件集成开发环境离线使用许可系统,其特征在于:软件使用许可码检查模块中,当发生无法获得上次软件正确启动信息、当前主机身份唯一标识、当前主机运行时间中的任何一个时,都不允许软件启动,软件使用许可码检查模块恢复到等待首次运行状态,需要重新输入软件使用许可码。4. a kind of multi-core processor software integrated development environment off-line license system according to claim 1, is characterized in that: in the software license code checking module, when occurrence cannot obtain last software correct startup information, current host identity is unique The software is not allowed to start when any of the logo and the current host running time, the software license code checking module returns to the state of waiting for the first operation, and the software license code needs to be re-entered.
CN201911330749.1A 2019-12-20 2019-12-20 Off-line use permission system for multi-core processor software integrated development environment Active CN111191194B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911330749.1A CN111191194B (en) 2019-12-20 2019-12-20 Off-line use permission system for multi-core processor software integrated development environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911330749.1A CN111191194B (en) 2019-12-20 2019-12-20 Off-line use permission system for multi-core processor software integrated development environment

Publications (2)

Publication Number Publication Date
CN111191194A CN111191194A (en) 2020-05-22
CN111191194B true CN111191194B (en) 2022-05-13

Family

ID=70709245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911330749.1A Active CN111191194B (en) 2019-12-20 2019-12-20 Off-line use permission system for multi-core processor software integrated development environment

Country Status (1)

Country Link
CN (1) CN111191194B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496028A (en) * 2021-06-28 2021-10-12 山东云缦智能科技有限公司 Software offline authentication method with time limit function
CN115708052A (en) * 2021-08-18 2023-02-21 深圳市汉森软件有限公司 Printer authorization code generation method, printer authorization verification method and system
CN114117364B (en) * 2022-01-24 2022-03-29 北京麟卓信息科技有限公司 Offline software license control method and system
CN114707122A (en) * 2022-03-07 2022-07-05 合肥泽康电子科技有限公司 Method and system for verifying software safety and software validity period
CN118349964A (en) * 2024-04-30 2024-07-16 中国水电建设集团十五工程局有限公司 Method for limiting software cut-off time point based on database in off-line state

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577727A (en) * 2013-11-13 2014-02-12 深圳市创维群欣安防科技有限公司 Software deadline verifying method and device
CN109284586A (en) * 2018-08-27 2019-01-29 武汉达梦数据库有限公司 Method and device for implementing software licensing
CN110008659A (en) * 2019-03-29 2019-07-12 深圳华锐金融技术股份有限公司 Outline management method, apparatus, computer equipment and the storage medium of software license

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577727A (en) * 2013-11-13 2014-02-12 深圳市创维群欣安防科技有限公司 Software deadline verifying method and device
CN109284586A (en) * 2018-08-27 2019-01-29 武汉达梦数据库有限公司 Method and device for implementing software licensing
CN110008659A (en) * 2019-03-29 2019-07-12 深圳华锐金融技术股份有限公司 Outline management method, apparatus, computer equipment and the storage medium of software license

Also Published As

Publication number Publication date
CN111191194A (en) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111191194B (en) Off-line use permission system for multi-core processor software integrated development environment
Mohammad et al. Required policies and properties of the security engine of an SoC
JP4550050B2 (en) Usage authentication method, usage authentication program, information processing apparatus, and recording medium
KR100996784B1 (en) One or more computer readable media storing a method, system and a plurality of instructions implemented in a computing device for storage and retrieval of data based on public key encryption.
JP5703391B2 (en) System and method for tamper resistant boot processing
CN100354786C (en) Open type general-purpose attack-resistant CPU and application system thereof
CN112231647A (en) A software authorization verification method
US7992001B2 (en) Preventing execution of software without a dynamically generated key
WO2020107104A1 (en) Personalized and cryptographically secure access control in operating systems
CN103701829B (en) A kind of off-line resolves the method for DPAPI encryption data
CN100495421C (en) An Authentication Protection Method Based on USB Device
CN110688660B (en) Method and device for safely starting terminal and storage medium
JP2010170570A (en) Saving and retrieving data based on symmetric key encryption
US9177121B2 (en) Code protection using online authentication and encrypted code execution
CN1527208A (en) Method and device for realizing computer safety and enciphering based on identity confirmation
CN111177693A (en) Method, device, equipment and medium for verifying terminal root certificate
CN116933293A (en) Multi-platform-oriented multi-encryption software authentication protection method and device
CN103136466B (en) A kind of Web3D encryption method based on softdog
CN104361298B (en) The method and apparatus of Information Security
KR20060127007A (en) Software execution protection using active entities
KR20150072007A (en) Method for accessing temper-proof device and apparatus enabling of the method
CN115618306B (en) Software protection method, device, system, CPU chip and electronic equipment
CN114816549B (en) A method and system for protecting bootloader and its environment variables
JP2012009030A (en) Method for executing software application, system and secure processor
CN115357948A (en) Hardware anti-copying encryption method and device based on TEE and encryption chip

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant