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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0702
名無しゲームを制作してるのですが、暗号化がうまく出来ません。15解決


名無し

リンク

2013/7/2(Tue) 15:07:17|NO.55429

現在ゲームを制作しています。
ファイルを暗号化しようと思い、#epack "filename"を使ったのですが、
picload・Artlet2D・mciでファイルを読むこむことができません。
なにかいい方法はないでしょうか?



この記事に返信する


名無し

リンク

2013/7/2(Tue) 15:09:20|NO.55430

【追記】
picloadとArtlet2Dで使用する画像形式はpngです。mciで使用する動画形式、音声形式はmp3とwmvとwavです。



あんこ

リンク

2013/7/2(Tue) 16:46:14|NO.55433

最近のスレを見て掲示板の使い方を見てこい



名無し

リンク

2013/7/2(Tue) 17:42:11|NO.55436

>>あんこさん
すみません、見たのですが何が行けないのかわかりません。

ちなみに今回のスレの質問内容は、「暗号化したファイルを復号化し、picload・Artlet2D・mciでファイルを読む方法はありますか?」ということです。
もしかしてこの部分が行けなかったのでしょうか?



KA

リンク

2013/7/2(Tue) 18:34:27|NO.55439

具体的にどう使っているのか不明。

「文字を表示しようとして mes を使いましたが表示されません」

と聞かれたら、あなたはどう答えますか。



ttn

リンク

2013/7/2(Tue) 18:59:55|NO.55440

これで上手くいかないから、他に良い方法があれば教えてほしいってことでしょ?



匿名希望

リンク

2013/7/2(Tue) 19:00:34|NO.55441

picload はHSPの内蔵命令なので、 #pack や #epack でパックしたファイルでも読み込めますが
A2Dと mci はWindowsの機能を呼び出しているので、Windowsから見える形でファイルが存在している必要があります。

解決策としては
・パック(暗号化)を諦める
・bload, bsave で一旦ファイルとして書き出す
があります。

後者だと bload で読み込み→ bsave で書き込み→A2D/mci で読み込み、とディスクアクセスに時間を取られるうえに
暗号化の意味もほとんどなくなってしまうため、暗号化そのものを諦めるのがベターかと思われます。



名無し

リンク

2013/7/2(Tue) 19:25:06|NO.55443

>>ttnさん
まさにその通りです;文才なくてすみません。

>>匿名希望さん
やはり暗号化は諦めるしか無いのでしょうか・・・
picloadでパックしたファイルを読み込めないのはこちらの勘違いでした。


もしかしたら他に方法を知ってる方がいるかもしれないので、引き続き回答を受け付けます



egachan

リンク

2013/7/3(Wed) 06:53:45|NO.55458

Artlet2Dはソースを一部変更すればパックファイルに対応することはできると思いますが、パックファイルの動画を再生する方法はわからないですね。
再生するときだけファイルを書き出して不要になったらすぐ消すくらいしか思いつきません。
そのときファイルの拡張子をいじっておけば多少は隠蔽の効果もあるかも。



名無し

リンク

2013/7/3(Wed) 20:00:02|NO.55468

>>egachanさん
その情報を元に検索してみました。
http://hsptv.sakura.ne.jp/play/pforum.php?mode=pastwch&num=51625
こちらのスレの最後にURLがあり、開いてみたのですがもう閲覧できない状態でした。
他にもいろいろ探してみたのですが、無理そうでした・・・



check

リンク

2013/7/4(Thu) 02:21:26|NO.55476

単純な手法だが、xor演算を利用するとか。

data = 76 // データを作成 key = 51 // 1〜255までの好きな数字(ここでは仮に51とした) mes data data ^= key // dataをkeyでxor演算 mes data data ^= key // 再びxor演算 mes data
この方法を利用して、ファイルから1バイト読み込んでxor演算をする、
ということをファイルのサイズだけ繰り返せば暗号化ができる。
復号化の時も同じソースで行える。

問題は処理速度だろうな。
何MBもある動画ファイルにHSPでこの処理をさせると、いったいどれくらいの時間がかかるのであろうか。



egachan

リンク

2013/7/4(Thu) 07:46:02|NO.55479

>こちらのスレの最後にURLがあり、開いてみたのですがもう閲覧できない状態でした
sprocketさんの掲示板にそれを書いたのはたぶん自分だと思う。
改造したスクリプトも残ってるけど長いので貼り付けらんないし、そもそも勝手に張っていいのか
わからんのでどうしたもんか。
ところで最近のHSPではpicloadでパックファイルのpng画像も読める様になってるからそこから
Artlet2Dにのイメージにコピーする方法もあると思うけど。



名無し

