HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0420
youdaiHGIMG4の.GPBファイルと.materialファイルの盗用を防止したい6解決


youdai

リンク

2022/4/20(Wed) 19:14:35|NO.96072

●HGIMG4の.GPBファイルと.materialファイルの盗用を防止したい

現在、HGIMG4の仕様で.GPBファイルと.materialファイルはPACKFILEからの読み込みに対応していません。
そのため、作品を配布する時にファイルの盗用を防止することができません。
PACKFILEの仕組みが更新されるまで待つつもりだったのですが、なかなか更新されないのが現状です。

現状のHSP3.7beta1のバージョンでPACKFILEから.GPBファイルや
.materialファイルを読み込めるような仕組みが、
何らかの工夫によってできればいいのですが、そういったことは可能なのでしょうか?

例えば、ファイルを読み込む瞬間にPACKFILEからファイルをコピー&ペーストさせて、
読み込みが終わったら削除する、ような仕組みを考えたのですが、
それは本質的な盗用防止にはならないだろうし、
読み込む時のハードディスクに対する負荷が大きく、あまり望ましい対策にはなりませんでした。

.GPBファイルと.materialファイルの盗用を防止する方法が、
現状のHSP3.7beta1でも可能な方法がありましたらアドバイスお願い致します。



この記事に返信する


zakki

リンク

2022/4/20(Wed) 19:56:30|NO.96074

C++側で頑張る方法としては次のような感じで、技術的に何か大きな課題があるというよりは単純に実装量の問題になりそうです。

HGIMG4が使ってるGamePlayのファイル読み書き部分はFileSystemとStreamとして抽象化されてます。
https://github.com/onitama/OpenHSP/blob/eddc647733e82657757055b66fd8c2dbf17898b8/src/hsp3dish/gameplay/src/Bundle.cpp#L189

でStream実装はC++のfopen/fread/fgets/fwrite/fcloseにマップされてて、このあたりにシンプルにxorかけるようなスクランブル処理は入れられそうですし、
メモリ消費を度外視すればAESみたいなのをかけることもできそうです。
https://github.com/onitama/OpenHSP/blob/eddc647733e82657757055b66fd8c2dbf17898b8/src/hsp3dish/gameplay/src/FileSystem.cpp#L678

また1ファイルにパックしたいというのもFindFirstFileやstat相当の処理を自分で実装すれば特に問題なさそうな作りになってます。

ちなみに上記の内容は、デバッガなどで解析されて流用されるのは実質不可能でカジュアルに読まれるのを防ぐって前提です。

as側で頑張る方法はよくわからないので、他の人の回答待ちです。



youdai

リンク

2022/4/20(Wed) 21:48:31|NO.96075

zakkiさん、コメントありがとうございます。
自分はC++を読めはするのですが、C++での開発はほとんど止めちゃってて、
できることと言えばDXライブラリで作った小作品をBCCでビルドするくらいです。
せっかくコメントして下さったのに、よく分からなくてすみません。



おにたま(管理人)

リンク

2022/4/22(Fri) 21:37:30|NO.96096

>youdai さん

ご意見ありがとうございます。
次回のβテスト版であるHSP3.7β2で、DPMパッケージの階層とロングファイル名対応を行います。
HGIMG4のgpb読み込みや暗号化などにも対応していますので、もう少しだけお待ち頂ければと思います。
尚、現在まだドキュメントが修正されていませんが、テストで使用できるバージョンを以下からダウンロードして試用頂けます。
https://www.onionsoft.net/hsp/file/hsp37_220422.zip



youdai

リンク

2022/4/22(Fri) 21:43:19|NO.96097

>おにたま さん
ありがとうございます!
さっそくテストバージョンを使ってみようと思います!



youdai

リンク

2022/4/23(Sat) 09:18:39|NO.96105

hsp37_220422.zipで実行ファイルの埋め込みから.GPBと.materialを読み込めることを確認しました。ありがとうございました。

ただ、このhsp37_220422.zipには実行ファイルを作成する上で、いくつか不具合がありました。

●iconins.exe関係のエラー?

hsp37_220422.zip(HSP3.7beta2) でHSP3スクリプトエディタから実行ファイルを自動生成しましたが、


iconins.exe v1.00 Basic program has been created by Kpan. Modified by inovia. [ERROR] No.20 「DPMX」文字列が見つかりません Enterキーを押してください

とコンソールに表示され、実行ファイル生成処理中に一時停止してしまいます。
Enterキーを押してスキップすると実行ファイルが生成されます。

生成された実行ファイルのプロパティを確認してみましたが、
#packoptで設定したはずのversionとlangが設定されていませんでした。
その他の要素のicon,manifest,upxは今回は指定していないので分かりませんが、
iconins.exe関係で何らかのエラーが発生しているようです。
このエラーはHSP3.7beta1では発生していませんでした。

新機能である「.GPBファイルと.materialファイルの#epackの実行ファイル埋め込みからの読み込み」については、
読み込めることを確認しました。
実行ファイル埋め込みの#epack化については機能しているようです。

●「指定したフォルダからDPM作成」が動かない

同じくhsp37_220422.zip(HSP3.7beta2) についての不具合ですが、
HSP3スクリプトエディタのツールから「指定したフォルダからDPM作成」を実行しても、
DPM作成ランチャー的なものが起動せず、動作しませんでした。



しまくろねこ

リンク

2022/4/23(Sat) 16:35:19|NO.96106

同様の現象が起こっていますので、おにたまさんにメールしました。

> とコンソールに表示され、実行ファイル生成処理中に一時停止してしまいます。
> Enterキーを押してスキップすると実行ファイルが生成されます。

私も同じです。
私の場合は、

#packopt icon "icon.ico"
を指定すると、同じメッセージが表示されます。
指定しなければメッセージ表示されませんでした。


> 同じくhsp37_220422.zip(HSP3.7beta2) についての不具合ですが、
> HSP3スクリプトエディタのツールから「指定したフォルダからDPM作成」を実行しても、
> DPM作成ランチャー的なものが起動せず、動作しませんでした。

私も同じです。
何回かめげずにクリックすると、「mkdpm v1.0」という小さいウィンドウが表示されました。



ONION software Copyright 1997-2023(c) All rights reserved.