Version |
Release date |
Files |
Supporting Software |
V3.4 |
August 11, 2004 |
|
|
|
The development of SandMark is supported by the NSF under grant CCR-0073483,
the AFRL under contract F33615-02-C-1146, and by the New Economy Research Fund
of New Zealand under contracts UOAX9906 and UOAX0214.
SandMark 3.4.0 (Mystique) is our first full release. It currently runs on
Linux, Windows and MacOS and requires Java 1.4.
SandMark 3.4.0 incorporates:
- 13 static and 3 dynamic software watermarking algorithms,
- 33 code obfuscation algorithms,
- 3 code optimization algorithms,
- 6 bytecode diff algorithms,
- a visualization tool that can display bytecode instructions, a
program's inheritance graph, method control flow graphs, register
interference graphs, and method slices,
- 6 software complexity metrics (Harrison, Munson, Kafura, Halsted,
McCabe, and Chidamber),
- a "wizard" that can select appropriate software watermarking and code
obfuscation algorithms to protect a program.
|
V3.3 |
October 26, 2003 |
|
|
|
Supported by the NSF under grant CCR-0073483 and the AFRL
under contract F33615-02-C-1146.
This release extends version 3.1.1 with:
- bug fixes (SandMark runs on Windows, Linux, and other Unix versions),
- a simpler distribution format (SandMark will be shipped as a
single jar file),
- an opaque predicate library,
- control flow obfuscations that rely on opaque predicates,
- an improved gui,
- an implementation of the Davidson-Mhyrvold software
watermarking algorithm (US Patent 5,559,884),
- the ability to sort bytecode methods by different
metrics (to be used as a manual attack against
software watermarks),
- a number of code reordering obfuscations,
- a string obfuscator,
- the ability to encrypt watermarks before embedding,
- an implementation of the Moskowitz-Cooperman software
watermarking algorithm (US Patent 5,745,569).
- an implementation of Venkatesan et al.'s graph theoretic software
watermarking algorithm.
SandMark can be executed like this:
|
V3.1.1 (October 22, 2002) |
January 28, 2003 |
|
|
|
Supported by the NSF under grant CCR-0073483, the AFRL
under contract F33615-02-C-1146, and by the New Economy
Research Fund of New Zealand under contracts UOAX9906 and UOAX0214.
This is the first official release of SandMark since
version 0.2. It is still alpha software: it is stable enough
to play with but should not be relied on for production use.
This release extends v2.1 with
- an implementation of Venkatesan's software
watermarking algorithm
A Graph Theoretic Approach to Software Watermarking
- more code obfuscations (inlining, boolean variable
splitting, class splitting, array obfuscations)
- an obfuscation loop that selects and applies a sequence
of obfuscations to a program,
- a degrading code obfuscation that makes
a program slower (useful when distributing trial
versions of software).
Execute SandMark like this:
java -classpath sandmark.jar:BCEL.jar:bloat-1.0.jar:tools.jar sandmark.Console
|
The tools.jar library should be part of your Java distribution.
|
V2.1 |
July 3, 2002 |
|
|
|
Supported by the NSF under grant CCR-0073483.
This is an internal release.
|
V2.0 |
June 12, 2002 |
|
|
|
Supported by the NSF under grant CCR-0073483.
This is an internal release. A complete rewrite of
v0.2 using only Java and including:
- a graphical user interface,
- a number of code obfuscations from
Collberg, Thomborson, Low's
Breaking Abstractions and Unstructuring Data Structures
and
Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs ,
- an implementation of Qu and Potkonjak's
software watermarking algorithm
Fingerprinting IPs Using Constraint-Addition:
Approach and Graph Coloring Case Study ,
- an implementation of Stern's
software watermarking algorithm
,
Robust Object Watermarking: Application to Code ,
- an implementation of Paul Tyma's
name obfuscation algorithm:
Method for renaming identifiers of a computer program,
US patent 6,102,966,
|
V0.2 |
September 29, 2000 |
|
|
|
Supported by the NSF under grant CCR-0073483.
This was the first public release of SandMark containing
|