Security software protection method

By adopting different encryption methods and face recognition verification at different stages of the software, the problem of software protection in the existing technology is solved, and the multi-faceted security protection of the software is realized, and the security protection of the software is improved.

CN120217407AInactive Publication Date: 2025-06-27SUZHOU HAILIANCHUANG INFORMATION TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510243322.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-03
Publication Date
2025-06-27
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

There is a possibility that existing software protection technology will be cracked, and it is difficult to provide multiple security protection at different stages of use.

Method used

By building a dynamic link library, different encryption strategies are introduced, application software is divided into different components, and different encryption methods are adopted at different stages, including face recognition verification and the use of RSA encryption algorithms.

Benefits of technology

It improves the security protection of the software, and provides comprehensive security protection from registration to operation through facial information registration verification and tamper-proof encryption functions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120217407A_ABST
    Figure CN120217407A_ABST
Patent Text Reader

Abstract

The invention discloses a security software protection method, which relates to the technical field of software protection, and comprises the following steps: constructing a dynamic link library, and introducing different encryption strategies into the constructed dynamic link library; the application software is divided to obtain different software components, and the different software components are associated with the encryption strategies introduced into the dynamic link library; data files in the application software are subjected to tamper-proof data protection, and multi-aspect protection on the software is provided by adopting different encryption modes in different stages of the software; before software runs, face information registration verification is needed; when the software runs, tamper-proof and backup functions are provided by adopting an RSA encryption algorithm, and comprehensive security protection is provided for the software from registration to running and use, so that the security protection performance of the software is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of software protection, and specifically to a method for protecting security software. Background Art

[0002] The importance of software protection has become increasingly prominent, and as a result, a variety of software protection technologies for dealing with different cracking methods have emerged.

[0003] With the development of software protection technologies, software cracking technologies have also been continuously updated and iterated accordingly. From another perspective, it can also be said that the development of software cracking technologies has promoted the progress of protection technologies. At present, some existing protection methods all have the possibility of being cracked more or less, it's just a matter of time and resources.

[0004] Due to the maturity and popularization of fingerprint and face recognition technologies, a protection technology based on biometric recognition has emerged. Biometric recognition technology has broad application prospects, considerable economic benefits, and social benefits due to its characteristics of simplicity, speed, security, reliability, accuracy, and efficiency. Biometric authentication technology is a technology that uses the inherent characteristics of humans, which are continuously stable with the growth of life and can uniquely identify an individual's identity (or identify to a certain extent) to represent an individual's identity. Biometric authentication, also known as "biometric recognition", is a process of identity authentication and recognition judgment, used to confirm the claimed identity through uniquely recognizable biometric features (such as fingerprints and faces). It aims to allow users to prove his or her identity by providing biometric samples and related unique identification codes in order to gain access to a secure environment. How to adopt different encryption methods at different usage stages of application software to improve the security of application software is the problem we need to solve. For this reason, a method for protecting security software is provided herein. Summary of the Invention

[0005] Software protection technology is a comprehensive computer technology that can involve many aspects such as underlying hardware, driver programs, operating systems, network protocols, databases, and software programming. Software protection technology can be mainly divided into software encryption and hardware encryption. Hardware encryption means storing encrypted information in a certain hardware device. When running a certain program, the corresponding attached hardware must be inserted. If the corresponding key can be detected in the storage area of the hardware, the software can be used. Hardware encryption has higher reliability in terms of data security than software encryption, and it is plug-and-play, without the need to install encryption password software, making it more convenient to use. Software encryption is lower than hardware encryption in terms of technology and cost, is easy to implement, and has a high cost performance; The purpose of the present invention is to provide a method for protecting security software.

[0006] The object of the present invention can be achieved by the following technical solutions: A security software protection method, comprising the following steps: Step S1: Construct a dynamic link library and introduce different encryption policies into the constructed dynamic link library; Step S2: Divide the application software to obtain different software components, and associate the different software components with the encryption policies introduced in the dynamic link library respectively; Step S3: Perform anti-tampering data protection on the data files in the application software.

