HTML5ゲームの難読化


8

HTML5ゲームには、表示可能なソースコードがあります。それらをswfファイルのようにする方法はありますか?

ゲームアルゴリズムを非表示にする方法は?

Firefox JavaScript Deobfuscatorプラグインと難読化についてどう思いますか?


1
難読化する理由を教えていただければ、可能であれば(おそらく)、はるかに優れた回答を提供し、コードを非表示にする必要がないことを示します。
jcora

3
また、SWFファイルも保護されません。すべてのアセットとコードを簡単に逆コンパイルして抽出できます。そこには難読化ツールがありますが、彼らは本当に決心しているものを止めません。
bummzack 2012

逆コンパイル後にswfアプリケーションを完全に復元するために必要な時間はどれくらいですか?
ロスタム2012

また、なぜあなたはしたいですか?
ブライス

回答:


10

ソースを保護したい場合は、HTML / Javascriptで記述しないでください。

すべて人間が読める形式であるため、Webのすばらしい点の1つです。これは、優れた学習リソースになります。Webサイトのソースを見て、それがどのように機能するかを学習したことがないと私に言っている場合は、遠慮なく教えてください。

私は皆、コードとの愛を分かち合っています。さもなければ、ウェブサイトでヘルプを提供することについての質問にすべて無料で答えられないでしょうか。

編集:私はそれについて私が考えていることを述べました、それを読みにくくする方法はありますか?いいえ、純粋なJS / HTMLではありません。その理由は簡単です。どこかで読みやすくなります。難読化すると、難読化解除ツールがあなたを手に入れます。暗号を使用したり、何らかの方法で変換したりする場合は、ある時点でそれをJavaScriptに変換する必要があります(そして、それを変換するコードもソースにある必要があります!)。

あなたができる最善のことは、帯域幅の盗難から保護し、本当に必要性を感じた場合は難読化することですが、彼らが本当に決心していれば人々を止めることはできません。


6
flashとjavaは逆コンパイルでき、バイナリは逆アセンブルでき、javascriptは解読できます。JavaScriptで記述しなかったからといって、ソースが保護されていません。
エサイリヤ2012

2
@Esailijaあなたがこれまでに訓練されたリバースエンジニア/セキュリティの専門家/ハッカー/優れていることを除いて、それが取る平均的な努力は同じではありません。
daemonfire300 2012

3
どこからでも引用:「ある人が他の人にしたことは、元に戻すことができます。」そして私はそれに付け加えます:「正しい意図と意志があれば、本当に保護されているものはありません。」
Ricardo Souza

まあ私はそれを本当に素晴らしいものとは呼びません。「祝福と呪い」の状況の詳細
CobaltHex

私はそれを「ベースメカニック」と呼んでいます。Webで盗むのは本当に簡単です。これが、私たちが行うイノベーションのスピードと複雑さを備えている理由です。ニュートン、ピカソ、エリオット、そして私は、巨人の肩によって高潔に正当化されていたとしても、直接の盗難に関するすべてのマキシムを造ったに違いない。シェイクスピアは盗難に優れていました。
Matt Kemp、

5

Node.jsを介してサーバーに多くを置き、関数の結果を返すだけで済みます。それ以外はマット・ケンプが言うようです。実行されるコードは人間が読むことができ、それを隠すことは不可能です。


2

コードを難読化しなくても、HTML / JSはSWFとリバースエンジニアリングするのがほぼ同じレベルの困難です。

SWFファイルには、難読化されていない限り、元のActionscriptコード(IIRC)とコメントなどが含まれています。オブジェクトの名前などもSWFに含まれています。

SWFデコンパイラー/リコンパイラーが存在し、テキストエディターで表示できないからといって、SWFがリバースエンジニアリングから安全であることを意味するわけではありません。

実際、難読化のレベルはSWFとまったく同じです。難読化ツールを使用してJSコードを難読化することもできますが、その場合、バグレポートの解釈が難しくなります。

人々がそれを盗むのを防ぐのではなく、盗む価値のあるものを作ることに努力を集中したいと思うでしょう。多数のSWFが取り除かれ、不正な目的で使用されます(グラフィックの変更など)


2

無料のYahoo YUIコンプレッサーを使用します。

コードを大幅に圧縮するため(コメントや不要な空白の削除を含む)、これを使用しています。これにより、泥棒のために作成するのがいかに簡単であるかを心配することなく、コードをコメントどおりに構成し、思い通りにコードを構成できます。

さらに、すべての変数と関数の名前が本質的に破壊された後で複雑なサイトのJavascriptを読みたい場合は、それで頑張ってください。ヒントがないときにコードが何をしているのかを理解するのははるかに困難です。

(YUIコンプレッサーを使用すると、関数名も削除するためにその機能を拡張する必要がある場合があります。ほとんどの関数名を自動的かつ選択的に削除する目的で関数の名前を付ける方法を変更しました。これには、カスタムコードが必要になる場合があります。)


1

いいえ、本当に理由はありません!作品を販売したい場合は、難読化せずにそれを行うことができます。人々はコードではなくコンテンツの代金を支払います。アートワーク、ストーリー、音楽などを販売し、コードを自由に配布します(とにかくすでにそうです)。


1

HTML5ゲームには、表示可能なソースコードがあります。それらをswfファイルのようにする方法はありますか?

ええ、Flashを使用して、コードをActionScriptに変換します。

ゲームアルゴリズムを非表示にするにはどうすればよいですか?

絶対的に言えば、それはできません。

Firefox JavaScript Deobfuscatorプラグインと難読化についてどう思いますか?

難読化は、コードを盗むことを真剣に考えている誰かにとって非常に薄い障壁にすぎません。それでも、設定は簡単で、ほとんどのばかげたスクリプトキディを撃退することができます。また、クライアント側のコードを保護するためにできることはそれだけです。スクリプトのサイズが小さくなり(ダウンロードが速く)、コードを最適化することもできる(実行が速くなる)という追加の利点があります。難読化の詳細については、Stack Overflowでこのエントリを確認してください。概要:選択肢はたくさんあります。個人的に試した UglifyJSましたが、非常に満足のいく結果が得られました。


0

HTML5はプログラミング言語としてJavaScriptに依存しています。理論的には、JavaScriptを保護するすべてのツールがHTML5で動作するはずです。

ゲーム開発のコンテキストでHTML5を現在サポートしている唯一のツールは JScramblerです。です。他の人がうまくいくかどうかはわかりません。

議論の一部として、難読化は特効薬ではありません。暗号化されてコンパイルされたソフトウェアがいくつかあり、いくつかのコピー防止ソリューションで保護されていますが、支払いをせずに入手できます。そうは言っても、あなたが意図しないときにコードを誰にでも読めるようにしておくと、難読化がうまくいくと思います。

私はオープンソースが大好きで、その動きをサポートしていますが、ソースを閉じることは非常に理にかなっています。


0

ネイティブコードを使用できます。C ++でプログラミングし、HTML5用にコンパイルします。Cocos2d-Xは、iOS、Android、およびHTML5で動作するライブラリです。コードは非表示になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.