問題タブ [copy-protection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 用辞書アプリのコンテンツ保護 (ライセンス)
Android用の辞書アプリを開発しています。権威ある出版物から正規の辞書コンテンツを購入し、それらをアプリにバンドルします。アプリの出荷後のコンテンツの保護は必須です。パフォーマンス効率と開発の容易さのために、ディクショナリの内容を SQLite データベース テーブルとして格納する必要があります。
タブレット用の辞書コンテンツと一緒に辞書アプリをプレインストールする予定です。Android タブレットのベンダーである顧客がおり、Android マーケットまたはその他のオンライン購入メカニズムを介して、今後の辞書タイトルを顧客に提供し続けます。
私の質問は:
- アプリとコンテンツが Android タブレットにプリインストールされている場合、コンテンツがハッキングされないように安全な暗号化メカニズムは何ですか。
- 新しく追加されたオンライン購入タイトルの場合、私たちが従うべき良い例はありますか?
password-protection - ソフトウェアシリアル番号の実装
私がプログラムを書いて、それを人々に配布したいとしましょう。ソフトウェアのライセンス コピーを持っていることを確認するために、インストール中にユーザーにシリアル番号を要求できるようにしたいと考えています。さらに、アクセスできるソフトウェアのエディションと、ライセンスの有効期限をシリアル番号に保存したいと考えています。
これを達成するために考えられる概念的な方法が少なくとも 2 つあります。
ユーザーがソフトウェアを購入するサーバーでシリアル番号を生成し、電子メールで送信します。ソフトウェアは、インストール中にサーバーに接続し、製品をアクティブ化します。サーバーは、ライセンス権限と有効期限を返します。シリアルには特定の形式や数学的規則はなく、サーバー上のデータベースに対して単純にチェックされます。
顧客用のシリアルを生成し、電子メールで送信します。シリアルには、有効かどうか、どのライセンスに対応するか、有効期限がいつ切れるかをプログラムがチェックできる特別な数学的プロパティがあります。
私は主に2番目の方法に興味があります。この情報をシリアル番号にエンコードする際に使用される技術は何ですか? 簡単な概要を説明できれば、それは素晴らしいことです。そうでなければ、これについて議論している良い本やウェブサイトをいくつかお勧めできますか?
何年にもわたってコーディングを行ってきましたが、これらの手法の実装や説明を実際に見たことがないのは不思議です。
android - Android ゲームがハッキングされ続ける
私たちはこれを数回経験しており、ゲームを(安価で)リリースし、誰かがそれをハッキングしてミラーに投稿しました。私たちはすべてのアプリに Google アラートを設定しているので、誰がハッキングを行っているかを毎日知らせてくれます。これまでのところ、Google が提案したようにライセンス サービスを実装しました。ライセンスが一意のデバイス ID で開始されるたびに、ソルトがランダムに作成されます。アプリケーションの初回起動時に、チェック サービスを 1 回実行します。次に、キーの 512 文字のハッシュと、それ以降の SharedPreferences で比較される保存された値を生成します。
これで、1 回チェックすると、おそらくアプリケーションがブロックされていることがわかりました。私たちのバイトコードは、チェックを開始する行なしで調べられ、再コンパイルされた可能性があります。
ここからは、コードが壊れているのを見たことがあるので、コードを難読化したくありません。もう少ししっかりしたものが欲しいですし、これをきちんと行う方法も学びたいです。ハッキングされたバージョンを探す人は 2% しかいないので、現時点ではお金を稼ぐことよりも学ぶことに興味があります。
これまでのところ、私自身、ゲームのいくつかのスタートアップ領域に配置される乱数ジェネレーターを考え出しました。ライセンスが開始されると (たとえば、50 回に 1 回)、ライセンスがチェックされます。クラッカーは各ケースを排除し、コンパイルし、排除し、コンパイルしなければならないため、これによりハッキングが難しくなることはわかっています。ただし、この方法はまだクラック可能です...それで、皆さんは何を提案しますか? 繰り返しますが、私はこのセキュリティ プロセスに非常に興味があるので、教育してください。難読化やタイムスタンプに基づく定期的なチェックについての議論に発展させないでください。
ありがとう
cloud - クラウドソフトウェアのドングル代替
現在、当社のソフトウェアはUSBドングルで保護されています。クラウド環境で実行したい場合、明らかにそれはもはやオプションではありません。
クラウド自体はお客様の管理下にあります。お客様はすでにそのような環境を設定しています。
そのような環境のための良い保護スキームはありますか?
validation - 無効な認証で製品を無効にする方法は?
私はこれに少し困惑しています。キー/ライセンスの作成には、非常にユニークなハッシュアルゴリズムなどがあります。その部分は気にしていません。
私がアイデアを必要としているのは、無効な製品を無効にする方法です...ええと、検証。
Linux プラットフォーム上にあり、構成ファイルなどを使用します。
無効なライセンスに基づくアクションには、いくつかの選択肢があります。
-構成ファイルを一掃します(ただし、バックアップから簡単に復元できます)
-バイナリを機能しないバイナリに置き換えます(ただし、これらはバックアップなどから簡単に復元できます)
-後で連絡を取るためにサポートスタッフにフラグを立てるだけですが、それでもライセンスのないコピーを許可しないという問題は解決しません.
アイデア?これまでのところ、これに対する満足のいく解決策はありません。
windows - Azure アプリケーションのバイナリ ファイルが盗まれることについて、どの程度心配すべきですか?
巨大なアプリケーションを Windows Azure に移行する必要があります。アプリケーションは、ロール インスタンス ファイルシステムの特別なバイナリ ファイルに格納されているアクティベーション キーを必要とするサードパーティ ライブラリに依存しています。
明らかに、そのキーはロール パッケージに含めるか、ロールがフェッチできる場所に格納する必要があります。アクティベーション キーはマシンにバインドされないため (クラウド内でロールが実行される正確な場所がわからないため)、誰でもそれを使用してそのライブラリのコピーを機能させることができます。
Azure のロールは私たちの管理下にない場所で実行されているため、キーが盗まれて広く利用可能になることについて、私はやや妄想的です。
Azure ロールに含まれるバイナリ ファイルを盗む可能性を評価するにはどうすればよいですか? そのようなリスクを軽減するにはどうすればよいですか?
php - HTTP 要求を送信するサーバーを確認する
HTTP 要求を送信しているサーバーが期待どおりのものであることを確認するにはどうすればよいですか?
ソフトウェアが許可された Web サーバー上で実行され、Am_I_Allowed? を実行する、基本的なコード保護システムを作成したいと考えています。サーバーへの HTTP リクエスト。私のサーバーは、リクエストを送信したサーバーを特定し、ホワイトリストと照合します。
保護されたコードが共有ホスティング サーバーで実行されている場合、ホスティング会社の IP アドレスが返されるため、IP アドレスは不明です。$_SERVER['REMOTE_HOST'] は、Web ホスティング会社のドメイン名を解決する IP アドレスに基づいています。
サーバーが HTTP 要求で送信して認証に使用できる固有の (なりすましが難しい) ものはありますか? 単純なパスワードは機能しません。コピーして別のサーバーに貼り付けると、2 番目のサーバーにも有効なパスワードがコードに埋め込まれてしまうからです。
どうもありがとう
html - HTML5コピー防止
私はフラッシュオンラインゲームに似たオンラインゲームを構築していますが、HTMLのみを使用しています。(HTML5)
コピーして自分のサイトにゲームを載せないようにしたいと思います。
フラッシュでは、URLチェックを追加して自分のサイトで実行されていることを確認することでこれを行っていましたが、チェックをJavascriptにしか入れられない場合、これは役に立たないようです。
誰かが単にゲームをコピーするのを妨げることができるものはありますか?
フォローアップとして..
ソースを完全に保護できますか?(javascriptによる難読化は別として。)
ありがとう!
php - サービスプロバイダーがコードとデータベースを取得して別の場所に公開しないようにアプリケーションを保護する方法
私は自分の会社 (php-mysql-jquery) 用のアプリケーションを開発しましたが、このアプリケーションをさまざまな会社に販売しようとしています。問題は、直接販売しているのではなく、サービスプロバイダーを仲介していることです。私の上司は、私たちのサービス プロバイダーがアプリケーションをホストしているため、アプリケーションのフォルダーである db を単純にコピーして、それを独自のものとして販売できるのではないかと心配しています。
そこで質問なのですが、アプリケーションを特定のサーバーでのみ実行するようにロックする方法はありますか? 私が考えていたのは、サーバーのIPと「index.php」の実際のフォルダーに基づいた、ある種の「ストラトアップチェック」であり、渡されない場合、アプリケーションをブロックします。もちろん、コードを難読化して、小切手をリバースエンジニアリングすることはできません。
次のようなもの(明確にするために):
より良いアイデアを思いつきましたか?それとも、標準的な手順 (ベスト プラクティス) がありますか?