Systems and methods for watermarking software and other media
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.
Claims
exact text as granted — not AI-modified1 .- 44 . (canceled)
45 . A method for watermarking computer code performed by a computer 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 comprising:
analyzing the computer code to identify a plurality of watermark locations; inserting a plurality of primer code sequences into the plurality watermark locations to generate primed computer code; and stamping the primed computer code by embedding a plurality of watermark payloads at the locations of the plurality of primer code sequences to generate watermarked computer code.
46 . The method of claim 45 , wherein analyzing the computer code to identify the plurality of watermark locations comprises determining a degree that an insertion of a watermark at the plurality of watermark locations would impact the performance of the computer code.
47 . The method of claim 45 , wherein analyzing the computer code to identify the plurality of watermark locations comprises determining whether the plurality of watermark locations are located in frequently-executed loops in the computer code.
48 . The method of claim 45 , wherein the plurality of primer code sequences comprise code sequences having a distinctive pattern.
49 . The method of claim 45 , wherein embedding the plurality of watermark payloads at the locations of the plurality of primer code sequences comprises replacing the plurality of primer code sequences with the plurality of watermark payloads.
50 . The method of claim 45 , wherein prior to stamping the primed computer code, the method further comprises applying at least one transformation to the primed computer code.
51 . The method of claim 50 , wherein the primed computer code comprises source code and the at least one transformation comprises compilation of the primed computer code into object code.
52 . The method of claim 50 , wherein the primed computer code comprises object code and the at least one transformation comprises linking the object code to form an executable.
53 . The method of claim 50 , wherein the plurality of primer code sequences are unaffected by the at least one transformation.
54 . The method of claim 50 , wherein the at least one transformation transforms the plurality of primer code sequences in a predefined way.
55 . The method of claim 45 , wherein the computer code comprises a plurality of macros and wherein analyzing the computer code to identify the plurality of watermark locations comprises identifying the locations of the macros in the computer code.
56 . The method of claim 55 , wherein inserting the plurality of primer code sequences into the plurality of watermark locations comprises processing the plurality of macros.
57 . The method of claim 55 , wherein the plurality of macros are selected from a library of macros.
58 . The method of claim 57 , wherein each primer code sequence of the plurality of primer code sequences are unique.
59 . The method of claim 45 , wherein the computer code comprises a plurality of inlined functions and wherein analyzing the computer code to identify the plurality of watermark locations comprises identifying the locations of the inlined functions in the computer code.
60 . The method of claim 59 , wherein inserting the plurality of primer code sequences into the plurality of watermark locations comprises processing the plurality of inlined functions.
61 . The method of claim 45 , wherein the computer code comprises at least one macro and at least one inlined function and wherein analyzing the computer code to identify the plurality of watermark locations comprises identifying the locations of the at least one macro and the at least one inlined function.Join the waitlist — get patent alerts
Track US2017300670A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.