問題タブ [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.
licensing - 固有の仮想マシン
ソフトウェアをライセンスで保護するための何らかの方法に取り組んでいます。いくつかの wmi 呼び出しを実行してコンピューターを一意に識別し、アプリケーションの複数のインスタンスが読み込まれないようにします。
アプリケーションが仮想マシン (MS Virtual PC、VMWare、Virtual Box など) にインストールされ、そのライセンスが付与されている場合、Virtual PC のクローンを作成し、仮想 PC の複数のインスタンスを起動することは可能でしょうか?同じ物理 PC でありながら、仮想 PC のハードウェア (またはその他の異なる) 情報を互いに区別していますか?
これまで、wmi 呼び出しの情報の違いをよく調べてきましたが、それらは完全に同一のようです (Microsoft Virtual PC を使用して、同じ PC イメージの 2 つのクローンを確認しました)。
flash - Flash EXE の保護
私のクライアントは Flash プロジェクター EXE を持っており、オンラインで販売できるようにオンラインのシリアル番号管理システムをセットアップしたいと考えています。
私が見る限り、このプロジェクトの主な問題は、exeが1台のコンピューターでのみ実行する必要があることです。
私の現在の計画は以下のとおりです。
- 分割払いの前にユーザーにシリアル番号を要求し、問題がないか確認してください。
- 問題がなければ、多数の一意のハードウェア定数からハッシュを生成します。それをサーバーと照合し、アプリケーションが以前にこのマシンにインストールされていたかどうかを確認してください。
- そうでない場合、または以前と同じマシンである場合は、インストーラーを続行します。
- インストール後、ハードウェア ハッシュをレジストリに入れます。
- ローダー EXE を作成し、Flash EXE をリソースとして配置します。
- ローダー EXE で、レジストリにハードウェア ハッシュがあり、それが実行中の正しいハードウェアであるかどうかを確認します。
- ハードウェア ハッシュが正しい場合は、リソース (Flash Exe) を隠しパスに抽出し、CreateProcess で実行します。
さて、このワークフローには重大なセキュリティ上の欠陥があることを認識しています。リソースexeを抽出して実行すると。タスク マネージャーを見ているすべてのユーザーに表示されます。だから彼/彼女は彼の手を伸ばしてそれをつかむことができました!
どうすればアプローチを改善できますか? 少なくとも許容範囲まで?
ありがとう。
PS このアプリケーションには、保護とシリアル番号に関して、 http: //www.increditools.com/flash_exe_builder/index.phpと同様の機能があります。
android - Android アプリのコピー防止とデータ ファイル
私のアプリでは、コード内の次のハードコーディングされた場所で sqlite データベースにアクセスします。
/data/data/com.mydomain.appname/databases/database.db _
マーケット プレイスでコピー防止をオンにしても、アプリは引き続きこの場所にアクセスできますか?
または、次のように変更する必要がありますか?
/data-private/data/com.mydomain.appname/databases/database.db _
(またはこのようなもの)
私は Dev Phone しか持っていないので、コピー防止をオンにした後もアプリが正常に機能するかどうかをテストする方法がありません。
ありがとうございました!
[編集:この質問は明確にするために言い換えられました]
protection - ソフトウェアコードを保護する方法は?
重複の可能性:
ソフトウェアを違法な配布からどのように保護しますか?
ソフトウェアのコピーを防ぐためのベストプラクティス
仮定の状況:
私がソフトウェア製品をゼロから構築し、それが素晴らしいことをしているとしましょう。唯一の問題は、誰かがコードを見ると、それを非常に簡単に理解し、自分で簡単に構築できることです。
さて、私は100%ゼロからコードを作成し、API呼び出しを組み合わせて使用しています。他の誰もコードの開発に関与していません。
この製品を販売したい場合、私よりもはるかに賢い人がすべてをリバースエンジニアリングして、より良い製品を思い付くという保証は何ですか?
今、私はコード全体を断片化することを考えています。たくさんの冗長なコードとたくさんのコメントを追加します。
ソフトウェアコードを暗号化して、デバッグ、トラブルシューティング、およびコードの動作の理解を事実上不可能にするソフトウェアはありますか?まだいつものように実行しますか?開発者が安心できるように?
vb.net - ソフトウェアを vb.net の 1 台のコンピューターでのみ実行するように保護する
小さなアプリケーションを開発しましたが、それを保護したいと考えています。
自分のコンピューターでのみ実行したいので、自分用に開発しました。
どうやってやるの?
java - JarStore-コピーを防止する
AppStoreと同じようにJarStoreを作成しますが、Java開発者向けです。
誰もがカスタム.jarライブラリを送信して販売することができます。これにより、いくつかの小さな問題が解決されますが、他の開発者の作業時間を節約することは非常に効果的です。
唯一の未決定の問題は、購入した.jarをネットにコピーまたは公開しないようにする方法です。
編集:これはおそらく強力な著作権ポリシーを使用することで達成できますか?提案してください!
編集2:私はスティーブジョブズが尋ねていると想像します:
android - AndroidのSDカードにゲームアセットをダウンロードする
アプリのサイズをできるだけ小さくするために、いくつかのアセットをSDカードにダウンロードする必要があるAndroidゲームを開発しています。非圧縮のzipファイルを使用してすべてのアセットをバンドルすることを考えていました。
クライアントからの要件は、これらの資産を可能な限り保護することです。apkの一部であることは十分な保護と見なされますが、これを行うと、apkのサイズは非常に大きくなります。SDカードにzipバンドルを入れるだけで、誰でも解凍してその内容を調べることができます。
恐ろしいDRMに反論せずにこれを行う簡単な方法はありますか?
明らかに、誰かが本当にAndroidゲームのリソースをチェックしたいのであれば、彼らはそうすることができます。これを非常に簡単にすることを避けるための簡単な解決策を探しています。
android - Android APK をプログラムでフォワードロックする
少し事前調査を行っており、タイトルに要約されている点にこだわっています。つまり、プログラムでインストールされた APK を別のアプリからフォワードロックする方法はありますか? 次の投稿のヒント以外には何も出くわしませんでした: http://groups.google.com/group/android-developers/msg/e39941389d4a4cf8
PackageManager のドキュメントにはフォワード ロックについて何も記載されていませんが、これは私にとって SDK のなじみのない領域であることを認めます。
[Android-Developers Google グループと相互投稿]
javascript - 画像の Javascript コンテキスト メニュー
多くの人が画像をコピーする Web サイトを持っていますが、これは問題ありません。ただし、私がやりたいことは、彼らがアクセスしようとしているターゲット Web サイトにそれを埋め込むのを助けることです.
理想的には、ユーザーが画像を右クリックするとコンテキスト メニューが表示され、画像を埋め込んだり共有したりするための簡単なオプションが表示されるという形になります。
これを行う最善の方法は何ですか?
Ps ホットリンクや画像の保存はまったく気にしません。私がしたいのは、ユーザーに画像を共有する簡単な方法を提供することだけです!
licensing - コピープロテクトに関するご意見・ご相談・ソフトウェアライセンシングのご自宅へのお電話
最終的に販売する予定のソフトウェアを開発しています。カスタムとサードパーティの両方で、さまざまなコピー防止メカニズムについて考えてきました。100% 完全なコピー防止機能がないことはわかっていますが、少なくとも試してみる必要があります。だから私は考えている私のアプローチに対するいくつかの意見を探しています:
私が考えている 1 つの方法は、イーサネット ポートの MAC アドレスに基づいてライセンスを確認するために、起動時にソフトウェアをリモート サーバーに接続することです。
- サーバーがライセンス情報を取得する MySQL データベースを実行しているかどうかはわかりませんが、もっと簡単な方法はありますか? おそらく、読み取られる暗号化されたファイルのいくつかのタイプですか?
- サーバーに接続できない場合でも、ソフトウェアを動作させることができます。その時点でインターネットにアクセスできないという理由だけで、誰かをロックアウトしたくありません。ご参考までに、私が開発しているソフトウェアはインターネット/ネットワークに大きく依存しています。そのため、ユーザーが使用中にインターネットにアクセスできない可能性は実際にはほとんどありません。実際、インターネット/ネットワークアクセスがなければ、かなり役に立ちません。
- 複数の MAC アドレスを持つコンピューターに対して私が何をするか知っている人はいますか? 最近の多くのマザーボードには 2 つのイーサネット ポートがあります。また、ほとんどのラップトップには、1 つのイーサネット、1 つの Wi-Fi、および Bluetooth の MAC アドレスがあります。MACポートを選択して実行できると思います。それが本当に重要かどうかわからない
- 賢くて巧妙なユーザーは、ソフトウェアが接続しているサーバーを特定し、それをホスト ファイルに追加して、常に localhost に接続しようとする可能性があります。これはどのくらいの確率だと思いますか?そして、ソフトウェアがこれが行われているかどうかをチェックすることは可能だと思いますか? ホストファイルの解析は常に機能すると思います。そこにあるサーバーアドレスを探して、localhost などに接続しているかどうかを確認します。
- ドングルを検討しましたが、使用するのが面倒だとわかっているという理由だけで、ドングルを避けようとしています。それらを最新の状態に保ち、場合によっては顧客に独自のライセンス サーバーを実行するように要求することは、私には少し多すぎます。私はそれを経験しましたが、顧客に経験させたくないというのは少し苦痛です。また、サードパーティのドングルを使用することによる余分なオーバーヘッド コストを回避しようとしています。
- また、ユーザーが新しいコンピューターを購入すると何が起こるので、ユーザーにある種のライセンス ファイルを送信するのではなく、認証を確認するためにリモート サーバーに接続することに傾いています。新しいコンピューターで動作する代替ライセンス ファイルを送信する必要がありますが、古いコンピューターでも引き続き使用できます。プログラムなどを実行するように依頼せずに、古いコンピューターを「認証解除」する方法はありません。
- また、1 つの重要な注意事項として、ソフトウェアに関して、ライセンスを確認するためにソフトウェアがリモート サーバーに接続し、個人情報が送信されないことを EULA でユーザーに明確に伝えます。私は、知らないうちにそのようなことをするソフトウェアをあまり気にしないことを知っています。
とにかく、このような道を進んでいるかもしれない人々のために、いくつかの意見を探しています.
remote-server-dependent-software は、回避が困難なだけでなく、開発者側でライセンスを管理するのが非常に簡単なため、最も効果的なコピー防止メカニズムの 1 つになるようです。