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 processor to perform the method, the method comprising: determining that a computer program has been tampered wi
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 processor to perform the method, the method comprising: determining that a computer program has been tampered with;setting, based on the determination, a plurality of first variables distributed in a first plurality of different locations of the computer program and stored in memory associated with the processor executing the computer program to indicate that the computer program has been tampered with;receiving a request from the computer program to perform a first operation;in response to receiving the request, analyzing at least a quasi-random subset of the plurality of first variables to determine that the computer program has been tampered with;in response to testing the at least quasi-random subset of the plurality of first variables, setting a plurality of second variables distributed in a second plurality of different locations of the computer program to a state indicating that the computer program has been tampered with; andimplementing, based on the analysis, at least one protective response. 2. The method of claim 1, wherein determining that the computer program has been tampered with comprises analyzing the computer program to determine that a portion of the computer program has been altered. 3. The method of claim 1, wherein determining that the computer program has been tampered with comprises analyzing the computer program to determine that a watermark included in the computer program has been altered. 4. The method of claim 1, wherein the at least a subset of the plurality of first variables comprises discontiguous variables within the computer program. 5. The method of claim 1, where the method further comprises setting, in response to analyzing the at least a subset of the plurality of first variables, at least one third variable associated with the computer program stored in memory associated with the processor executing the computer program to indicate that the computer program has been tampered with. 6. The method of claim 1, wherein the at least one protective response comprises performing a second operation different than the first operation. 7. The method of claim 1, wherein the at least one protective response comprises sending an indication to a remote system that the computer program has been tampered with. 8. The method of claim 1, wherein the at least one protective response comprises returning, in response to the request, an error indication to the computer program. 9. A non-transitory computer-readable storage medium storing instructions that when executed by a system comprising a processor, cause the processor to perform a method comprising: setting, based on the determination, a plurality of first variables distributed in a first plurality of different locations of the computer program and stored in memory associated with the processor executing the computer program to indicate that the computer program has been tampered with;receiving a request from the computer program to perform a first operation;in response to receiving the request, analyzing at least a quasi-random subset of the plurality of first variables to determine that the computer program has been tampered with;in response to testing the at least quasi-random subset of the plurality of first variables, setting a plurality of second variables distributed in a second plurality of different locations of the computer program to a state indicating that the computer program has been tampered with; andimplementing, based on the analysis, at least one protective response. 10. The non-transitory computer-readable storage medium of claim 9, wherein determining that the computer program has been tampered with comprises analyzing the computer program to determine that a portion of the computer program has been altered. 11. The non-transitory computer-readable storage medium of claim 9, wherein determining that the computer program has been tampered with comprises analyzing the computer program to determine that a watermark included in the computer program has been altered. 12. The non-transitory computer-readable storage medium of claim 9, wherein the at least a subset of the plurality of first variables comprises discontiguous variables within the computer program. 13. The non-transitory computer-readable storage medium of claim 9, wherein the method further comprises setting, in response to analyzing the at least a subset of the plurality of first variables, at least one third variable associated with the computer program stored in memory associated with the processor executing the computer program to indicate that the computer program has been tampered with. 14. The non-transitory computer-readable storage medium of claim 9, wherein the at least one protective response comprises performing a second operation different than the first operation. 15. The non-transitory computer-readable storage medium of claim 9, wherein the at least one protective response comprises sending an indication to a remote system that the computer program has been tampered with. 16. The non-transitory computer-readable storage medium of claim 9, wherein the at least one protective response comprises returning, in response to the request, an error indication to the computer program.
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.
Schneier Bruce ; Walker Jay S. ; Jorasch James, Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system.
Homing, James J.; Sibert, W. Olin; Tarjan, Robert E.; Maheshwari, Umesh; Home, William G.; Wright, Andrew K.; Matheson, Lesley R.; Owicki, Susan, Software self-defense systems and methods.
Horning, James J.; Sibert, W. Olin; Tarjan, Robert E.; Maheshwari, Umesh; Home, William G.; Wright, Andrew K.; Matheson, Lesley R.; Owicki, Susan S., Software self-defense systems and methods.
Horning, James J.; Sibert, W. Olin; Tarjan, Robert E.; Maheshwari, Umesh; Horne, William G.; Wright, Andrew K.; Matheson, Lesley R.; Owicki, Susan, Software self-defense systems and methods.
Horning, James J.; Sibert, W. Olin; Tarjan, Robert E.; Maheshwari, Umesh; Horne, William G.; Wright, Andrew K.; Matheson, Lesley R.; Owicki, Susan, Software self-defense systems and methods.
Skinner Harry G. ; Delaplane Neil C. ; Mahajan Ravi V. ; Starkston Robert ; Lii Mirng-ji ; Edsall Ron, Substrate for reducing electromagnetic interference and enclosure.
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.
Nardone Joseph M. ; Mangold Richard P. ; Pfotenhauer Jody L. ; Shippy Keith L. ; Aucsmith David W. ; Maliszewski Richard L. ; Graunke Gary L., Tamper resistant player for scrambled contents.
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는 부적절한 답변을 할 수 있습니다.