Once you have generated a trace file from SandMark's TRACE tab you can start embedding watermarks. You can either provide your own watermarks or generate a random numeric watermark.
The output of the embedder is a new watermarked jar-file prog_wm.jar. Several other files are also generated:
Watermark.dot
is the watermark
graph (in the dot format) embedded into the application.
TraceForest*.dot
are the call-graphs
generated during tracing.
Watermark.java
is the class file that
contains the watermark-building methods.
WILDCATS
in the TTT application shown in here :
Graphs
button.
Storage Policy
Either 'root' or 'all'. 'root' means that only roots of subgraphs are stored globally (or passed around in formal parametrs. 'all' means that all graph nodes are stored. |
Storage Method
A colon-separated list of 'vector', 'array', 'pointer', and 'hash'.
These are the types of storage containers in which subgraph nodes
are stored.
|
Storage Location
Either 'global' or 'formal'.
|
Protection Method
Colon-separated list of 'if', 'safe', 'try'.
|
Graph Type
Select the type of graph to use to encode the watermark:
|
Subgraph Count
An integer describing the number of subgraphs the graph should be broken up into. |
Dump Intermediate Code
Print out the intermediate code. |
Numeric Watermark
Pure numeric watermarks are encoded more efficiently than watermarks that can be arbitrary strings. NOTE: If you check this you must also check the same box during recognition. |
Use Cycle Graph
To protect against node-splitting attacks, transform the underlying graph such that every node becomes a 3-cycle. Any node split will just expand the length of the cycle. During recognition, the cycles are contracted to generate the original graph. |
Inline Code
Inline the methods for creating the watermark. |
Replace Watermark Class
Choose a class that would best represent a watermark graph node rather than creating a new class from scratch. |
Dump Intermediate Code
Print out the intermediate code used to generate the watermark class. |