Skip to content

Watermark

Incorporating watermarks into your software provides is crucial for tracing unauthorized distributions. If your software is illicitly shared, the watermark can serve as a digital fingerprint, helping to identify the source of the breach. While it’s advisable to implement a killswitch in such scenarios, a watermark can significantly strengthen your position in legal disputes, offering clear evidence of ownership and unauthorized distribution

  1. Build your software with a unique watermark using the following option:

    build.sh
    jcloak -input Input.jar -output Output.jar -watermark ThisIsAUniqueString
  2. Get your hands on the distributed software and start it with the following environment flag:

    $ export JCLOAK_WATERMARK=<license> # Change <license> to your jCloak license
  3. The software will abort and print the watermark for you to further process:

    Exception in thread "main" java.lang.ExceptionInInitializerError
    Caused by: java.lang.RuntimeException: Watermark has been debuged: ThisIsAUniqueString
    at me.micartey.jcloak.lllIlIlllIlIlIIlIlIl.<init>(Unknown Source)
    at me.micartey.jcloak.lllIlIlllIlIlIIlIlIl.<init>(Unknown Source)
    at me.micartey.jcloak.JCloak.initialize(Native Method)
    at me.micartey.jcloakexample.Main.<clinit>(Main.java)

The purpose of using your license key, is to only debug the watermark if the license is the license that was used when building the software. Therefore, only you can debug the watermark.