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.
대표청구항▼
What is claimed is: 1. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program running on a first computer system and being designed to carry out one or more specified tasks, the method including: detecting an attempt to tamper with the s
What is claimed is: 1. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program running on a first computer system and being designed to carry out one or more specified tasks, the method including: detecting an attempt to tamper with the structure or function of the computer program, including: sending a message stamped with time-stamp information to a second computer system, the time-stamp information including a time offset, wherein the second computer system periodically receives the time-stamp information from the first computer system, and determines a difference between the time stamp information and a local time at the second computer system, and wherein a difference between the time stamp information and the local time at the second computer system greater than a predetermined amount is treated as an indication of an attempt to tamper with the structure or function of the first computer system; receiving, at the first computer system, from the second computer system, an indication of attempted tampering; delaying an additional response to detected tampering by at least a first predefined period of time following detection of attempted tampering; responding to detected tampering by using one or more countermeasures. 2. A method as in claim 1, in which the first predefined period of time comprises a minimum time necessary to execute a first predefined sequence of instructions. 3. A method as in claim 1, in which sending an indication of attempted tampering is delayed at least a second predefined amount of time from detection of attempted tampering. 4. A method as in claim 1, in which the one or more countermeasures include branching to code which performs no function necessary for carrying out the one or more specified tasks. 5. A method as in claim 1, in which the one or more countermeasures include spoiling one or more cryptographic keys stored on the first computer system. 6. A method as in claim 1, in which the one or more countermeasures include recording information regarding the status of the program for later use by an external agent. 7. A method as in claim 1, in which the one or more countermeasures include setting one or more predetermined variables to a predefined value. 8. A method as in claim 1, in which the one or more countermeasures including simulating an operating systems error. 9. A method as in claim 1, in which the one or more countermeasures include simulating a system input/output error. 10. A method for resisting attempts to tamper with the structure or function of a computer program, the computer program being designed to carry out one or more specified tasks, the method including: detecting an attempt to tamper with the structure or function of the computer program including: transmitting, to an external agent, a message stamped with time-stamp information, the time-stamp information including a time offset wherein the external agent periodically receives the time-stamp information including the time offset from a computer system on which the computer program is running, and determines a difference between the time-stamp information and a local time at the external agent, wherein a difference between the time-stamp information and the local time at the external agent greater than a predetermined amount is treated as an indication of a attempt to tamper with the structure or function of the computer program; receiving from the external agent, an indication that an attempt to tamper with the structure or function of the computer program was detected; waiting at least a predefined period of time to respond to the attempt to tamper with the structure or function of the computer program; and responding to the attempt to tamper with the structure or function of the computer program. 11. A system for resisting attempts to tamper with the structure or function of a computer program, the system including: means for detecting attempts to tamper with the structure or function of the computer program, including: means for transmitting to an external agent a message stamped with time-stamp information, the time-stamp information including a time offset wherein the external agent periodically receives the time-stamp information including the time offset from the system, and determines a difference between the time stamp information and a local time at the external agent, wherein a difference between the time stamp information and the local time at the external agent greater than a predetermined amount is treated as an indication of an attempt to tamper with the structure or function of the computer program; means for receiving an indication that an attempt to tamper with the structure or function of the computer program was detected; and means for delaying transmission of the indication for a predefined period of time.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (56)
Shear Victor H. (Bethesda MD), Database usage metering and protection system and method.
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.
Shear, Victor H.; Van Wie, David M.; Weber, Robert P., Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information.
Van Wie David M. ; Weber Robert P., Steganographic techniques for securely delivering electronic digital rights management control information over insecure.
David M. Van Wie ; Robert P. Weber, Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels.
Van Wie David M. ; Weber Robert P., Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels.
Van Wie, David M.; Weber, Robert P., Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels.
Strohwig, Marc E.; McGinty, John M.; Sibert, W. Olin, System and method for managing transaction record delivery using an acknowledgement-monitoring process and a failure-recovery process with modifying the predefined fault condition.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., System and methods for secure transaction management and electronic rights protection.
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.
Shear Victor H. ; Van Wie David M. ; Weber Robert P., Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information.
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.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter, Karl L.; Shear, Victor H.; Spahn, Francis J.; Van Wie, David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter, Karl L.; Shear, Victor H.; Spahn, Francis J.; Van Wie, David M., Systems and methods for secure transaction management and electronic rights protection.
Karl L. Ginter ; Victor H. Shear ; Francis J. Spahn ; David M. Van Wie, Systems and methods for secure transaction management and electronic rights protection.
Karl L. Ginter ; Victor H. Shear ; Francis J. Spahn ; David M. Van Wie, Systems and methods for secure transaction management and electronic rights protection.
Karl L. Ginter ; Victor H. Shear ; Francis J. Spahn ; David M. Van Wie, Systems and methods for secure transaction management and electronic rights protection.
Ginter Karl L. ; Shear Victor H. ; Spahn Francis J. ; Van Wie David M., Systems and methods for the secure transaction management and electronic rights protection.
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.
Ginter, Karl L.; Shear, Victor H.; Spahn, Francis J.; Van Wie, David M.; Weber, Robert P., Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management.
DeWitt, Jr., Jimmie Earl; Levine, Frank Eliot; Pineda, Enio Manuel; Richardson, Christopher Michael; Urquhart, Robert John, Counting instruction execution and data accesses.
Lin, Tay-Jyi; Chao, Chie-Min; Liu, Chih-Wei; Jen, Chein-Wei; Liao, I-Tao; Huang, Po-Han, Method and corresponding apparatus for compiling high-level languages into specific processor architectures.
DeWitt, Jr., Jimmie Earl; Levine, Frank Eliot; Richardson, Christopher Michael; Urquhart, Robert John, Method and system for autonomic execution path selection in an application.
Adams, Gregory D; Bennett, Jonathan David; Giffen, Perry Randolph; Martens, Axel; O'Farrell, William Gerald, Method and system for state machine translation.
Challener, David C.; Davis, Mark C.; Hortensius, Peter; Waltermann, Rod D., Method for preventing malicious software from execution within a computer system.
Debate, Jeremy; Alexander, Aaron A.; Villamil, Ricardo; Seibel, James P., Modification of compiled applications and application management using retrievable policies.
DeWitt, Jr., Jimmie Earl; Levine, Frank Eliot; Richardson, Christopher Michael; Urquhart, Robert John, Qualifying collection of performance monitoring events by types of interrupt when interrupt occurs.
Horning, James J.; Sibert, W. Olin; Tarjan, Robert E.; Maheshwari, Umesh; Horne, William G.; Wright, Andrew K.; Matheson, Lesley R.; Owicki, Susan S., Software self-defense systems and methods.
Durand, Robert; Liem, Clifford; Eisen, Philip Allan, System and method for efficiently deploying massively diverse program instances to resist differential attacks.
Lattner, Christopher Arthur; Lattner, Tanya Michelle; Lerouge, Julien; Myles, Ginger M.; Farrugia, Augustin J.; Betouin, Pierre, System and method for obfuscation by common function and common function prototype.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.