CN100346255C - Software copy right protecting method for extracting partial code to enciphed device from software - Google Patents

Software copy right protecting method for extracting partial code to enciphed device from software Download PDF

Info

Publication number
CN100346255C
CN100346255C CNB200510109229XA CN200510109229A CN100346255C CN 100346255 C CN100346255 C CN 100346255C CN B200510109229X A CNB200510109229X A CN B200510109229XA CN 200510109229 A CN200510109229 A CN 200510109229A CN 100346255 C CN100346255 C CN 100346255C
Authority
CN
China
Prior art keywords
code
software
encryption
encryption device
code block
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
CNB200510109229XA
Other languages
Chinese (zh)
Other versions
CN1749915A (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 Jianshi Chengxin Technologies Co., Ltd.
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CNB200510109229XA priority Critical patent/CN100346255C/en
Publication of CN1749915A publication Critical patent/CN1749915A/en
Application granted granted Critical
Publication of CN100346255C publication Critical patent/CN100346255C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The present invention relates to a software copyright protecting method, particularly to a software copyright protecting method by extracting partial codes from a program file to an encrypting device. By decomposing codes of the compiled program file, partial decomposed code blocks run in the encrypting device, and the other partial codes run in a computer. Thus, software developers do not need to exert too much energy to program a protecting functional module of software in the process of developing a software product. The encryption safe intensity is enhanced at the same time that the burden of the software developers is not increased, and only the partial codes of the program file of the software product to be protected need to be decomposed into blocks and stored in the encrypting device so as to solve the problem that the combination of application codes and casing codes bound in a later period in a traditional casing encryption is not tight enough, and the problem that a decrypting method of casing encryption has a certain universality in theory. The safe intensity of the casing encryption can basically approach to the encryption protection realized by a source code programming mode.

Description

Extract the software copyright protecting method of partial code to the encryption device
Technical field
The present invention relates to a kind of software copyright protecting method, particularly based on the program file that contains instruction code that after compiling, is generated, a kind of software copyright protecting method of partial code to the encryption device that extract.
Technical background
Program file: the file that contains binary instruction code that refers to after compiling to be generated.The present invention is exactly the technical scheme at the software copyright protection of program file enforcement.
Data file: be meant that mainly those do not contain the file of instruction code, as picture, document, database file etc.
The code of mentioning herein then only refers to binary instruction code as no special note explanation.
Source code file: be generally text formatting, comprise and to be discerned character string and the identifier that is used to describe program circuit and computation rule by corresponding compiler, can be exchanged into program file through compiler processes.
The software pirate version is the numerous developers' of puzzlement a great difficult problem always for many years; so having to just drop into energy in the performance history of software product, many developers go making software defencive function module; especially those prices are higher relatively, towards the professional software product of specific industry.
But drop into energy and go to realize that the software protection function is not to receive special effect in a Products Development process, finally the protection effect that can reach not is always to be directly proportional with the energy that drops into.Relevant with software protection and encryption after all function development need according to the concrete characteristics of software product, be formulated the software protection scheme based on certain practical experience, and just sets about the amount body design of protection scheme at the initial stage of software development.The existence of the complicacy that realizes just because of the software protection function so the developer still can select the ready-made software protection series products of a cover mostly, and is gone in the later stage of software development is attached to oneself product.
In the product aspect numerous software protections, the lock of software cryptography for many years product remains the protected software product of being familiar with and being commonly used for everybody.
Encryption lock also claims softdog, it is a kind of a kind of small hardware device that has separate CPU, RAM and nonvolatile memory, it can be connected with computing machine by the data communication interface of computing machine, can store, management data, and can preset the cryptographic algorithm function, but also the later stage customizes the part algorithm function voluntarily simultaneously.When a software product combines after encryption lock protects, software just can't leave encryption lock and normal operation, and this software product just intangibly has been bundled in encryption lock hardware, software just look like pinned by this device like, so the title encryption lock.
Carry out software protection based on encryption lock at present and mainly contain dual mode:
The one, the api interface that the merchant of combining encryption Lock Factory is provided is transformed software function, embeds the visit to the encryption lock function in source code, and the software of controlling oneself is bound mutually with data or algorithm in the lock.After breaking away from encryption lock, the important module that makes program during the program run as much as possible just can't normally move, even the program file and the data file that leave in like this on the hard disk have been replicated, as long as encryption lock is not replicated, the inevitable participation that still need encryption lock during running software so, thereby software also just can't be by piracy.
Shortcoming: need specialized procedure person to come the exploitation of embodiment, the construction cycle is long, and the protection controllable intensity is low, and intensity is subject to developer's experience, and the protection intensity of the encryption function module that the people developed that development Experience is abundant more can be higher relatively.
The 2nd, the tool software that utilizes encryption lock manufacturer to be provided is directly operated the program file that development environment generated, thereby makes this file in conjunction with last defencive function module, and promptly shell is encrypted.
Shortcoming: there is certain similarity in the process that cracks of the different application software that same shell Encryption Tool is protected, and protected content can be reappeared in the internal memory of computing machine.The code association that application code and later stage shell Encryption Tool insert is loose, and the accumulation by the time can intactly separate and finally be cracked in theory.(that is, similarity, reappearance, laxity)
The shell encryption mainly is meant has been transformed by the structure of the program file that contains order code that compiler generated one, another or a plurality of binary file fragment that contains order code can successfully be combined with this file, form a new program file.Some is similar to the computer virus technology on principle, and if the code snippet that this section later stage inserts can play anti-piracy effect, the encryption lock shell that is exactly in the industry so to be commonly called as is encrypted.The present invention is exactly a kind of improvement at existing encryption lock shell encryption technology.The process that cracks of using the different application software that the present invention protected will have very big difference, protected content will can not appear in the internal memory of computing machine.Be broken down into operation part and the interior operation of encryption device part in the computing machine through the application software that the present invention protected; the normal execution of application software closely is associated with the corresponding encryption device that has application program part code snippet, so can more be difficult to be cracked with respect to existing shell encryption technology.Solved above-mentioned deficiency of the prior art.
In the practical application of Software Protection Technique, many developers can think that the design of encrypting module is the thing that bothers very much, thereby the software protection scheme of a great deal of is arranged all is just to take up design when software is about to issue.Such protection scheme is generally all too coarse in design; though encrypting module finally can be compiled into the function code of software self; but get undertighten because encrypting module logically combines with original software application functional module, also often very easy the analysis clearly with regard to decrypted person of software is cracked.And being introduced in of shell encryption technology broken through this respect restriction to a certain extent; the exploitation of the application function of software and the realization of encryption function can be carried out fully independently; the software protection functional module can be gone by the specialized company in this field to finish; so not only can save the design for scheme process fully; and also have certain security intensity, can be described as " getting twice the result with half the effort ".
The basic functional principle synoptic diagram of existing shell encryption technology can be referring to accompanying drawing Fig. 1.
Just generated binary program file " APP " behind the source code file process compiler of being correlated with in certain software project as shown in Figure 1, and the compiling of linker, the link process.And the code that on behalf of software protection and the functional module relevant with checking, code block shown in Figure 1 " BIN " realize.Through adding the analysis of shell instrument to original program file structure, the header by revised file combines two parts code, has just formed a new shielded executable file.And this new program file under the situation that service condition satisfies with protected before the external behavior of program to show be the same, and when service condition does not satisfy, just can't normally move.So just make original program file seem as having worn one deck coat, and everybody more get used to being called shell.In the shell encryption technology, the effect that shell played is exactly to be wrapped on the program file, makes the illegal user of software can't see its information (as code or data message, function performance when software normally uses or the like) originally.Some instrument is in adding the shell process, details characteristics according to the program file form, meeting utilization adds the shell instrument encrypts the content of " APP " code block among Fig. 1, just can be reduced normal execution thereby make original program code to exist under the prerequisite at " BIN " code.This way makes Cipher Strength further be promoted, but we also can be easy to see from Fig. 1, the function code of shell logically and very significantly separatrix is arranged between the code of protected program file.Though the code of shielded program file is on the surface less than real content; but during program run; the content and the protected preceding content of code in internal memory that are loaded in the internal memory almost are identical, and this is the dangerous place of existing just shell encryption technology also.
From top analysis; we recognize that existing shell is encrypted in technical its inborn deficiency that has; mainly be because the software protection functional module is to bind mutually with the main functionality code of application software in the later stage; and this binding is data splicing simply just; two parts code does not have too much inner link; this makes when utilizing crack tool to analyze, and still is easy to tell shell code and original program code.The code of shell is almost got in touch with the source code function nothing of program, and the code content of shell is relatively-stationary often.Just because of this section code and institute protected software function code get in touch too loose and relatively-stationary characteristic, make always have certain versatility with relevant the cracking of software protection of shell encryption.Promptly based on two software products with the protection of a, same version shell Encryption Tool, as long as one of them product is cracked, the process that cracks to another product also is very similar substantially so.
In addition; existing shell encryption technology in fact more is the protection to the content of program file on disk; and program is when normally moving; must be in a certain internal memory that is engraved in computing machine its true content of reduction; and among the just feasible at that moment program code of being protected by shell that restoring operation takes place is exposed to internal memory fully; and these codes that revert in the internal memory are caught, just might very intactly recover the original looks of the program protected by shell.Problem that so the reappearance of program file content in internal memory also is existing shell resist technology can't avoid.
Discussed unavoidable several problems in the existing shell encryption technology above:
Figure C20051010922900091
The similarity of the process that cracks of the distinct program of protecting with a shell.
Figure C20051010922900092
The reappearance of code in internal memory of the program of being protected by shell.
Figure C20051010922900093
The function code of shell and protected program are got in touch laxity.
Summary of the invention
The present invention has overcome above-mentioned defective; provide a kind of application software developer that can guarantee to simplify own software protection design for scheme, and the software copyright protecting method of the extraction partial code that the while can promote the software copyright protection security intensity to the encryption device.
The present invention solves the technical scheme that its technical matters takes: a kind of software copyright protecting method of partial code to the encryption device that extract; binary code after the program file compiling is decomposed into two parts; the code block that wherein decomposites moves in encryption device; the binary code of remainder moves in computing machine, and its step is as follows:
1) the program coding analysis engine decomposites a plurality of code blocks from the binary code after the program file compiling;
2) the code encryption engine is transformed into the code block that decomposites in the encryption device;
3) the file processing engine will visit described code block required with the function bondage encryption device communication to the binary code of remainder.
Also can comprise a Simulation execution process in the described step 1), be used for before the code block that will decomposite moves to encryption device, in computing machine, carry out the analog simulation operation, if simulation process failure, then re-execute step 1), as the simulation process success, then execution in step 2).
Described Simulation execution process can be the analysis to resource consumption, judges when described resource consumption is unreasonable that after analysis then re-execute step 1), reasonable as resource consumption, then execution in step 2).
File processing engine in the described step 3), can insert the extracode calling sequence that turns to the visit encryption device between the binary code with the code block that extracts and remainder, set up the code block of extraction and the corresponding relation between the remainder binary code.
File processing engine in the described step 3) can comprise also with the extraction between the binary code of remainder that filling process was carried out in the cavity after the code block.
The extraction of described code block can be chosen by following several modes:
(a) random fashion is chosen, and the software developer can set the scope of the code block number change of extraction, and the variation range of each code block size is used for the randomness of control routine piece selection operation.
(b) choose automatically, provide and call the frequency analysis result, determine to select to call the suitable code block of frequency by the software developer.
(c) position of software developer's appointment codes BOB(beginning of block) and end.
Described encryption device can be the encryption device with safe storage function that is used for software copyright protection, comprises encryption lock, encrypted card.
The present invention is by being decomposed into two parts with the code in the program file; at least one code block that extracts is moved in computing machine; remainder moves in encryption device; make the software developer in the performance history of software product, needn't drop into too much energy and remove the making software defence program; when promoting the security intensity of encrypting, do not increase the burden of application software developer; only need resolve into piece with the partial code of the program file of claimed software product, in the encryption device of restoring.The encryption device of computer program stored file part code had the function of protected program file; encryption device with protected program file get in touch fully; thereby solved conventional enclosure encrypt the shell code that bind when the middle and later periods combine with the code of application must undertighten problem, make the difficulty that cracks of shell to be improved.The crack method that has solved the shell encryption simultaneously has the problem of certain versatility, the encipherment protection that this security intensity that just makes shell encrypt can be realized near the source code mode of writing basically in theory.
Description of drawings
Fig. 1 is the principle of work synoptic diagram of existing encryption technology
Fig. 2 is the principle of work synoptic diagram among the present invention
Fig. 3 is the overall workflow figure among the present invention
Fig. 4 is the workflow diagram of program Coded Analysis engine among the present invention
Fig. 5 is the workflow diagram of code encryption engine among the present invention
Fig. 6 is the workflow diagram of document processing module among the present invention
Fig. 7 is the workflow diagram of instruction simulation process among the present invention
Embodiment
The present invention decomposes the instruction code information of claimed application file according to the cryptography principle; the instruction code that extracts the ratio that is fit to relatively destroys the visual integrality of code information in computing machine in the claimed program file in encryption device.Should guarantee that the code information amount can not be excessive, be no more than the processing power of encryption device, guarantee again that simultaneously the data message that institute decomposes and extracts can decrypted person not utilize the reverse derivation of the extraction remaining code information in back to come out.When encrypting for same program file, each code block that is extracted is big more, and the quantity of each code block that extracts the security meeting is high relatively more more at most.Random value as for the quantity of concrete size, variation range and the code block of each code block can be set up on their own according to the resource requirement situation of oneself using by the developer, also can set the numerical range of acquiescence, thus the controllability of the degree of randomness that the enhancing code block is chosen.
Basic thought of the present invention is exactly that the original code of the program file of operation is on computers resolved into two parts, transfers to and goes operation in the encryption device by extracting a part of code segment, and the remainder code is operation on computers still.Two parts after being decomposed complement each other, when two parts entity exists simultaneously, its external behavior performance with encrypt before the function of a complete applications be consistent, if but when lacking code in the encryption device application program then fully can't be before program encryption operate as normal.It realizes principle as shown in Figure 2; original program file " APP " 205 is decomposited several sizeable code blocks 201 by a program coding analysis engine from claimed program file, extract the code block that decomposites and be transformed into 201 among the formation figure in the encryption device 202 by the code encryption engine.Between the cavity position 204 of the program 203 that is removed partial code is by document processing module and code block 201, set up corresponding relation, guarantee in running program running process, still to be complete application program.For the application program of difference in functionality, the code content of program file itself will inevitably be different.The present invention be in program file picked at random not the code block of determined number extract in the encryption device, or extract code block by the frequency of user's appointment, initial and the end position of the code block that each will be extracted all has uncertain factor, thereby the content in the immigration encryption device can have very complicated combination, so make that each data of encrypting in institute's immigration encryption device all can be different, thereby avoided the problem of the similarity of the process that cracks that existing shell encryption technology exists fully.For different application programs, and same program file different time is when encrypting, and the code block content that is decomposited all can change to some extent, and the process that cracks for the program enforcement that the present invention handled all can possess certain otherness so in theory.The present invention's important function reference position that also can set or appointment higher to usage frequency is carried out code and is extracted protection in addition, and like this in the protection property of there are differences not only that guarantees between different program files, and protection is more targeted.Thereby can there be a similarity of the process that cracks of existing shell encryption technology in conjunction with the software that the present invention protected.
In the present invention, encryption device 202 can adopt the encryption lock technology based on the smart card system, and smart card has the very strong anti-logic and the characteristic of physical attacks, widely is applied to the financial field always.And high-end now encryption lock product combines smart card already, this series products has entered practical commercial field for many years, encryption lock technology based on the smart card system confirms to move very well in practice, be stored in data in the encryption lock or code and take which type of mode to attack all to be very because of difficulty, this just reaches in theory and puts into practice the aspect and all established foundation stone as safe as a house for the present invention is based on product that smart card realizes.The concrete encryption device that adopts what form can decide according to the demand to the security intensity of copyright protection as the entity of storage code; the security intensity of scheme and the security intensity of particular hardware are related, but basic thought of the present invention is applicable to all encryption devices relevant with software copyright that can be used for the information security storage.
Its specific implementation step as shown in Figure 3; after beginning step 301; after protected program file loaded by step 302; through detection and scanning to the original program file; protection code segment length by step 303 display routine file, data segment length are in interior information; the user can set by step 304 pair parameter; the mode of choosing as code block; extract the variation range of code block quantity, the variation range of code block size; the mode that the position is chosen begins to carry out the leaching process to code block afterwards.By step 305 program coding analysis engine program is decomposed, by step 306 code encryption engine, at different encryption devices, convert the code block that extracts to corresponding encryption format, by step 307 above-mentioned code block is deposited in the encryption device, fill up by step 308 and extract some space and corresponding with code in the encryption device.Judge by step 309 whether the number of setting code block is all finished at last, if all finish then finish by step 310.
Be the workflow diagram of program coding analysis engine as shown in Figure 4, we can see that the decomposition of code must carry out according to the result of instruction simulation from Fig. 4, hardware resource in the encryption device is can't compare with the resource of computing machine far away after all, select the code block of length and resource consumption appropriateness to decompose and be very important, will be very beneficial for improving the reliability of entire tool and stability so before really being transformed into code block in the encryption device, introduce a simulation process.Each code block that will extract by step 401 carries out step 402 Simulation execution in computing machine, judge in step 403 whether simulation is successful, if success then execution in step 404 withdraw from after decomposing codes, if success then directly withdraw from, thus the validity of the code block that extracts guaranteed.As shown in Figure 7, be the workflow diagram of instruction simulation, after step 701 instruction fetch, by the decoding and the execution of step 702,703 pairs of instructions, and, carry out next step encryption conversion operations thereby choose optimal code block by step 704 analysis resource consumption.
The engine of code encryption shown in Fig. 5 mainly is the reciprocal process of completion code blocks of data and encryption lock.Though utilize the program coding analysis engine can directly decomposite claimed code block, these code blocks can not directly leave in the encryption lock and just can arbitrarily call.The code block of depositing in their original code place of being extracted and the lock must have a kind of corresponding relation that calls execution, present embodiment has extracted 5 code blocks 201 altogether as shown in Figure 2, and after ciphering process is finished, the also corresponding code block of having deposited in 5 devices 201 in encryption device.So when program is carried out these 5 any one position that was extracted code block, all must can index institute and transfer to corresponding code block in the device, promptly can index piece 1 during the execution of 1 place in the position, in like manner can index piece 5 during the execution of 5 places in the position.The code encryption engine is responsible for setting up this corresponding relation exactly, and generate the data directory information of the code block in the encryption device be used to accordingly retrieve, read out the code block quantity of having decomposed by step 404 via step 501, N=5 in the present embodiment, set up data directory information by step 502 again, make program in operational process, can successfully call the code block program fill order of having extracted, code block is deposited in the described encryption device through step 503 again, withdraw from after judging the encryption of each code block all executed finishes by step 504 again.
Be the document processing module course of work as shown in Figure 6, this process mainly be responsible for by step 601 with protected function code bondage to claimed program file.Document processing module of the present invention is transferred to program code this function of going in the encryption device for what cooperate the code crypto engine, it will be after the code decomposable process, with the extraction between the code of the remainder of original program file the cavity after the code block carry out suitable filling by step 602, insert the extracode calling sequence that turns to the visit of encryption device function.And to guarantee the scene of protection present procedure operation before entering encryption device calls at these codes that inserted of run duration.When implementation also will recover on-the-spot after the encryption device funcall is returned, and by step 603 information of returning in the encryption device is assembled into the structure that adapts and is pressed in the current program execution stack, thereby make code imperceptible original this section code adjacent be removed with the code that is removed.
Described code is filled can adopt multiple mode, and the machine code shown in it is not to be the false code relevant with particular platform, and be intended to description code and fill principle and flow process, not specific implementation effect of the present invention.As the funcall of the CALL key that hereinafter mentioned representative to encryption device, the required parameter information of function that calls encryption device has been represented in PUSH instruction adjacent on it, actual realization will more than illustrated situation complexity many, too at length do not analyze the concrete realization details under all situations here.
Example a: be a software code fragment that will be extracted, the execution of not extracting code when operation code should be successively from L1, L2 ..., L8.
L1:PUSH?AX
L2:PUSH?BX
L3:MOV?BX,CX
L4:ADD?AX,BX
L5:XOR?AX,DX
L6:ADD?CX,AX
L7:PUSH?BX
L8:PUSH?AX
Example b: be one and be extracted the code snippet that produces the cavity.
L1:PUSH?AX
L2:PUSH?BX
---
---
---
---
L7:PUSH?BX
L8:PUSH?AX
Example c: illustrated one directly to add the encryption device funcall at place, code cavity, and with all the other space L5, L6 place with NOP instruction polishing disposition, to begin to carry out and call the associative operation of encryption device function when program run is to L3 behind the polishing, when turning back to L5, L6, performed NOP instruction can not broken the assurance of the situation up and down program of the current execution of ring and be carried out L7, L8 place in turn.
L1:PUSH?AX
L2:PUSH?BX
L3:PUSH?n
L4:CALL?key
L5:NOP
L6:NOP
L7:PUSH?BX
L8:PUSH?AX
Example d: illustrated one directly to add the encryption device funcall at the place, cavity, and added a certain amount of random bytes (DB Rand), directly jumped to L7 at the L5 place and walked around the random bytes of being inserted, still made at the implementation effect of having replenished before the implementation behind the funcall code of encryption device and extraction and the insertion code in full accord.
L1:PUSH?AX
L2:PUSH?BX
L3:PUSH?n
L4:CALL?key
L5:JMP?L7
L6:DB?Rand
L7:PUSH?BX
L8:PUSH?AX
Example e: signal finishes the hereinafter instruction of closing, add the instruction (MULAX that obscures logic, BX, ADD DX, AX), and add subsequently encryption device funcall code, though increased in some code blocks that will replace non-existent instruction originally, the result who carries out still with before being extracted is consistent, and the script looks of code at the place of being extracted more were difficult to decrypted person and guessd out this moment.
L1:PUSH?AX
L2:PUSH?BX
L3:MUL?AX,BX
L4:ADD?DX,AX
L5:DB?Rand
L6:CALL?key
L7:PUSH?BX
L8:PUSH?AX
Example f: illustrated the disposal route that encryption device funcall (Call key) substituted some original instructions with two.
L1:PUSH?AX
L2:PUSH?BX
L3:PUSH?n1
L4:CALL?key
L5:PUSH?n2
L6:CALL?key
L7:PUSH?BX
L8:PUSH?AX
The present invention fundamentally solved conventional enclosure encrypt the shell code that bind when the middle and later periods combine with the code of application must undertighten problem, make the difficulty that cracks of shell to be improved.The crack method that has solved the shell encryption simultaneously has the problem of certain versatility, the encipherment protection that this security intensity that just makes shell encrypt can be realized near the source code mode of writing basically in theory.Importantly the present invention is the burden that does not increase application software developer when promoting the security intensity of encrypting; what only need do is exactly to import required relevant parameter simply, just the software copyright protection function is attached in the middle of the software product that they will issue.
More than partial code to the software copyright protecting method in the encryption device that extracts from program file provided by the present invention is described in detail, used specific case herein principle of the present invention and embodiment set forth.The explanation of above embodiment just is used for helping to understand method of the present invention and core concept thereof; Simultaneously, for one of ordinary skill in the art, according to thought of the present invention, part in specific embodiments and applications all can change.In sum, this description should not be construed as limitation of the present invention.