[0007] Further, the dynamic link library includes an import table, an export table, a resource segment, a code segment, a data segment, a relocation table, and a DLL header; The import table is used to link external application software; The export table is used to store different encryption policies; The resource segment is used to store the resources used in the DLL, such as icons, bitmaps, dialog box templates, strings; The code segment is used to store executable code; The data segment is used to store global data and variables; The relocation table is used to adjust the code and data addresses when loading the DLL; The DLL header includes the version, size, and entry point of the DLL.

[0008] Further, the process of dividing the application software to obtain different software components includes: Divide the application software into several software components, and the software components include an application registration part, an application usage verification part, and a software main body part The application registration part is used for users to register identity information; The application usage verification part is used for users to perform face recognition authentication before using the application software, that is, the user needs to access the database resources on the server side through the network for feature information comparison; The software main body part is used to manage the data files in the application software after the application software runs.

[0009] Further, the process of the user registering identity information includes: The user first needs to take a face photo containing their own face information by using a camera or upload a face photo in the album for registration, upload the face photo taken by the camera or in the photo to the server side, process the face photo to obtain the corresponding face information, and upload the obtained face information to the server side for storage.

[0010] Further, the process of processing the face photo is: Convert the color image into a grayscale image by the weighted average method; Detect key points of the obtained grayscale image, scale the coordinates of the detected key points to the same size according to a ratio, and then translate all key points to the same reference position; After the normalization process of the key points, obtain the Euclidean distance between the key points, the included angle formed by the key points, and the distance ratio between the key points, so as to obtain the corresponding distance feature, angle feature, and ratio feature; Construct a corresponding feature vector according to the obtained geometric features as the face recognition information.

[0011] Furthermore, the process of the application's usage verification part for users to perform face recognition authentication before using the application software includes: First, collect the user's face image through the camera, then upload it to the server side. After corresponding face image processing, obtain the corresponding face information, compare and match the obtained face information with the user's face information stored in the server side. If the match is successful, it is considered that the user's identity is legal, and the server side will feedback the result to the application software and authorize the application software to start the relevant functions of the software; if the match fails, it is considered that the user's identity is illegal, and perform secondary face recognition; In order to prevent software crackers from unrestrictedly copying and impersonating the identities of legitimate users through common attack means such as photos and screen captures, and bypassing software authorization authentication, the software needs to perform liveness detection before face recognition. Liveness detection uses technologies such as face key point positioning and face tracking. By asking the user to face the camera and cooperate with actions such as blinking, opening the mouth, shaking the head, and nodding, to verify whether the user is a real living person performing the authentication operation.

[0012] Furthermore, the process of performing anti-tampering data protection on the data files in the application software includes: Convert the data files generated in the application software into corresponding data streams, and read the data length of the data stream, denoted as L; Set the data length threshold L0; If L≤L0, do not process the data stream. Conversely, if L>L0, decompose the data stream into several data stream segments; Denote the data stream converted from the data file or the data stream segments divided from the data stream as plaintext data, and denote the length of the plaintext data as m; Encrypt the obtained plaintext data, that is: Set prime numbers q and p, where q>1024 and p>1024; Multiply the set prime number q by the prime number p to obtain the corresponding product, denoted as n; Among them, n = q×p; Based on the set prime numbers q and p, obtain the corresponding Euler's totient function, denoted as ϕ(q, p); where ϕ(q, p) = (p - 1)×(q - 1); Set the public key exponent, denoted as e; it should be further noted that in the specific implementation process, the public key exponent e needs to satisfy 1 < e < ϕ(q, p) and be relatively prime to ϕ(q, p); According to the set public key exponent, obtain the corresponding private key exponent, denoted as d; where d×e ≡ 1 (mod ϕ(n)); Then obtain the public key and private key respectively, where the public key is (n, e) and the private key is (n, d); Encrypt the plaintext data according to the obtained public key to obtain the encrypted data, denoted as c; where c ≡ m e (mod n); Obtain the hash value of the plaintext data, and denote the obtained hash value as the message digest of the encrypted data, denoted as hash; where hash = H(m), and H is a hash function; Encrypt the obtained message digest according to the obtained private key to obtain the corresponding digital signature, denoted as signature; Signature = hash^d (mod n); Send the encrypted data and the digital signature to the user; The user decrypts the received encrypted data and verifies whether the data has been tampered with.

