Systems and methods are disclosed for protecting a computer program from unauthorized analysis and modification. Obfuscation transformations can be applied to the computer program's local structure, control graph, and/or data structure to render the program more difficult to understand and/or modify
Systems and methods are disclosed for protecting a computer program from unauthorized analysis and modification. Obfuscation transformations can be applied to the computer program's local structure, control graph, and/or data structure to render the program more difficult to understand and/or modify. Tamper-resistance mechanisms can be incorporated into the computer program to detect attempts to tamper with the program's operation. Once an attempt to tamper with the computer program is detected, the computer program reports it to an external agent, ceases normal operation, and/or reverses any modifications made by the attempted tampering. The computer program can also be watermarked to facilitate identification of its owner. The obfuscation, tamper-resistance, and watermarking transformations can be applied to the computer program's source code, object code, or executable image.
대표청구항▼
1. A method performed by a computer system comprising a processor and a non-transitory computer-readable storage medium storing instructions that when executed by the processor, cause the computer system to perform the method, the method comprising: inserting a plurality of primers in a computer pro
1. A method performed by a computer system comprising a processor and a non-transitory computer-readable storage medium storing instructions that when executed by the processor, cause the computer system to perform the method, the method comprising: inserting a plurality of primers in a computer program;compiling the computer program to generate an executable computer program;customizing the executable computer program to generate a customized executable computer program, wherein the customizing is configured to preserve the plurality of primers;removing the plurality of primers from the customized executable computer program;transmitting the customized executable computer program with the plurality of primers removed to a client computer system; andtransmitting a patch file to the client computer system, the patch file comprising the plurality of primers,wherein the patch file is configured to be merged with the customized executable computer program with the plurality of primers removed by the client computer system. 2. The method of claim 1, wherein the method further comprises: prior to transmitting the customized executable computer program with the plurality of primers removed, encrypting the customized executable computer program. 3. The method of claim 1, wherein customizing the executable program code comprises obfuscating the executable program code. 4. The method of claim 1, wherein the customizing the executable program code comprises identifying the plurality of primers based on one or more flags associated with the plurality of primers, the one or more flags indicating portions of the executable computer program that should not be modified. 5. The method of claim 1, wherein the plurality of primers each comprise assembly language patterns. 6. The method of claim 1, wherein the plurality of primers comprise primers selected from a predetermined set of primer types. 7. The method of claim 1, wherein the computer program comprises a source code computer program. 8. The method of claim 1, wherein the computer program comprises a binary code computer program. 9. The method of claim 1, wherein the customizing is performed by a customization tool, the method further comprising: providing an indication to the customization tool of one or more locations of the plurality of primers. 10. A non-transitory computer-readable storage medium storing instructions that when executed by a system comprising a processor, cause the system to perform a method comprising: inserting a plurality of primers in a computer program;compiling the computer program to generate an executable computer program;customizing the executable computer program to generate a customized executable computer program, wherein the customizing is configured to preserve the plurality of primers;removing the plurality of primers from the customized executable computer program;transmitting the customized executable computer program with the plurality of primers removed to a client computer system; andtransmitting a patch file to the client computer system, the patch file comprising the plurality of primers,wherein the patch file is configured to be merged with the customized executable computer program with the plurality of primers removed by the client computer system. 11. The non-transitory computer-readable storage medium of claim 10, wherein the method further comprises: prior to transmitting the customized executable computer program with the plurality of primers removed, encrypting the customized executable computer program. 12. The non-transitory computer-readable storage medium of claim 10, wherein customizing the executable program code comprises obfuscating the executable program code. 13. The non-transitory computer-readable storage medium of claim 10, wherein the customizing the executable program code comprises identifying the plurality of primers based on one or more flags associated with the plurality of primers, the one or more flags indicating portions of the executable computer program that should not be modified. 14. The non-transitory computer-readable storage medium of claim 10, wherein the plurality of primers each comprise assembly language patterns. 15. The non-transitory computer-readable storage medium of claim 10, wherein the plurality of primers comprises primers selected from a predetermined set of primer types. 16. The non-transitory computer-readable storage medium of claim 10, wherein the computer program comprises a source code computer program. 17. The non-transitory computer-readable storage medium of claim 10, wherein the computer program comprises a binary code computer program. 18. The non-transitory computer-readable storage medium of claim 10, wherein the customizing is performed by a customization tool, the method further comprising: providing an indication to the customization tool of one or more locations of the plurality of primers.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (39)
Drake Christopher Nathan,AUX, Computer software authentication, protection, and security system.
Griffin ; III Roy A. (Oceanside CA) Esserman James N. (San Diego CA) Anderson Steven E. (La Jolla CA) Hart Steven R. (Encinitas CA) Katznelson Ron D. (San Diego CA), Determination of time of execution of predetermined data processing routing in relation to occurrence of prior externall.
Stefik Mark J. (Woodside CA) Russell Daniel M. (Palo Alto CA) Bobrow Daniel G. (Palo Alto CA) Henderson ; Jr. D. Austin (La Honda CA), Document processing system utilizing document service cards to provide document processing services.
Stefik Mark J. (Woodside CA) Bobrow Daniel G. (Palo Alto CA) Card Stuart K. (Los Altos CA) Casey Michalene M. (Morgan Hill CA) Goldstein Richard J. (San Francisco CA) Lamming Michael G. (Cambridge CA, Interactive contents revealing storage device.
Stefik Mark J. (Woodside CA) Bobrow Daniel G. (Palo Alto CA) Pirolli Peter L. T. (El Cerrito CA), System for controlling the distribution and use of composite digital works.
Stefik Mark J. (Woodside CA) Merkle Ralph C. (Sunnyvale CA) Pirolli Peter L. T. (El Cerrito CA), System for controlling the distribution and use of digital works having a fee reporting mechanism.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Horne, William G.; Maheshwari, Umesh; Tarjan, Robert E.; Horning, James J.; Sibert, W. Olin; Matheson, Lesley R.; Wright, Andrew K.; Owicki, Susan S., Systems and methods for watermarking software and other media.
Venkatesan, Ramarathnam; Vazirani, Vijay, Technique for producing, through watermarking, highly tamper-resistant executable code and resulting “watermarked” code so formed.
Hall Edwin J. ; Shear Victor H. ; Tomasello Luke S. ; Van Wie David M. ; Weber Robert P. ; Worsencroft Kim ; Xu Xuejun, Techniques for defining using and manipulating rights management data structures.
Hall Edwin J. ; Shear Victor H. ; Tomasello Luke S. ; Van Wie David M. ; Weber Robert P. ; Worsencroft Kim ; Xu Xuejun, Techniques for defining, using and manipulating rights management data structures.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M. ; Weber Robert P., Trusted and secure techniques, systems and methods for item delivery and execution.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.