近年難読化が注目されている..Net 環境では標準の難読化ツールとして, Dotfuscator が採用されている.また,Java 言語用には, Dash-O や Zelix Klass Master などの商 用の難読化ツールや ProGuard など のオープンソースの難読化ツールが存在する.
しかし,これらの難読化ツールは,難読化のステップが決まっており,ユー ザが自由に手順を変更することは不可能であり,また,新たな難読化アルゴリ ズムを導入することは非常に難しい.そのため,隠したい情報を隠すための効 率の良い難読化手法があったとしても,それを実現することは不可能である.
一方,Sandmark という米アリ ゾナ大学の Collberg らが提供する難読化ツールが存在する.これは難読化や ソフトウェア電子透かしなどのソフトウェア保護技術の研究・学習のためのツー ルであり,非商用であれば,使用,再配布,修正に制限がないため,非常に有 用である.しかし,商用利用の目的では自由に用いることができない点が問題 である.
そこで,新たな難読化アルゴリズムの導入が容易で,かつ,難読化アルゴリ ズムの組み合わせ方も自由な,オープンソースの難読化ツールが求められてい る.その要求に応えるため,我々は Java 言語用の難読化ツール DonQuixote を開発した.このツールでは,難読化処理部分を内部に持たず,難読化処理を 行う部分は全てプラグインとして提供される.そのため,新たな難読化手法を 実装するために,難読化のアルゴリズムのみに集中して作成することができる.
この DonQuixote には以下の 5 つのサブプロジェクトが存在する. それぞれの役目とライセンスは以下の通りである.また,groupId は jp.cafebabe.donquixote となっている.
| プロダクト名 | ライセンス | 説明 |
| Runtime | GNU GPL | DonQuixote 実行環境 |
| Dulcinea | GNU GPL | DonQuixote の GUI インターフェース |
| Rocinante | Apache License | DonQuixote プラグイン開発環境 |
| Sancho | GNU GPL | プラグインローダ |
| Windmill | Apache License | DonQuixote プラグインプロジェクトジェネレータ |