[0013] Furthermore, the process by which the user decrypts the received encrypted data and verifies whether the data has been tampered with includes: The user performs calculations on the received encrypted data to obtain the hash value of the received encrypted data; Then decrypt the received digital signature through the public key to obtain the original message digest; Compare the obtained hash value of the received encrypted data with the obtained original message digest. If the comparison result is consistent, it means that the data file has not been tampered with. Otherwise, it means that the data file has been tampered with or the digital signature does not match.

[0014] Compared with the prior art, the beneficial effects of the present invention are: Provide multi - faceted protection for software by adopting different encryption methods at different stages of the software; before the software runs, it is necessary to verify through face information registration; when the software is running, the RSA encryption algorithm is used to provide anti - tampering and backup functions, providing a relatively comprehensive security protection for the software from registration to running and use, thereby improving the security protection of the software. Brief Description of the Drawings

[0015] To more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those of ordinary skill in the art, other drawings can also be obtained based on these drawings.

[0016] Figure 1 It is the flowchart of the present invention. Detailed Implementation Modes

[0017] As Figure 1 shown, a security software protection method includes the following steps: Step S1: Build a dynamic - link library and introduce different encryption policies into the built dynamic - link library; Step S2: Divide the application software to obtain different software components, and associate the different software components with the encryption policies introduced in the dynamic - link library respectively; Step S3: Perform anti - tampering data protection on the data files in the application software.

[0018] It should be further noted that, in the specific implementation process, the dynamic - link library includes an import table, an export table, a resource segment, a code segment, a data segment, a relocation table, and a DLL header; The import table is used to link external application software; The export table is used to store different encryption policies; The resource segment is used to store resources used in the DLL, such as icons, bitmaps, dialog box templates, strings; The code segment is used to store executable code; The data segment is used to store global data and variables; The relocation table is used to adjust the code and data addresses when loading the DLL; The DLL header includes information about the version, size, and entry point of the DLL.

[0019] It should be further noted that, in the specific implementation process, the process of dividing the application software to obtain different software components includes: The application software is divided into several software components, including an application registration part, an application usage verification part, and a software main body part; The application registration part is used for users to register identity information. The specific process includes: First, the user needs to take a face photo containing their own face information through the camera or upload a face photo from the album for registration. Upload the face photo taken by the camera or from the photo to the server side. By processing the face photo, obtain the corresponding face information, and upload the obtained face information to the server side for storage; The process of processing the face photo is as follows: A color image usually consists of three color channels: Red, Green, and Blue, abbreviated as RGB. Each channel contains intensity values between 0 and 255; For a color pixel, its RGB value can be expressed as: Pixel=(R,G,B); By using the weighted average method, convert the color image into a grayscale image, and the obtained grayscale value is Y; Y = 0.299R + 0.587G + 0.114B; Perform key point detection on the obtained grayscale image, scale the coordinates of the detected key points to the same size according to a ratio, and then translate all key points to the same reference position; After completing the normalization processing of the key points, obtain the Euclidean distance between the key points, the angles formed by the key points, and the distance ratios between the key points, so as to obtain the corresponding distance features, angle features, and ratio features; According to the obtained geometric features, construct the corresponding feature vector as the face recognition information.

[0020] The application usage verification part is used for users to perform face recognition authentication before using the application software, that is, the user needs to access the database resources on the server side through the network for feature information comparison. The specific process includes: First, collect the user's face image through the camera, then upload it to the server side. After corresponding face image processing, obtain the corresponding face information. Compare and match the obtained face information with the user's face information stored on the server side. If the match is successful, it is considered that the user's identity is legal, and the server side will feedback the result to the application software, authorizing the application software to start the relevant functions of the software; if the match fails, it is considered that the user's identity is illegal, and perform secondary face recognition. After more than three recognitions, the software will be locked for a period of time, and face recognition authentication can continue only after the set time has passed; Meanwhile, to prevent software crackers from unrestrictedly copying and impersonating the identities of legitimate users through common attack methods such as taking photos and screen captures, and bypassing software authorization authentication, before performing face recognition, the software needs to first perform liveness detection. Liveness detection uses technologies such as face key point positioning and face tracking. By asking the user to face the camera and cooperate with combined actions such as blinking, opening the mouth, shaking the head, and nodding, it is verified whether the user is a real live person performing the authentication operation; The application software performs face recognition on the user, extracts features, and submits the face information to the server side. After matching with the face information on the server side, it can obtain the authorization license, key data, and configuration data required during the operation of the application software to ensure continuous operation. This can avoid unauthorized use and can also require the software to be network - authorized during operation according to specific situations, either always connected to the network or connected to the network at fixed intervals, in order to track and manage the authorization of software use.

