SYSTEMS AND METHODS FOR WATERMARKING SOFTWARE AND OTHER MEDIA
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.
62 Citations
54 Claims
-
1-44. -44. (canceled)
-
45. A method for detecting a watermark embedded in an executable piece of software, the method including:
-
decrypting a portion of the piece of software; comparing a first part of the decrypted portion to a second part of the decrypted portion; and storing the first part of the decrypted portion as a function of the comparison of the first part of the decrypted portion to the second part of the decrypted portion; wherein the first part of the decrypted portion forms at least part of the watermark. - View Dependent Claims (46, 47, 48, 49)
-
-
50. A method for detecting a watermark embedded in an executable piece of software, the method including:
-
maintaining a list of locations within the executable program that contain a portion of watermark data; retrieving at least two portions of watermark data from the locations specified in the list; assembling the watermark from the at least two retrieved portions of watermark data; using the watermark as an index into a database of information; and retrieving a piece of information from the database. - View Dependent Claims (51, 52)
-
-
53. A method for watermarking and distributing a piece of software, the method including:
-
dividing the piece of software into at least a first portion and a second portion; distributing copies of the first portion to a plurality of users; receiving a request to use the piece of software from a first user, the first user possessing a copy of the first portion of the piece of software; generating a copy of the second portion of the piece of software; inserting identification information into the copy of the second portion of the piece of software; combining the first portion of the piece of software with the second portion of the piece of software to form a watermarked copy of the piece of software; and providing the watermarked copy of the piece of software to the first user.
-
-
54. A method for watermarking copies of a computer program, the method including:
-
applying a first combination of obfuscating transformations to a first copy of the computer program, application of the first combination of obfuscating transformations being operable to leave a first observable characteristic in the computer program, the first combination of obfuscating transformations including a plurality of obfuscation processes and embedding the first copy of the computer program with watermark information as a function of choices made during the plurality of obfuscation processes; applying a second combination of obfuscating transformations to a second copy of the computer program, application of the second combination of obfuscating transformations being operable to leave a second observable characteristic in the computer program, the second combination of obfuscating transformations including a plurality of obfuscation processes and embedding the second copy of the computer program with watermark information as a function of choices made during the plurality of obfuscation processes; associating said first and second observable characteristics with information relating to said first and second copies of the computer program, respectively; and whereby detection of the first observable characteristic can be used to retrieve the information relating to the first copy of the computer program, and detection of the second observable characteristic can be used to retrieve the information relating to the second copy of the computer program.
-
Specification