問題タブ [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.
macos - Mac App Store-コピー防止かどうか、または何?
Mac開発者プログラムの使用許諾契約書には、Macアプリに独自のコピー防止プロセスを実装しないことが明示的に記載されています。
それでも、開発者向けドキュメントでは、Appleは次のようにも述べています。
アプリケーションにレシート検証コードを追加して、アプリケーションの不正コピーが実行されないようにすることができます。
私はここで混乱しています。Mac App Storeは、Macアプリに何らかの形の組み込みのコピー防止機能を提供していますか?Appleからの上記の声明は、そうではないことを示しているように思われます。
この声明は、これらのレシートチェックを実装しない場合、自分のMacアプリの不正なコピーが他のMacで実行される可能性があることを示唆しています。
コピー防止を実装する(または既存の状態を維持する)ことは許可されていませんが、Appleが提供するさまざまなコードの断片と疑似コードを使用して、最も基本的なレベルの保護を提供するために、手動で領収書を確認することが期待されています。この解釈は正しいですか?
これはAppleからの誤解ですか、それともこれは本当に物事が行われる方法ですか?
参照:http ://developer.apple.com/devcenter/mac/documents/validating.html
ありがとう。
(私はコピー防止の哲学やAppleのアプローチのメリットについて議論した後ではないことに注意してください。むしろ、私はMacアプリをApp Storeに載せるための技術的要件に興味があります。)
c# - 厳密な名前でアセンブリに署名することはできますが、サードパーティの DLL が署名されていない場合はどうなりますか?
署名アセンブリの背後にある基本的な考え方は理解していますが、Telerik またはサード パーティの DLL を使用するときに問題があります。2 つの独自の .DLL を使用する .exe があります。これらの DLL は、エンタープライズ ライブラリ DLL と Telerik DLL を使用します。
私はすべてのプロジェクトに厳密な名前 .snk を付けましたが、コンパイラをコンパイルすると、エンタープライズ ライブラリ DLL などは署名されていないと説明されます。これは理にかなっています。
te sn.exe -Vr コマンドで検証を無効にしたり、プロジェクトの署名を遅らせたりしたくありません。しかし、これはどのように機能するのでしょうか?洞察力に感謝します。
c# - 現在のコピー保護されたアセンブリに対してライセンス ファイルが作成されているかどうかを確認します
こんにちは、Microsoft の LicenseProvider モデルと公開/秘密キーのペアを使用してコピー保護メカニズムを実装し、ある PC から別の PC にプログラムがコピーされるのを防ぎました。とてもシンプルです。起動時に、コンピュータ、有効期限、およびこのライセンス ファイルの対象となるアセンブリ名に関する暗号化された情報を使用して、ライセンス ファイルを作成する必要があります。しかし、誰かがライセンス ファイルの名前を MyProgramA.exe.lic から MyProgramB.exe.lic に変更したらどうなるでしょうか。両方のプログラムが同じ方法でコピー保護されている場合、.lic ファイルの名前を変更するだけで、有効な ProgramB ライセンスを取得できます。これが、アセンブリ名を .lic ファイル内に保存した理由です。アセンブリ名は一致する必要があります。
では、誰かが代わりに ProgramB の名前を ProgramA に変更するとどうなるでしょうか? アセンブリ名が一致し、再びライセンスが有効になります。これをより防弾にするためのアイデアはありますか?
繰り返しますが、これは単純な独自のソリューションであるため、難読化は行われず、私が知っているサードパーティのツールも存在しません。
ありがとう!
opengl - OpenGLレンダリングでコピー防止を実装する方法
openglレンダリングのコピー防止を実装したいのですが、ここにいくつかのアイデアがありますが、どれも納得できません。これを行う方法についていくつか提案をお願いします。
ChangeDisplaySettingsEx APIを使用すると、ディスプレイデバイスの構成を変更できます。VIDEOPARAMETERS
コピー防止の詳細を含む構造を使用します。このAPIはWin2Kで導入されました。COPPまたはOPMがアプリケーションウィンドウごとにコピー防止設定を設定するのに対し、出力ごとにコピー防止設定をグローバルに設定します。
COPP APIは、VRM-7またはVMR-9 DirectShowフィルターでのみ使用可能であり、WinXP以降で使用できます。これを使用することは、DirectShowを使用してコンテンツをレンダリングする必要があることを意味します。Directshowなしでアプリを完全にレンダリングし、コピー防止を設定するためにダミーのVRM-9を作成するとどうなりますか?
OPM APIはVistaからのみ利用できますが、ヘッダーファイルはWindows7SDKの一部にすぎません。このAPIはCOPPよりも明らかに優れているようです。特に、アプリケーションがウィンドウのモニターハンドルからコピー防止パラメーターを設定できるため、Direct 3D、DirectShow、またはPMPを使用しなくても使用できるようです。
perl - Perl コードを非表示にするにはどうすればよいですか?
私はいくつかの Perl プログラムを作成し、それらを配布する予定です。これらは、大規模なバイナリ ディストリビューション (ほとんどがコンパイルされた C/C++) の一部です。可能であれば、できるだけあきらめたくないです (私は機能するソフトウェアを提供する責任があり、巧妙なアルゴリズムを提供する責任はありません)。誰かが本当にソースを見たい場合、エディタで単にファイルを開くよりも少し努力しなければならないように、Perl コードを隠すための私の最善の策は何ですか?
security - ウェブサイトのソースコードの企業スパイ
これは最も技術的な質問ではないかもしれませんが、それでも私は興味がありました...
Googleのような巨大企業は、どのようにしてコードが従業員に盗まれるのを防いでいますか?私は間違っているかもしれませんが、検索アルゴリズムのソースコード(とりわけ)は競合他社(つまりMicrosoft)にとって価値があると思います。
私はそれを次のように表現するのが最善だと思います:
特定のプロジェクトのためにGoogleのコードリポジトリにアクセスし、大量のコードをフラッシュドライブにコピーして競合他社に持ち込むことを十分に許可されている悪意のある従業員を妨げているのは何ですか?
android - android コピー防止 フォワードロック - 気にしなくていいの?
Android アプリのコピー防止を放棄する必要がありますか? まもなく廃止されますが、最近、一部のデバイスではこのコピー保護が原因でこれらのアプリが表示されないことに気付きました。一般に、SDK を使用するとこれらの apk を簡単に抽出できるため、知識があれば誰でもこの「セキュリティ」をバイパスできます。
接続なしでアプリにアクセスするユーザーに問題を引き起こす可能性があるため、この新しいセキュリティプロトコルを実装したくありません. 一般的に、それはあまりにも複雑に見えます。この新しいコピー防止機能を使っている人はいますか?
私のアプリはあまりダウンロードされていないので、これはあまり重要ではありません、ありがとう
.net - 各プロダクトキーのシリアル番号を生成し、それらを検証します
ロック解除可能なモジュールが異なるソフトウェアがあります。各モジュールは個別に購入する必要があります。Guid.NewGuid
メソッドを介して各モジュールに一意のキーを割り当てることから始めました。
次に、これらのアップグレードをアクティブ化するためのシリアル番号をユーザーに提供する必要があります。その後、番号を検証する必要があります。
- シリアル番号は特定のプロダクトキーに属しています
- シリアル番号は特定のプロダクトキーに対して有効です。
Guidプロダクトキーに基づいてシリアル番号を生成し、検証のために逆の操作を実行する方法についての提案はありますか?
ありがとう。
protection - ソフトウェア保護
ソフトウェアが無断で使用されるのを防ぎたい。私は、私が使用を許可した関係者に無料で提供します。
許可されていない第三者によってコピーおよび実行されることに対する適切な保護スキームを知っている人はいますか?
これまでのところ、重要な検証メカニズムを導入することを考えていました。定期的に、ユーザーは私 (Web サイトのクエリ) にコードを送信する必要があります。これに基づいて、アプリが検証する新しいコードを生成します。初期コードがあるので、ユーザーを追跡できます...
考え?
後の編集: 焦点の定まらない議論を避けるために、ライセンスの部分を変更しました。
.net - ユーザーデータなしのシリアル番号の生成
これは、この質問のフォローアップです。
受け入れられた答えは一般的に十分ですが、キーを生成するためにユーザーが個人情報(名前など)を提供する必要があります。
プログラムが特定の製品に属するかどうかを検証できるように、共通のシードに基づいて異なるキーを生成できるかどうか疑問に思っていますが、このプロセスをエンドユーザーに明確にする必要はありません。
つまり、製品IDのハッシュとランダムな文字シーケンスの組み合わせである可能性がありますが、これにより、ユーザーは潜在的な新しいキーを推測できます。推測するのが難しいある種のアルゴリズムがあるはずです。