[0021] The main part of the software is used to manage the data files within the application software after the application software runs.

[0022] It should be further noted that in the specific implementation process, the process of protecting data files in the application software from being tampered with includes: Convert the data files generated within the application software into corresponding data streams, and read the data length of the data stream, denoted as L; Set a data length threshold L0; If L ≤ L0, no processing is performed on the data stream. Conversely, if L > L0, the data stream is decomposed into several data stream segments; Denote the data stream converted from the data file or the data stream segments divided from the data stream as plaintext data, and denote the length of the plaintext data as m; Then set a prime number q and a prime number p, where q > 1024 and p > 1024; Multiply the set prime number q by the prime number p to obtain the corresponding product, denoted as n; Among them, n = q × p; Based on the set prime numbers q and p, obtain the corresponding Euler's totient function, denoted as ϕ(q, p); Among them, ϕ(q, p)=(p - 1)×(q - 1); Set the public - key exponent, denoted as e; it should be further noted that in the specific implementation process, the public - key exponent e needs to satisfy 1 < e < ϕ(q, p) and be relatively prime to ϕ(q, p); According to the set public - key exponent, obtain the corresponding private - key exponent, denoted as d; Among them, d × e ≡ 1 (mod ϕ(n)); Then the public key and the private key are obtained respectively, where the public key is (n, e) and the private key is (n, d). Encrypt the plaintext data according to the obtained public key to obtain encrypted data, and denote the encrypted data as c. Where c ≡ m e (mod n); Obtain the hash value of the plaintext data, and denote the obtained hash value as the message digest of the encrypted data, denoted as hash. Where hash = H(m), and H is a hash function. Encrypt the obtained message digest according to the obtained private key to obtain the corresponding digital signature, denoted as signature. Signature = hash^d (mod n); Send the encrypted data and the digital signature to the user. The user calculates the received encrypted data to obtain the hash value of the received encrypted data. Then decrypt the received digital signature through the public key to obtain the original message digest. Compare the obtained hash value of the received encrypted data with the obtained original message digest. If the comparison result is consistent, it means that the data file has not been tampered with. Otherwise, it means that the data file has been tampered with or the digital signature does not match. In another embodiment of the present invention, the software also has an encryption backup function. The software has an encryption package, and the key files of the software have digital signatures. During software detection, verify the digital signature. If the digital signature is incorrect, it is considered damaged, and the backup function is started. By decrypting this encryption package, the original software file is obtained to realize the initialization of the software.

[0023] Provide multi-faceted protection for the software by adopting different encryption methods at different stages of the software; before the software runs, it is necessary to verify through face information registration; when the software runs, the RSA encryption algorithm is adopted to provide anti-tampering and backup functions, providing a relatively comprehensive security protection for the software from registration to running and use, thereby improving the security protection of the software.

[0024] The above is only a preferred embodiment of the present invention, and does not impose any form of limitation on the present invention. Although the present invention has been disclosed above with preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make some changes or modifications to the above-disclosed technical content within the scope of the technical solution of the present invention to obtain equivalent embodiments with equivalent changes. However, as long as it does not depart from the content of the technical solution of the present invention, any modification or equivalent replacement made to the above embodiments based on the technical essence of the present invention still falls within the scope of the technical solution of the present invention.

Claims

1. A security software protection method, characterized in that: The following steps are involved: Step S1: construct a dynamic link library, and introduce different encryption strategies into the constructed dynamic link library; Step S2: Divide the application software to obtain different software components, and associate the different software components with the encryption strategies introduced in the dynamic link library respectively; Step S3: Perform tamper-proof data protection on the data files in the application software.

2. A security software protection method according to claim 1, characterized in that: The dynamic link library includes an import table, an export table, a resource segment, a code segment, a data segment, a positioning table and a DLL header; The import table is used to link external application software; The export table is used to store different encryption strategies; The resource segment is used to store resources used in the DLL, such as icons, bitmaps, dialog templates, and strings; The code segment is used to store executable code; The data segment is used to store global data and variables; The positioning table is used to adjust the code and data addresses when loading the DLL; The DLL header includes information about the DLL's version, size, and entry point.

