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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0814
HSP初心者HSPのプロテクトの方法教えてください28未解決


HSP初心者

リンク

2008/8/14(Thu) 02:04:01|NO.18171

こんにちわHSP初心者です。
どの言語を学ぼうかと考えしつつHSPに決めました。
しかし、聞く所によるとHSPはソースの復元が簡単に出来るとのことですが、実際はどうなんでしょう
か?
また、HSPは他人からソース等情報見られないようにするプロテクトの関数は可能でしょうか?

HSPのソースの復元の方法
HSPプロテクト関数の方法

以上教えてください。



この記事に返信する


ANTARES

リンク

2008/8/14(Thu) 02:20:06|NO.18172

 100%ソースを見られないようにする方法はありませんが、
HSPにはaxファイルを暗号化する機能がありますので、
マニュアルを読んでください。
docs/hspprog.htmの「実行ファイルの作成方法 」「PACKFILEの編集について」

 復元については、特に意識する必要はありません。

 ところで、HSP自体はほとんどのソースが公開されています。
また、いろんなところでサンプルスクリプトが公開されています。
なぜだと思いますか?
それらのソースがすべて公開されていなかったらどうしますか?

 順番としても、まずHSP初心者さん自身の力をつけていくことが先決のはずです。
自分自身に他人に盗まれるほどの技術もない内から技術を隠すことを
考えるという姿勢にちょっと疑問を感じます。



S&R

リンク

2008/8/14(Thu) 06:25:35|NO.18184

1.初心者が知る必要はない
2.意味不明です



雷光

リンク

2008/8/15(Fri) 11:06:42|NO.18295

HSP初心者などのHNは禁止ですよ



p

リンク

2008/8/15(Fri) 17:07:49|NO.18296

1、小一時間探したら、暗号化されていても復元可能なものが見つかった。
2、物凄く読みづらくスクリプトを書けば、復元した人が読むのを諦めるかも。
というか、誰も同じようなものを作っていない、高度な技術が含まれてて参考にしたいと
思われるぐらいのものを作らないと、誰も復元しようとしないと思いますw