Claims (7)

1. one kind is extracted the software copyright protecting method of partial code to the encryption device; it is characterized in that: the binary code after the program file compiling is decomposed into two parts; the code block that wherein decomposites moves in encryption device; the binary code of remainder moves in computing machine, and its step is as follows:
1) the program coding analysis engine decomposites a plurality of code blocks from the binary code after the program file compiling;
2) the code encryption engine is transformed into the code block that decomposites in the encryption device;
3) the file processing engine will visit described code block required with the function bondage encryption device communication to the binary code of remainder.
2. the software copyright protecting method of extraction partial code according to claim 1 to the encryption device; it is characterized in that: also comprise a Simulation execution process in the described step 1); be used for before the code block that will decomposite moves to encryption device; in computing machine, carry out the analog simulation operation; if simulation process failure; then re-execute step 1), as the simulation process success, then execution in step 2).
3. the software copyright protecting method of extraction partial code according to claim 2 to the encryption device; it is characterized in that: described Simulation execution process is the analysis to resource consumption; after analysis, judge when described resource consumption is unreasonable; then re-execute step 1); reasonable as resource consumption, then execution in step 2).
4. according to claim 1 or the 2 or 3 described extraction partial codes software copyright protecting method to the encryption device; it is characterized in that: the file processing engine in the described step 3); insert the extracode calling sequence that turns to the visit encryption device between the binary code with the code block that extracts and remainder, set up the code block of extraction and the corresponding relation between the remainder binary code.
5. according to claim 1 or the 2 or 3 described extraction partial codes software copyright protecting method to the encryption device; it is characterized in that: file processing engine in the described step 3) comprised also with the extraction between the binary code of remainder that filling process was carried out in the cavity after the code block.
6. according to claim 1 or the 2 or 3 described extraction partial codes software copyright protecting method to the encryption device, it is characterized in that: the extraction of described code block is chosen by following several modes:
(a) random fashion is chosen, and the software developer can set the scope of the code block number change of extraction, and the variation range of each code block size is used for the randomness of control routine piece selection operation;
(b) choose automatically, provide and call the frequency analysis result, determine to select to call the suitable code block of frequency by the software developer;
(c) position of software developer's appointment codes BOB(beginning of block) and end.
7. according to claim 1 or the 2 or 3 described extraction partial codes software copyright protecting method to the encryption device; it is characterized in that: described encryption device is the encryption device with safe storage function that is used for software copyright protection, comprises encryption lock, encrypted card.
CNB200510109229XA 2005-10-19 2005-10-19 Software copy right protecting method for extracting partial code to enciphed device from software Active CN100346255C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200510109229XA CN100346255C (en) 2005-10-19 2005-10-19 Software copy right protecting method for extracting partial code to enciphed device from software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200510109229XA CN100346255C (en) 2005-10-19 2005-10-19 Software copy right protecting method for extracting partial code to enciphed device from software