3. A security software protection method according to claim 2, characterized in that: The process of dividing the application software into different software components includes: The application software is divided into several software components, including the application registration part, the application usage verification part and the software main body part. The application registration part is used for users to register their identity information; The application use verification part is used for the user to perform face recognition authentication before using the application software, that is, the user needs to access the database resources on the server side through the network to compare feature information; The software main body is used to manage the data files in the application software after the application software is running.

4. A security software protection method according to claim 3, characterized in that: The process of the user registering identity information includes: The user first needs to register by taking a face photo containing his / her facial information through the camera or uploading it from the album, upload the face photo taken by the camera or in the photo to the server, obtain the corresponding facial information by processing the face photo, and upload the obtained facial information to the server for storage.

5. A method for protecting secure software according to claim 4, characterized in that: The process of processing face photos is as follows: The color image is converted into a grayscale image by weighted averaging method; Perform key point detection on the obtained grayscale image, scale the coordinates of the detected key points to the same size, and then translate all key points to the same reference position; After completing the normalization processing of the key points, the Euclidean distance between the key points, the angle formed by the key points, and the distance ratio between the key points are obtained, so as to obtain the corresponding distance feature, angle feature, and ratio feature; According to the obtained geometric features, the corresponding feature vector is constructed as the face recognition information.

6. A method for protecting secure software according to claim 3, characterized in that: The application use verification part is used for the process of face recognition authentication before the user uses the application software, including: First, the user's facial image must be collected through the camera and then uploaded to the server. After the corresponding facial image processing, the corresponding facial information is obtained, and the obtained facial information is compared and matched with the user's facial information stored in the server. If the match is successful, the user's identity is considered to be legal, and the server will feedback the result to the application software and authorize the application software to start the relevant functions of the software; if the match fails, the user's identity is considered to be illegal and a secondary facial recognition is performed.

7. A method for protecting secure software according to claim 3, characterized in that: The process of tamper-proofing data files in application software includes: Convert the data file generated in the application software into a corresponding data stream, and read the data length of the data stream, denoted as L; Set the data length threshold L0; If L≤L0, the data stream is not processed, otherwise if L>L0, the data stream is decomposed into several data stream segments; The data stream converted from the data file or the data stream segment differentiated from the data stream is recorded as plaintext data, and the length of the plaintext data is recorded as m; Encrypt the obtained plaintext data, that is: Then set prime number q and prime number p, where q>1024, p>1024; Multiply the set prime number q by the prime number p to obtain the corresponding product, recorded as n; Where n=q×p; Based on the set prime number q and prime number p, the corresponding Euler function is obtained, which is denoted as ϕ(q, p); where ϕ(q,p)=(p−1)×(q−1); A public key exponent is set, and the public key exponent is recorded as e. It should be further explained that in the specific implementation process, the public key exponent e needs to satisfy 1<e<ϕ(q, p) and be relatively prime to ϕ(q, p); According to the set public key exponent, obtain the corresponding private key exponent, and record the private key exponent as d; where d×e≡1(mod ϕ(n)); Then we get the public key and private key respectively, where the public key is (n, e) and the private key is (n, d); Encrypt the plaintext data according to the obtained public key to obtain encrypted data, and record the encrypted data as c; Among them, c≡m e (modn); Obtain a hash value of the plaintext data, and record the obtained hash value as the message digest of the encrypted data, recorded as hash; Where, hash=H(m), H is the hash function; Encrypt the obtained message digest according to the obtained private key to obtain the corresponding digital signature, which is recorded as signature; Signature = hashd(modn); Send the encrypted data and digital signature to the user; The user decrypts the received encrypted data and verifies whether the data has been tampered with.

8. A method for protecting secure software according to claim 7, characterized in that: The process of a user decrypting the received encrypted data and verifying whether the data has been tampered with includes: The user calculates the received encrypted data to obtain a hash value of the received encrypted data; Then decrypt the received digital signature using the public key to obtain the original message digest; The hash value of the received encrypted data is compared with the original message digest. If the comparison results are consistent, it means that the data file has not been tampered with. Otherwise, it means that the data file has been tampered with or the digital signature does not match.