konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Top

Zend Guard ::: FAQ

Zend Guard で Zend Framework 以外のフレームワークも使用できますか。

Zend Guard の動作対象は PHP スクリプトになります。
そのため、PHP で書かれたものであれば制限はございません。

なお、動的に生成または参照するファイルを使用する場合は、支障が生じる場合がございます。
例えば、Smarty のテンプレートファイルが該当します。

また、Zend Guard の機能のうち、難読化機能では関数名、Class名、変数名などを抽象的な文字列に置き換えます。
そのため、他から呼び出して使うことを前提にしているライブラリーなどを難読化致しますと、動作に支障が生じる場合がございます。

購入前に機能を試してみることはできますか。

はい、弊社のダウンロードコーナーで Zend Guard をダウンロードいただけます。
インストール後30日間評価版としてご利用いただけます。なお、評価期間中には下記の制限がございますのでご注意ください。

  • エンコードした PHP スクリプトには14日間の動作制限がかかります。
    • 14日間経過しますと、Webブラウザからの参照は不可能になります。
    • 最適化オプションが無効の状態でエンコードされます。
  • PHPスクリプトに対して実行許可を与えるために、お客様が生成したライセンスファイルには3日間の制限がかかります。
    • 上記のライセンスファイルは、Zend Guard を使用するために弊社からお客様にお送りするライセンスファイルとは異なります。

評価版での上記の制限はライセンスのご購入により解除され、製品版としてご利用いただけます。

評価版でライセンスを生成しようとすると、License check error が表示されます。

PHPスクリプトに対して実行許可を与えるためのライセンスファイルを生成するためには、いくつかの手段があります。

  • Zend Guard のメニューバーから編集>設定を選択します。表示された設定ダイアログでライセンスキーを選択します。生成ボタンを押します。
  • bin フォルダーの中の zendenc_sign.bat をコマンドラインで実行します。
  • plugins フォルダーの中から zendenc_sign.exe が存在する場所を探してコマンドラインで実行します。

その際に下記のメッセージが表示されることがあります。

License check error: Cannot find the license file: zend_guard.zl

これは、試用版の状態であることを意味します。
生成に成功していれば、さらに下記のメッセージも表示されます。

Private key was generated successfully

もし成功しない場合は、生成しようとするライセンスファイルのパスの指定および、そのパスへのアクセス権限を確認してください。

PHPでプログラムした製品をZend Guardで暗号化して販売することは可能ですか。

はい、特に問題ありません。
Zend Guardでエンコードしたスクリプトは自由に配布可能です。
ただし、ZendGuardでエンコードしたスクリプトを動作させるには、下記をインストールする必要があります。

  • Zend Server でインストールする PHP 環境の場合
    • Zend Guard Loader
  • Zend Server 以外で構築した PHP 環境の場合
    • PHP 5.2 以前の場合 Zend Optimizer
    • PHP 5.3 以降の場合 Zend Guard Loader

詳しくはZend Optimizerと後継モジュール をご覧ください。

今までの開発環境が使用できなくなりました。新しい開発環境に再インストールするにはどうすればいいですか。

再インストールするには、ライセンスファイルの再発行が必要になります。
新しい環境でZend Guardを使用される場合には、最初にライセンスファイルを申請した時と同じ手順で新しい環境のホストIDを送付してください。

なお、新しい環境に移行する理由もお書き添えくださいますようお願いいたします。

アプリケーションの単位はどのような単位ですか

Zend Guardで処理したPHPスクリプトをお客様が販売または納品する単位を意味しております。
個別に分割して、販売可能なアプリケーションであれば、ぞれぞれが1つのアプリケーションとなります。

コマンドラインからエンコードを実行できますか。

Ver 5.5

はい、実行可能です。
ユーザーガイドの「コマンドライン(とXMLファイル)を使用したエンコード」 を参照してください。
54ページにあります

Ver 5.0.x

5.5と同様に、58ページを参照してください。

エンコードを行う上での注意点を教えてください。

Ver 5.0.x - 5.5

下記の2点になります。

  1. 日本語名のパスを使用しないでください。
  2. XMLファイルを作るには、GUIで設定を行う必要があります。 (Linuxの場合GUI環境 (X Window) が必要になります。)

ファイルやディレクトリ単位で除外リストにファイルを追加できますか。

php拡張子のファイルのうちの一部に、エンコードしたくないphp拡張子のファイルが存在する場合は、下記の方法で対象外にできます。

Ver 5.5

  1. Guardエクスプローラで、除外したいファイル、またはフォルダを選択して右クリックします。
  2. リソースのコピーのみを選択します。
  3. 選択されたファイルやフォルダのアイコンに青色の右矢印が追加表示されます。
  4. 選択されたファイルやフォルダは、エンコードされずに出力先にコピーされます。

Ver 5.0.1

5.5とはメニュー名が若干異なります。
リソースのコピーのみではなく、リソースを省く(そのままコピー)というメニュー名がありますので、それを選択します。

Ver 5.0.0

  1. エンコード対象としてプロジェクトに追加せずにエンコードします。
    あるいは、リソースを無視する(コピーしない)機能で、対象外として選択してからエンコードします。
  2. エンコード終了後、上記 (1) で追加しなかったリソースをエンコード結果の格納されたフォルダに手動でコピーします。

暗号化しないで、難読化のみできますか

Zend Guard の処理を大別すると、エンコード処理と難読化処理の2段階に分かれます。

エンコード処理はすべての場合に行われます。これは、中間言語形式への変換処理です。
さらに関数や変数の名前を推測しにくくするために、難読化できます。
(外部から呼び出すことが前提のライブラリーなどは、難読化すると逆に支障が生じます)

恐れ入りますが人の目でそのまま読める状態でなおかつ難読化された状態をご希望ですと、
ご希望に沿うことが難しいかと思われます。


最終更新のRSS