HOME > ソフトウェアパッケージ > 数式処理/開発環境/ライブラリ > yFILES (ワイファイルズ)
新規購入お見積
yFILES (ワイファイルズ)
ダウンロード

yGuard の現在のバージョンは、2.5 です。最新版の詳細は、動作要件変更ログを参照して下さい。

yGuard - Java™ バイトコード難読化・圧縮ツール

yGuard は、無償の Java バイトコード難読化・圧縮ツールで、ソースコードへの望まないアクセスの禁止と、そして同時に Jar ファイルを徹底的に縮小することで、ソフト開発を改善します。

 

特徴

  • yGuard は、完全無償です! yGuard と同等かそれ以下の特徴を提供する、競合の高価な商用製品とは反対に、yGuard は無償です。
  • yGuard は、Ant のタスクです! 既存のツールは、難読化タスクの実行や設定に、独自のメカニズムを使用しています。Ant タスクとして yGuard は、XML 構文を使いシームレスに、実装プロセスへ統合することが出来ます。
  • yGuard は、リバースエンジニアリングから知的財産を保護する、高度に構成可能な名前難読化を提供します。
  • yGuard は、依存関係の分析を通して、精巧なコード圧縮機能を提供します。
  • yGuard 2.0 は、コード実体の容易な定義 (例、パターンセットや継承に基づく) を可能にする、新しく強力で、使いやすいXML 構文を提供します。
  • yGuard は、正しい難読化と、外部ライブラリに依存するプログラムの圧縮をします。
  • yGuard は、難読化方式に従い、テキスト形式のリソースファイルの自動的なリネームと調整をします。
  • yGuard は、行番号テーブル情報のスクランブルとスクランブル解除、あるいは圧縮が可能です。これは、難読化されたプログラムのデバッグが、難読化を緩めることなく、実行出来ることを意味します。
  • yGuard は、パッチを作成出来ます! 難読化の実行中に yGuard は、既に実装し難読化されたアプリケーションの、その後のパッチを作るのに使われる、XML 出力を生成します。
  • yGuard は、JDK 1.5 の機能をサポートし、その新機能とコンパイルされたクラスを正確に難読化します。

 

yGuard を使う理由

  • 名前難読化:表現的でない文字で、パッケージ、クラス、メソッド、フィールド名を置き換える事により、リバースエンジニアリングから .class ファイルを保護します。もしその後、難読化された .class ファイルが逆コンパイルされても、難読化されたコード実体の本来の目的を得るのは非常に困難でしょう。
    追加の副作用として、名前難読化は、選択されたマッピング方式により、アプリケーションのサイズを著しく削減します。

  • コード圧縮:アプリケーションが、含まれるバイトコードの全てを使ってはいない場合、入力された Jar ファイルのサイズを徹底的に削減します。
    圧縮エンジンは、コード実体が、与えられたコードのエントリポイントのセットから到達出来ないか測定するために、全ての入力された Jar ファイルのバイトコードを分析します。これらの不要コードの断片 (クラス全体や、単一のメソッド、フィールド) は、yGuard により削除されます。サードパーティ製ライブラリを使用している場合、yGuard の圧縮エンジンで、恐らく大きな利益を得るでしょう。アプリケーションは大抵、外部ライブラリにより提供される機能の全てを使っている訳では無いので、含まれるバイトコードとリソースの大きな断片は、安全に削除されます。

 

ドキュメント

yGuard のマニュアルは、通常の Ant タスクとして yGuard の使用を可能にする、詳細なユーザガイドです。変更ログには、バグフィックスと新しい yGuard リリースに加えられた改良が記述されます。

 

動作要件

yGuard を実行するには、JDK 1.4.x 以上、Ant 1.5.x 以上が必要です。(どちらのソフトウェアの以前のバージョンとも、互換性はあると思われますが、テストはされていません)

 

Java 7 互換性

Java 7 で、Java .class ファイルのバージョン番号が変更されました。これは、"invokedynamic" 命令が導入されたためです。しかしながら JDK 7 には、この命令を発行する手段は含まれていません。"invokedynamic" 命令は現在、他の (動的な) 言語 (JRuby のような) のコンパイラー、あるいはサードパーティ製のバイトコード変換ツールの使用によってのみ、生成されます。それゆえ yGuard は、難読化プロセスで Java 7 にコンパイルされ、"invokedynamic" 命令をサポートする、.class ファイルを扱うことが出来ますが、この命令が含まれる .class ファイルの圧縮を、まだサポートしていません。

これは yGuard が、Java 7 の .class ファイル形式の全ての機能を完全にはサポートしていないことを意味しますが、Java 7 をターゲットとした Java アプリケーションで、この yGuard を使うことに問題はありません。

 

ダウンロード

yGuard 2.5
ダウンロード
この ZIP ファイルは、コンパイルされたフォームに Ant の yGuard タスクとライブラリを含む Jar ファイルから成ります。加えて、ライセンスだけでなく、Ant タスクの使用法に関する詳細なドキュメントがあります。使用例のドキュメントと yGuard のドキュメントを見て下さい。
yGuardLib 2.5
(Library Sources)
ダウンロード
このファイルは、yGuard ライブラリのソースコードを含みます。このライブラリは、Retrologic 社による Retroguard Obfuscator (version 1.0) に基づきます。Retroguard は、GNU 劣等一般公衆利用許諾書 (LGPL) のもとに配布され、ZIP ファイルに含まれます。このバージョンはライブラリのみで、直接実行可能なコードを含みません。その上、Ant タスクのソースは、このファイルには含まれません。タスクを含む完全に機能する Jar を利用するには、上記の Jar ファイルを使います。必要であれば、LGPL によりライブラリを変更して、上記リンクの yGuard ディストリビューションと、変更したバージョンを使用する事が出来ます。