> 投稿時の注意 12. 投稿者名は匿名でかまいませんが、悪戯やSPAM防(略
匿名でもいいみたいですよ。



xxxz

リンク

2008/8/15(Fri) 17:35:22|NO.18297

>匿名でもいいみたいですよ。
利用規約が良くても、ネット上のマナーとしてよくない。



匿名

リンク

2008/8/15(Fri) 18:25:48|NO.18298

でも禁止ではない



高頻度通りすがり

リンク

2008/8/15(Fri) 19:44:19|NO.18301

本題から話が反れてますよ。
名前どうのこうのは、他の場所でやったらいかがですか?

本題ですが、ANTARESさんもS&Rさんも、1つ大事なことを忘れていませんか?
ソースの暗号化は、プログラミングの技術を隠すためだけにあるわけじゃないでしょう。
特にゲームなんかは、ソースを解析されて、弄られた日には、
苦労して作ったゲームバランスも無茶苦茶にされてしまうでしょう。
まぁ暗号化されていようが、される時はされますが。

HSPのソースが復元可能なのは仕方ないです。
私は調べていませんが、pさんの話では暗号化していても復元出来てしまうようですし。
ですから、本当に他の人にソースを見られたくない、というのがあるのであれば、
HSPで作った後、他の言語に移植していく、という形を取ればいいかと思います。
書き方が違うだけで、プログラムの流れ等に変化はありませんから。
他の言語でも解析することは不可能ではありませんが…

長文失礼致しました。



ANTARES

リンク

2008/8/15(Fri) 21:16:00|NO.18319

>特にゲームなんかは、ソースを解析されて、弄られた日には、
>苦労して作ったゲームバランスも無茶苦茶にされてしまうでしょう。
 ソースに対する考え方、あるいは製作物に対する考え方が
根本的に違うようです。
 私はオープンソースの理念に対して例外などあり得ないと思っています。
あるのは、国家や個人・法人の思惑だけです。



高頻度通りすがり

リンク

2008/8/15(Fri) 21:44:59|NO.18320

ツールなどは別にオープンソースでもいいでしょう。
むしろその方がいいと思いますが。

ですが、ゲームはさっき言ったように、ゲームバランスが崩れます。
どこの会社だって、普通はソースなんて公開していないでしょう。
特にオンラインゲームでソースの解析なんてされた日には、他人にも迷惑がかかるでしょう?
ゲーム会社は全てが間違っている事をしているということでしょうか?
プログラミングにおいてゲームを作るということは、楽しんでもらうのが大前提です。
決してプログラムの良さをアピールするためにあるものではありません。

あんまりゲームどーのこーのって語るとゲーム馬鹿みたいですけど…



p

リンク

2008/8/15(Fri) 23:34:19|NO.18326

>ゲーム会社は全てが間違っている事をしているということでしょうか?
ゲーム会社に限らず、利益などの見返りを上げるために運営しているなら
ソースコードを公開しないのは当たり前でしょう。
外観だけを変えて別物にみせかけた亜種が出回ったり、
特定の部分だけ抜き取って仕上げられたりすれば終わりですから。

ANTARESさんの持論では、
>あるのは、国家や個人・法人の思惑だけです。
のように言っているわけで個人・法人の思惑を取っ払えば(見返りを求めない
ソースコードを公開することによって、そのソフトやゲームが作者の手を離れたり、
作者のスキルの限界を迎えていたとしても、さらに発展する可能性があるわけです。
まあ理想ですけどね。私はそこまで見返りを求めない人間にはなれませんw



SYAM

リンク

2008/8/16(Sat) 01:42:03|NO.18328

ゲームというものは、突き詰めれば「ルールの塊」であって、それがそのまま要求仕様となります。なので、
ゲームプログラムというものは、「ルール」を網羅した内容になっているはずです。

ゲームのルールというものは、おいそれと改変すべきものではなく、勝手にそれを改ざんすることは「ゲームにとって」不正な行為です。
ですからゲームにおいては、不正行為をしにくくするという要求が考えられます。
逆にいえば、ルールに反することを実行できてしまうのは、プログラムが要求を満たせていないということです。
すでに改変されてしまったプログラムが要求仕様を満たせないのは当然ですが、そのような状況にならないために、改ざんしにくいことも(元の)プログラムには要求されます。

そもそも、プログラムというものは、要求仕様を満たすために記述するものです。

しかし、先に述べたとおり、ゲームにおいてはプログラムを改ざんできてしまうことが「要求」に反する場合が多々あります。ソースを読めることは、改ざんの非常に大きな手助けになります。
つまり、要求を実現する大きな妨げになってしまうわけですから、いってしまえば、ソースが読めるということは、要求にとってのプログラムの価値が落ちてしまうことになります。

------------

こっちの話はちょっと概念的なおはなしですが、
ゲームというものは「ルールで縛る不自由さ」と「手間」をわざわざ発生させて、プレイヤーがその手間をかける行為です。

たとえば野球ゲームを考えて、目標を点数の獲得、つまり「バッターがボールを打ち返して、1〜3、本塁をまわること」と設定します。
そうすると、目標を達成するために「手間」が発生しますね。
さらに、「ルールで縛る不自由さ」というのを挙げれば、たとえばバッターはタイミングよく正しい位置にバットを振らないとヒットしませんし、また、当然ヒットしなければ走塁もできません。

プログラムなら、これをバットさえ振れば当たったことにして、且つすべてをホームラン(無条件に1〜本塁まで走塁可)にする、なんて簡単なことです。またはヒットしなくても自由に走塁してもいいとか。
これらは、バッターが目標を達成するためには便利きわまる仕様変更です。
しかし、ゲームにとってはすべてをぶち壊す仕様変更です。

これはゲームのプログラム自体にも当てはまる話で、
ユーザーがルールを自由に改ざんできてしまうことは、ユーザーにとっての便利でありながら、そもそもゲームが要求する仕様に反します。
したがって、「仕様を実現するために」、ユーザーに不便を強いることになります。すなわち、改ざんをしにくくする措置をとります。
要求を正しく実現できることになるわけですから、プログラムの品質は高いといえます。
逆に、自由に改ざんできることは、要求を満たせていない、品質が悪いという要素になってしまいます。



S&R

リンク

2008/8/16(Sat) 06:16:48|NO.18330

>本題ですが、ANTARESさんもS&Rさんも、1つ大事なことを忘れていませんか?
はい?
俺は「初心者が知る必要はない」と答えたんですが。
HSP初心者さんが本当にHSP初心者であるという前提で書きますが、
まだHSPでプログラミングもできない人が
HSPで作ったプログラムからソースの復元の方法を
知る必要がどこにありますか?説明お願いします。
既製のプログラムからソースを抜き出し、それを基に勉強をするため、と説明しますか?
高頻度通りすがりさんは何か勘違いしていらっしゃいませんか?
HSP初心者さんは「復元されない方法」を聞いているのではなく「復元の方法」を聞いているんですよ?


>特にゲームなんかは、ソースを解析されて、弄られた日には、
>苦労して作ったゲームバランスも無茶苦茶にされてしまうでしょう。
ゲームバランスの改変はソースの解析よりも簡単です。
というよりソースを解析して一から作り直すよりもプロセスメモリをいじれば済む。



S&R

リンク

2008/8/16(Sat) 06:40:47|NO.18331

HSP製のプログラムでプロセスメモリハックに強い書き方1


/* 対策前 */ *SubRoutine any_data = Function() // アドレスが固定されてるので絞込検索しやすい return



/* 対策後 */ *SubRoutine dim any_data // 毎回異なるアドレスを変数に割り当てる any_data = Function() // 絞込み困難(不可能とはいえない) return



あり

リンク

2008/8/16(Sat) 12:16:38|NO.18334

極論を言ってしまえばHSPでは(じゃなくてもかな?)完全なプロテクトは不可能なので
見られては困るではなくて、見られても問題ないソースを書くよう心がけるしかないでしょう。

そして解析や改造を止める手段がないのなら人の善意に訴える他ないと思います。
『プログラムの解析や改造はこのソフトの本質を著しく歪めますのでしないようお願いします』
とでも書いておいて、それでも解析や改造をする人がいるのならその人は
あなたのプログラムのあり方を理解してくれない残念な人なんだと諦めるしかないでしょうね。
また、もしソースを流用及び悪用した人がいたとしてその人に対して抗議をするも
残念に思うだけにするにしてもそれは製作者本人の問題であり
ここで話し合う事ではないですしね、冷たいようですが。

まぁ、少なくともここでオープンソースの理念やゲームの正しい遊び方を議論するのは
スレ違いでしょうし結論も出ないと思います。

・・・という事でHSP初心者さんの疑問はこれまでの流れで回答されてますし
考え方一つとっても人それぞれなのもわかった事でしょう。

ソースを見られることが耐えられないというのなら他のプログラム言語を使った方が
可能性という点では無難です。
それでもHSPを使いたいと思ってくれるのなら皆歓迎してくれますよきっと。

以上、偉そうな長文で失礼致しました。



GENKI

リンク

2008/8/16(Sat) 13:26:15|NO.18337

補足。(法律詳しくないですが話が出てこなかったようなので、一応補足です。)
ゲームに限らず著作者には、著作者人格権の一種である同一性保持権というものを持っています。
同一性保持権とは簡単に言うと、人の著作物(ゲームやツールも含)の中身を勝手に変えちゃダメという法律です。
この権利は作品が完成した瞬間に自動的に発生するもので申請手続きの必要もありません。
と、このように一応ですが法律的にも保護はされています。

とはいえ所詮法律なので、やはり他の方が言っているとおりです。

以上、ただの補足(蛇足?)でした。



S&R

リンク

2008/8/16(Sat) 13:55:59|NO.18338

著作権とか飛び火しすぎじゃないですか?
相手は初心者なんだから初心者的回答でいいと思います。



高頻度通りすがり

リンク

2008/8/16(Sat) 14:15:40|NO.18340

>まだHSPでプログラミングもできない人が
>HSPで作ったプログラムからソースの復元の方法を
>知る必要がどこにありますか?説明お願いします。
無知である方がいいとでも?
復元の方法を知っているということは、復元を防ぐことが出来るかもしれないでしょう?
犯罪手口を知っておいた方が防犯に役立つのと同じですよ。

>ゲームバランスの改変はソースの解析よりも簡単です。
>というよりソースを解析して一から作り直すよりもプロセスメモリをいじれば済む。
ゲームバランスは例に挙げただけです。
RPG等は解析されるとストーリーもろばれじゃないですか。
まぁそこまでして解析しようとする人もいないでしょうけど。
…そもそもプロセスメモリをいじるにしても、一度解析しなければならないはずですが。
単に私が無知なだけで、プロセスメモリをちょっと覗いただけで分かる人もいるのかもしれませんが。

言うだけ言って逃げるような形になりますが、
HSP初心者さんに迷惑をかけてしまっているので、私はこれ以降レスしません。
まだ何かあれば別にスレでも立ててお願いします。



S&R

リンク

2008/8/16(Sat) 15:13:10|NO.18342

>>まだHSPでプログラミングもできない人が
>>HSPで作ったプログラムからソースの復元の方法を
>>知る必要がどこにありますか?説明お願いします。
>無知である方がいいとでも?
>復元の方法を知っているということは、復元を防ぐことが出来るかもしれないでしょう?
>犯罪手口を知っておいた方が防犯に役立つのと同じですよ。

入門書の冒頭に「HSPはソースを抜かれやすい」とか「復元の方法」から始まったりしますか?
そういう知識は自分でゼロからプログラムが組めてから得るべきものです。
初心者は知らなくていいことだと思います。



ANTARES

リンク

2008/8/17(Sun) 01:30:17|NO.18355

 あるゲームに対してどういう楽しみ方をするかはプレイヤーの自由であり、
それを縛る権利があると考えるのは製作者のおごりというべきでしょう。

 あえて先に答を知りたいという人がいるならそれはその人の勝手。
普通は解けないから答えを知りたくて解析するのでしょう。
そこで得た知識を他人にネタバレするのは問題ですが、
それは聞かされる側の権利の問題で、製作者の権利とは関係ありません。

>人の著作物(ゲームやツールも含)の中身を勝手に変えちゃダメという法律です。
 それは公開に当たっての話でしょう。例えば、出版社が著者の文章を
勝手に書き換えて出版してはダメと。
本にメモを書くのは著作権法違反とでも?



SYAM

リンク

2008/8/17(Sun) 11:21:39|NO.18365

>あるゲームに対してどういう楽しみ方をするかはプレイヤーの自由であり、
>それを縛る権利があると考えるのは製作者のおごりというべきでしょう。

スタンドアロンで一人用のソフトウェアならそうなんですが
きょうび珍しくもなくなったネットワークゲームなどにおいて、
ユーザーを他のユーザの不正行為から保護することが要求されたらどうしましょう?



GENKI

リンク

2008/8/17(Sun) 14:32:47|NO.18366

>  あるゲームに対してどういう楽しみ方をするかはプレイヤーの自由であり、
> それを縛る権利があると考えるのは製作者のおごりというべきでしょう。

念のために調べてみたのですが、法律上は私的な領域であっても同一性保持権の例外とならない。(by Wikipedia)
となっているそうです。私も知りませんでした。
公開するとNGなのかと思ってました。公開しないと著者が気づかないだけなんですね。

とはいえ私もスタンドアロンのゲームを個人の範囲で解析したり改変したりというというのは楽しみ方のひとつだと思います。
しかしこれが個人の範囲を超える場合は問題ですね。ネタバレされた人的にも著作者的にも。


> きょうび珍しくもなくなったネットワークゲームなどにおいて、
> ユーザーを他のユーザの不正行為から保護することが要求されたらどうしましょう?

これは個人の範囲超えた迷惑行為、というか著作権以上にめいわくかかってそうですね。
ゲーム管理者にお願いして排除(権利行使)を…。





メモは…どうなんでしょうね。
著作者の意に反する行為という印象はないですが…よくわかりません。



ANTARES

リンク

2008/8/17(Sun) 22:17:55|NO.18387

>念のために調べてみたのですが、法律上は私的な領域であっても
>同一性保持権の例外とならない。(by Wikipedia)
 否定する根拠は持っていませんが、正しいとしても実効性が問題になります。

>公開するとNGなのかと思ってました。公開しないと著者が気づかないだけなんですね。
あまり、頭から信じ込むのもどうかと。



S&R

リンク

2008/8/18(Mon) 06:27:45|NO.18396

あのーこのスレ、法律うんぬんが本題では無いと思うんですが。



やみねこ

リンク

2008/8/19(Tue) 08:24:21|NO.18433

> ソース解析について
特許でも絡まない限り、どうしても困るという事はあまり無いように思いますが…
人が解析したくなるような高度なプログラムを作れるなら、
自分で隠蔽出来るのではないかと思いました。

とはいえ、たしかにソース解析とかのツールが存在するようですね。

ただ、解析したところで実力が足りなければ何をしてるのか理解できませんし、
理解できるなら、それに近い処理を自分で書けるでしょうし…

そんな非効率な勉強方法を取るぐらいなら、アルゴリズムや考え方を検索したほうが、
よっぽど早く必要なものを得られると考えています。


> ゲームバランスについて
市販のゲームも改造されてしまう今、(言い方悪いですが)HSPレベルでそれを考えるのは難しいように思いました。


> ネットゲームについて
今あるネットゲームでもチートされたりしてますよね?
それもゲームバランスと同じ事かと思います。


ソースで解析出来れば、確かに敷居が低いので手を出されやすいと考えがちですが、
結局 実行ファイルがある限り、アセンブラなどでは解析できると思います。

アセンブラを理解していなくても改造できるツールも有るようですし、
完全にガードするのは、ほぼ不可能なように思います。


最近ではソースをフリーにする流れもありますし、
ゲームは特にソースより、データが重要になると思われるので、
データの暗号化などを検討したほうが良いように思いました。

(C言語に逆コンパイル出来るツールがあるって本当でしょうか?
 あるBlogで読んでから興味を持っているのですが)



SYAM

リンク

2008/8/19(Tue) 08:49:12|NO.18434

コンピュータそのものも含めて人が作ったものですから、完全な保護は無理です。
が、だれにでもルールが改ざんできる状態よりは、
改ざんしにくい状態にした方が、より要求仕様に近いものになるということです。

ネットゲームなんかは、不正対策の強度も「製品の品質」として評価されたりしますしね。



やみねこ

リンク

2008/8/19(Tue) 20:13:39|NO.18464

>SYANさん

もっともですね。
では、誰にでも改ざんできるのか?
ということで、

HSP初心者さん

改ざんできるかどうか自分で実験してみましよう。
簡単に出来るようなら、考えてみたほうがよいかもしれませんね。 ^^

こんなところで、いかがでしょうか?



S&R

リンク

2008/8/20(Wed) 13:34:09|NO.18505

>C言語に逆コンパイル出来るツールがあるって本当でしょうか?

あるんじゃないの。
マシン語を読むだけで対応するCソースが分かるっていう人間逆アセンブラーな人もいるくらいだから。



やみねこ

リンク

2008/8/20(Wed) 22:05:43|NO.18550

>S&Rさん

人間 逆アセンブラーですか…
会ってみたいw



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