2015年11月19日木曜日

HSPの暗号化DPMについて

おっす、セルディアです。

HSP3.5beta2で暗号化DPMが使えません…。
色々試しましたが、ぜんぜん言うことを聞いてくれませんでした。

ゲームデータ見放題や!!


HSPではDPMという、zipのように複数のファイルを1つのファイルにまとめる機能を持っています。DPMにまとめるとHSPから通常のファイルと同じようにアクセスできるのですが、そのままではテキストエディタで開いたり、バイナリエディタで覗くとあっという間にデータが露見してしまいます。情報のリークです、事件ですよ奥さん。

暗号化DPMを使うと、単純にファイルを開くだけでは全く中身の見当もつかなくなります(はずです)。エンディングの文章やCGを見られる心配がなくなるわけです。これは大事だ。

しかし!! 実際に作ってみると動いてくれません!!

スクリプト側の準備は


DPMを使うにあたって、スクリプト側に準備が必要です。
次の行を入れておきましょう。

chdpm "data.dpm"

詳しくはF1のヘルプを見ましょう。

実は、DPMに含めるファイルは、「ファイル名が12文字以内」という制限があります。(拡張子含めずに8文字ということになります)意外に見落とすこともあるので注意しましょう。
これでうまくいかないと、「エラー12 ファイルが見つからないか無効な名前です」「エラー13 画像ファイルがありません」などのエラーが出ます。

とりあえず作り方は


DPMを作るには、いくつか方法があります。

  • 「実行ファイル自動生成」を実行
    →実行後、HSPスクリプトエディタから「ツール」→「PACKFILE編集」
    →編集後、「ツール」→「DPMファイル作成」
恐らく一番正攻法の作り方…だと思います。
暗号化は「PACKFILE編集」の中のチェックボックスをONにすればできます。
と思わせてできません。実は暗号化しない方法も全く効きません。
具体的には、EXEファイルを実行したときに、「エラー12 ファイルが見つからないか無効な名前です」「エラー13 画像ファイルがありません」などのエラーが出ます。
この方法は忘れてください。
  • 「実行ファイル自動生成」を実行
    「指定フォルダからDPM作成」で必要なファイルを含める
    DPMを実行ファイルと同じフォルダに置いて実行
どうもとあるバージョンから追加された方法のようです。
こちらだと、暗号化の際に鍵を指定することができて、「おお、なんか暗号化っぽい」と期待しますが、ダメです。同じくエラー12、13が出ます。

  • 「#pack」「#epack」プリプロセッサ命令を使う
DPMに含めず、EXEファイルにくっつけることになります。要するにEXEファイルの容量が増えます。実はこの方法だと…暗号化できます。当初の目的と違うけど暗号化できたからええか。

結論


WindowsでDPMはあきらめてください。#epackを使いましょう。

実はAndroid版だと、2番目の方法で「暗号化しなかったら」使えます。
(Androidのリファレンスマニュアルで、暗号化DPMは未対応とあります)

意外と知られていない…


インターネットをいろいろ巡りましたが、あまりこの件で騒いでる人がいないのが気がかりです。
実は以下の点が原因では…?

  • バージョン3.5beta2からの問題?
もしや単なるバグでは。
  • HSP3Dishだけの問題?
通常のWindowsのみ版では動くのだろうか。
  • わしの勘違い?
これだったら石を投げられても致し方なし。

0 件のコメント:

コメントを投稿