Systems and methods for watermarking software and other media
First Claim
1. A method for watermarking computer code, utilizing a system comprising a processor and a memory encoded with program instructions that, when executed by the processor, cause the system to perform the method, the method including:
- searching the computer code for one or more locations for first and second constructs to be inserted, the first and second constructs to be inserted without deleting all or a portion of the computer code and without exchanging existing portions of the computer code;
generating primed computer code by inserting the first and second programming constructs into the computer code at the one or more locations;
finding the first and second programming constructs in the primed computer code; and
generating watermarked computer code by inserting watermarking information at non-contiguous locations indicated by the first and second programming constructs, the watermarking information comprising information at least in part identifying a recipient of the watermarked computer code, the watermarking information being resistant to detection and removal using a collusive or auto-collusive attack.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for embedding information in software and/or other electronic content such that the information is difficult for an unauthorized party to detect, remove, insert, forge, and/or corrupt. The embedded information can be used to protect electronic content by identifying the content'"'"'s source, thus enabling unauthorized copies or derivatives to be reliably traced, and thus facilitating effective legal recourse by the content owner. Systems and methods are also disclosed for protecting, detecting, removing, and decoding information embedded in electronic content, and for using the embedded information to protect software or other media from unauthorized analysis, attack, and/or modification.
120 Citations
21 Claims
-
1. A method for watermarking computer code, utilizing a system comprising a processor and a memory encoded with program instructions that, when executed by the processor, cause the system to perform the method, the method including:
-
searching the computer code for one or more locations for first and second constructs to be inserted, the first and second constructs to be inserted without deleting all or a portion of the computer code and without exchanging existing portions of the computer code; generating primed computer code by inserting the first and second programming constructs into the computer code at the one or more locations; finding the first and second programming constructs in the primed computer code; and generating watermarked computer code by inserting watermarking information at non-contiguous locations indicated by the first and second programming constructs, the watermarking information comprising information at least in part identifying a recipient of the watermarked computer code, the watermarking information being resistant to detection and removal using a collusive or auto-collusive attack. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for inserting a watermark into a computer program, utilizing a system comprising a processor and a memory encoded with program instructions that, when executed by the processor, cause the system to perform the method, the method including:
-
searching the computer program for one or more locations to insert at least two macros, the at least two macros to be inserted without deleting all or a portion of the computer program and without exchanging existing portions of the computer program; inserting the at least two macros into a source code representation of the computer program at the one or more locations, each macro being operable to generate a predefined pattern when the computer program is compiled; compiling the source code to yield an object code representation of the computer program; searching the object code for at least two instances of the predefined pattern; and replacing the predefined pattern with watermarking information, the watermarking information comprising information at least in part identifying a recipient of the watermarked computer code, the watermarking information being resistant to detection and removal using a collusive or auto-collusive attack.
-
-
15. A method for watermarking computer code, utilizing a system comprising a processor and a memory encoded with program instructions that, when executed by the processor, cause the system to perform the method, the method including:
-
searching the computer code for one or more locations to insert a plurality of programming constructs, the plurality of programming constructs to be inserted without deleting or exchanging existing portions of the computer code; generating primed computer code by inserting the plurality of programming constructs into the computer code at the one or more locations; and generating watermarked computer code by inserting watermarking information at locations indicated by the plurality of programming constructs, the watermarking information comprising information at least in part identifying a recipient of the watermarked computer code, the watermarking information being resistant to detection and removal using a collusive or auto-collusive attack. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification