发明名称 SOFTWARE WATERMARKING TECHNIQUES
摘要 A method and system for watermarking software is disclosed. In one aspect, the method and system include providing an input sequence and storing a watermark in the state of a software object as the software object is being run with the input sequence. In another aspect, the method and system verify the integrity or origin of a program by watermarking the program. The watermark is stored as described above. In this aspect, the method and system also include building a recognizer concurrently with the input sequence and the watermark. The recognizer can extract the watermark from other dynamically allocated data and is kept separately from the program. The recognizer is adapted to check for a number. In another aspect, the software is watermarked by embedding a watermark in a static string and applying an obfuscation technique to convert the static string into executable code. In another aspect, the watermark is chosen from a class of graphs having a plurality of members and applied to the software. Each member of the class of graphs has at least one property that is capable of being tested by integrity-testing software.
申请公布号 US2014165210(A1) 申请公布日期 2014.06.12
申请号 US201313935260 申请日期 2013.07.03
申请人 AUCKLAND UNISERVICES LIMITED 发明人 COLLBERG Christian Sven;THOMBORSON Clark David
分类号 G06F21/16 主分类号 G06F21/16
代理机构 代理人
主权项 1. A computer implemented method of watermarking a software object held in the memory of a watermarking computer, wherein the watermarking computer performs the following functions comprising: (a) selecting a watermark integer; (b) selecting a watermark graph by the watermarking computer choosing the watermark graph corresponding to the selected watermark integer from a class of graphs having at least one property, the at least one property being an enumeration such that each member graph of the class of graphs is associated with one integer value; (c) determining an input sequence; (d) creating a watermark-generating program piece by the watermarking computer with generates nodes and edges of the watermark graph; and (e) creating a watermarked software object by modifying the software object in the memory of the watermarking computer so that the watermark-generating program piece is embedded in the watermarked software object in such a way that the watermark graph generated by the watermark-generating programme piece becomes present and detectable in an execution state of the watermarked software object within a memory of an executing computer executing the watermarked software object with the input sequence, the execution state of the watermarked software object in the executing computer comprising all current values in all stacks, heaps, global variables, data registers, and program counters in the memory of the executing computer which have been modified by the executing computer while executing instructions from the watermarked software object.
地址 Auckland NZ