Method and apparatus for watermarking binary computer code with modified compiler optimizations
First Claim
Patent Images
1. In a computer system, a method for encoding digital data a watermark in executable computer code generated by a compiler, the watermark including a plurality of binary digits, with the compiler replacing a selected non-optimized code segments with a optimized code segments, the method comprising:
- detecting an optimized code segment; and
changing compiler optimization choices to encode a watermark.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and apparatus for inserting a watermark into a compiled computer program selectively replaces specified optimizations by non-optimized code to encode bit values of the watermark. The watermark is read by decoding the executable code and assigning the decoded bit values, determined by the presence or absence of optimized code, to bit positions in a signature.
-
Citations
11 Claims
-
1. In a computer system, a method for encoding digital data a watermark in executable computer code generated by a compiler, the watermark including a plurality of binary digits, with the compiler replacing a selected non-optimized code segments with a optimized code segments, the method comprising:
-
detecting an optimized code segment; and
changing compiler optimization choices to encode a watermark.
-
-
2. In a computer system, a method for encoding digital data a watermark in executable computer code generated by a compiler, the watermark including a plurality of binary digits, with the compiler replacing a first non-optimized code segment with a first optimized code segment, the method comprising:
for a current binary digit in the watermark;
replacing a first optimized code segment, included in the executable computer code, with a first non-optimized code segment only if the current binary digit has a first value, where the presence of the non-optimized code segment encodes the first value and the presence of optimized code segment encodes the second value of the current binary digit. - View Dependent Claims (3, 4)
-
5. A computer program product including computer readable program code for causing a computer to encode data as a watermark in an executable copy of a computer program generated by a compiler and to decode the watermark to recover the data, with the data including a plurality of digital characters, and with the compiler replacing selected non-optimized code segments with optimized code segments, said computer program product comprising:
a computer readable medium having computer readable program code embodied therein, with said computer readable program code further comprising;
computer readable encoding program code for causing a computer to detect an optimized code segment;
computer readable encoding program code for causing a computer to change compiler optimization choices to encode a watermark.
-
6. A computer program product including computer readable program code for causing a computer to encode data as a watermark in an executable copy of a computer program generated by a compiler and to decode the watermark to recover the data, with the data including a plurality of digital characters, and with the compiler replacing selected non-optimized code segments with optimized code segments, said computer program product comprising:
a computer readable medium having computer readable program code embodied therein, with said computer readable program code further comprising;
computer readable encoding program code for causing a computer to, for a current binary digit in the watermark, replace a first optimized code segment, included in the executable computer code, with a first non-optimized code segment only if the current binary digit has a first value, where the presence of the non-optimized code segment encodes the first value and the presence of optimized code segment encodes the second value of the current binary digit. - View Dependent Claims (7, 8)
-
9. In a computer system, a system for encoding data as a watermark in executable computer code generated by a compiler, the data including a plurality of binary digits, with the compiler replacing a selected non-optimized code segments with a optimized code segments, the system comprising:
-
means for detecting an optimized code segment; and
means for changing compiler optimization choices to encode a watermark.
-
-
10. In a computer system, a system for encoding a data as a watermark in executable computer code generated by a compiler, the data including a plurality of binary digits, with the compiler replacing a first non-optimized code segment with a first optimized code segment, the system comprising:
for a current binary digit in the watermark;
means for replacing a first optimized code segment, included in the executable computer code, with a first non-optimized code segment only if the current binary digit has a first value, where the presence of the non-optimized code segment encodes the first value and the presence of optimized code segment encodes the second value of the current binary digit. - View Dependent Claims (11)
Specification