DonQuixote Plugins

How to use plugins

First, you must install DonQuixote Runtime. Then, you downloads below archives, extracts obtained tar ball, and builds jar file.

Next, put just made jar file on DonQuixote plugin directory. Default plugin directory is the same directory of runtime-1.x.jar file.

Finally, executing DonQuixote runtime, you can see that the plugin was installed by help message.

Release

Delete NOP
Delete NOP instruction from specified class.

This plugin is also a sample of DonQuixote plugin.

Method Distribution
Distribute a method to unrelative class and strengthen the association among classes.
Optimizer
Optimize specified class (delete unused constant pool entry, debug information, etc.).
Symbol Renaming
Rename symbol name defined in specified class to meaningless name.
String Encryption
Encrypt a string literal and decrypt it at runtime.

Future release...

Obfuscation

Opaque predicate

Injecting dummy block which is never executed by always true (or false) branch.

Watermark

jmark

Embedding watermarking phrase into dummy method. This algorithm is implemented in C and destributed at http://se.naist.jp/jmark/ .

Publications
  • 門田暁人, 飯田元, 松本健一, 鳥居宏次, 一杉裕志, "プログラムに電子透 かしを挿入する一手法," 1998年暗号と情報セキュリティシンポジウム, SCIS'98-9.2.A, January 1998. (in Japanese)
  • 門田暁人, 飯田元, 松本健一, 鳥居宏次: "Javaプログラムを対象とする 電子透かし法," 日本ソフトウェア科学会第16回大会論文集, pp.253-256, September 1999. (in Japanese)
  • Akito Monden, Hajimu Iida, Ken-ichi Matsumoto, Katsuro Inoue and Koji Torii, "Watermarking Java programs," International Symposium on Future Software Technology'99 (ISFST'99), pp.119-124, Nanjing, China, October 1999.
  • Akito Monden, Hajimu Iida, Ken-ichi Matsumoto, Katsuro Inoue and Koji Torii, "A practical method for watermarking Java programs," The 24th Computer Software and Applications Conference (compsac2000), pp. 191-197, Taipei, Taiwan, October 25-27, 2000.
  • 門田暁人, 松本健一, 飯田元 ,井上 克郎, 鳥居宏次, "Javaクラスファイ ルに対する電子透かし法", 情報処理学会論文誌, Vol.41, No.11, pp.3001-3009, November 2000. (in Japanese)

Birthmarks

Extracting birthmarks from class files. A tool for extracting static birthmark is already developed and released at http://se.naist.jp/jbirth/ . I think that jbirth will be plugged as DonQuixote plugin.

DonQuixote plugins which other organization provides

AddTracer

AddTracer injects tracer code which for monitoring opecode, operand into target class files. The author of this tool is the same as DonQuixote author.

http://se.naist.jp/addtracer/