Publications (2)

Publication Number Publication Date
CN1749915A CN1749915A (en) 2006-03-22
CN100346255C true CN100346255C (en) 2007-10-31

Family

ID=36605391

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510109229XA Active CN100346255C (en) 2005-10-19 2005-10-19 Software copy right protecting method for extracting partial code to enciphed device from software

Country Status (1)

Country Link
CN (1) CN100346255C (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100446023C (en) * 2006-04-26 2008-12-24 何波 Method for protecting program information of program actuator
CN100446019C (en) * 2006-07-19 2008-12-24 北京飞天诚信科技有限公司 Software copyright protection method
CN100461200C (en) * 2006-12-22 2009-02-11 北京飞天诚信科技有限公司 Method and device for realizing software protection in software protector
CN101571900B (en) * 2009-06-01 2011-01-19 薛明 Software copyright protection method, device and system
CN101853357A (en) * 2010-04-28 2010-10-06 北京飞天诚信科技有限公司 Software protection method
CN102012858B (en) * 2010-06-29 2012-12-12 飞天诚信科技股份有限公司 Method for simulating software operation
CN101964040B (en) * 2010-09-10 2012-07-04 西安理工大学 PE loader-based software packing protection method
CN103729579B (en) * 2014-01-02 2016-11-16 北京深思数盾科技股份有限公司 The method for protecting software of function level
WO2015192637A1 (en) * 2014-06-17 2015-12-23 北京奇虎科技有限公司 Method and apparatus for reinforced protection of software installation package
CN104573423B (en) * 2015-01-26 2017-10-31 无锡信捷电气股份有限公司 A kind of PLC software and hardware combinings encryption protecting method
CN106548046B (en) * 2016-10-25 2020-11-20 北京纬百科技有限公司 Device and method for protecting code
CN108804880B (en) * 2017-04-28 2020-07-10 中移(杭州)信息技术有限公司 Software generation method and device
CN110334487A (en) * 2019-06-12 2019-10-15 中国舰船研究设计中心 A kind of virtual machine image copy-right protection method based on digital watermarking

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1064558A (en) * 1992-03-23 1992-09-16 天宇光电技术开发有限公司 The function encryption method of computer software and device thereof
US20030221116A1 (en) * 2002-04-15 2003-11-27 Core Sdi, Incorporated Security framework for protecting rights in computer software
CN1523504A (en) * 2003-02-18 2004-08-25 盖内蒂克瓦尔有限公司 Information checking apparatus and method for guaranteeing security and non-modification property for remote loading data
CN1527173A (en) * 2003-03-03 2004-09-08 ���µ�����ҵ��ʽ���� Information processing device and information processing method
US20050062998A1 (en) * 2003-09-22 2005-03-24 Hiroya Kumashio Information processing device, printing device, print data transmission method, printing method, print data transmitting program, and recording medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1064558A (en) * 1992-03-23 1992-09-16 天宇光电技术开发有限公司 The function encryption method of computer software and device thereof
US20030221116A1 (en) * 2002-04-15 2003-11-27 Core Sdi, Incorporated Security framework for protecting rights in computer software
CN1523504A (en) * 2003-02-18 2004-08-25 盖内蒂克瓦尔有限公司 Information checking apparatus and method for guaranteeing security and non-modification property for remote loading data
CN1527173A (en) * 2003-03-03 2004-09-08 ���µ�����ҵ��ʽ���� Information processing device and information processing method
US20050062998A1 (en) * 2003-09-22 2005-03-24 Hiroya Kumashio Information processing device, printing device, print data transmission method, printing method, print data transmitting program, and recording medium

Also Published As

Publication number Publication date
CN1749915A (en) 2006-03-22

Similar Documents

Publication Publication Date Title
CN100346255C (en) Software copy right protecting method for extracting partial code to enciphed device from software
CN1242323C (en) Disorder source program, souce program conversion method and equipment, and source conversion program
CN100342296C (en) Method for realizing computer software intruder preventing edition based on confidence computation module chip
CN102047220B (en) System and method for generating white-box implementations of software applications
CN101872404B (en) Method for protecting Java software program
CN102346834A (en) Method for encrypting and protecting Java application software
CN1926493A (en) Method and system for linking certificates to signed files
CN1781117A (en) Data processing method
CN1856759A (en) Code obfuscation and controlling a processor by emulation
CN101261666A (en) A method for realizing software copyright protection based on encrypted executable program file
CN1575445A (en) Digital data protection arrangement
CN1975683A (en) Computer network datarecovering method
CN1877595A (en) Software copyright protection method
CN1291328C (en) Method and system for storing divided files and restoring treatment
CN1855086A (en) System and method for analyzing and abstracting data evidence
CN101051339A (en) File protection method and its device
CN111191194B (en) Off-line use permission system for multi-core processor software integrated development environment
CN1898623A (en) Software execution protection using an active entity
CN1862493A (en) Method for creating unique identification for copies of executable code and management thereof
CN100343775C (en) Licensing file generating method, software product protection method and system
Myles et al. The evaluation of two software watermarking algorithms
CN107958141A (en) A kind of method for protecting software based on chip ID number
CN1199110C (en) Software protection method
CN113434148B (en) Decryption-preventing client development compiling method and device, electronic equipment and storage medium
CN112528342B (en) Software protection method based on compiling intermediate result

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING JIANSHI CHENGXIN SCIENCE AND TECHNOLOGY CO

Free format text: FORMER OWNER: BEIJING FEITIAN CHENGXIN SCIENCE AND TECHNOLOGY CO., LTD.

Effective date: 20100408

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 5/F,RESEARCH BUILDING 7A, YAN, NO.40,XUEYUAN ROAD, HAIDIAN DISTRICT,BEIJING CITY TO: 100083 203, 2/F, BUILDING 14, AREA 3, NO.40,XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING CITY,204,205, ROOM 206

TR01 Transfer of patent right

Effective date of registration: 20100408

Address after: 100083, Haidian District, Xueyuan Road, Beijing No. 3, District 14, 40, 2, 203, 204, 205, 206 rooms

Patentee after: Beijing Caine stone integrity Polytron Technologies Inc

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 40 research, 7A building, 5 floor

Patentee before: Beijing Feitian Chengxin Science & Technology Co., Ltd.

C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 2 layer

Patentee after: Beijing Caine stone integrity Polytron Technologies Inc

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 3, District 14, 40, 2, 203, 204, 205, 206 rooms

Patentee before: Beijing Caine stone integrity Polytron Technologies Inc

C56 Change in the name or address of the patentee

Owner name: BEIJING JIANSHI CHENGXIN TECHNOLOGIES CO., LTD.

Free format text: FORMER NAME: BEIJING JIANSHI CHENGXIN TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 2 layer

Patentee after: Beijing Jianshi Chengxin Technologies Co., Ltd.

Address before: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 2 layer

Patentee before: Beijing Caine stone integrity Polytron Technologies Inc