リンク

2013/7/4(Thu) 09:46:03|NO.55480

>>checkさん
暗号化の方法を教えていただきありがとうございます。では、どのような手順を踏めばその暗号化したファイルをArtlet2Dで読み込めるのでしょうか?
やはり、

暗号化したファイルを読み込み→復号化→一旦保存→Artlet2Dで読み込み

とやらなければいけませんか?
匿名希望さんが言っているように、一旦保存するとファイルの書き込みと読み込みに時間がかかり、
暗号化の意味もほとんどなくなってしまうのでできるだけ避けたいです;

>>egachanさん
http://sprocket.babyblue.jp/html/hsp_artlet2d.htm
こちらのページの最後に、「著作権フリー」と書いています。
ですので、多分ここで公開しても大丈夫だと思います。

http://firestorage.jp/
ファイルのアップロードは、こちらのサイトを使ってください。


念の為に使い方を説明しておきます。

画面上にあるオレンジ色の枠の中にある、「違法なファイルではない 」にチェックを入れてください。
すると、アップロードというボタンが出てくるのでそこをクリックしてファイルを選択してください。
あとは自動でアップしてくれます。アップが完了すると、オレンジ色の枠の下の方にダウンロードに必要なURLが表示されます。

透過情報を維持したいので、picloadで読み込む方法は使えません;
どうしても無理そうならgmode 7を使う予定です。



check

リンク

2013/7/4(Thu) 14:05:14|NO.55482

>では、どのような手順を踏めばその暗号化したファイルをArtlet2Dで読み込めるのでしょうか?
暗号化を解除(復号化)すればなんでも使えるのだが……。

と思ったが、パックしたファイルからバイナリデータを読み込むことは可能なのであろうか?
それが無理でも、上記の暗号化を施したあと、拡張子も独自のものに変えておけば、
まず暗号化の知識を持たない者には読み取られることはないであろう。

ゲーム内のデータを何とかして読み取ろう、
と考えているハッカーにプレイしてもらえるほどのゲームでなければ大丈夫だ。
後はスレ主がそれほどのゲームを作れるようになれば、自然と知識は身についているはず。



egachan

リンク

2013/7/5(Fri) 09:20:58|NO.55500

2カ所にアップしましたのでお好きな方からどうぞ。
http://firestorage.jp/download/d070de261c3ec1466da8a9ade99973c81723f646
http://www1.axfc.net/uploader/Sc/so/470163
既存のa2d.hspに上書きすればそのまま使えます。

Artlet2D改造内容
1.packfileの画像ファイルやmemfileのメモリデータからの読み込みに対応。
2.jpeg画像を保存するときに画質設定を可能にした。
alSaveFileで7番目のパラメータに0〜100の値を設定することで
jpeg形式で画像保存するときに画質設定を可能にした。
0に近いほどファイルサイズ優先、100に近いほど画質優先。
デフォルトは75。

検索して見つけたけどすでにアップローダから消えてた人用
Artlet2Dをpackfile対応にする方法。
GdipLoadImageFromFile p1, varptr(tmpImage)を検索してtmpImage=LoadImageFromHspfile(p1)に置換(2カ所ある)
その後以下のモジュールをa2d.hspの最後に追加。

#module #defcfunc LoadImageFromHspfile str p1 ; filename #uselib "gdiplus.dll" #func GdipLoadImageFromStream "GdipLoadImageFromStream" int,int #uselib "kernel32.dll" #cfunc GlobalAlloc "GlobalAlloc" int,int #cfunc GlobalLock "GlobalLock" int #func GlobalUnlock "GlobalUnlock" int #func GlobalFree "GlobalFree" int #uselib "ole32.dll" #func CreateStreamOnHGlobal "CreateStreamOnHGlobal" int,int,int #define GMEM_MOVEABLE 2 exist p1 if strsize==-1:return 0 hMemory=GlobalAlloc(GMEM_MOVEABLE,strsize) if hMemory==0:return 0 dupptr tmpmem,GlobalLock(hMemory),strsize,2 bload p1,tmpmem,strsize dim tmpmem,1 GlobalUnlock hMemory CreateStreamOnHGlobal hMemory,1,varptr(pIStream) if stat:GlobalFree hMemory:return 0 GdipLoadImageFromStream pIStream, varptr(gpimage) newcom Istream,,-1,pIStream delcom Istream return gpimage #global



名無し

リンク

2013/7/5(Fri) 11:51:51|NO.55502

>>egachanさん
ありがとうございます。無事にパックしたファイルを読み込むことができました。
mciでパックしたファイルを読み込むのは無理そうなので、諦めます。皆さん、本当にありがとうございましたm(__)m



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