10

コピーとリバースエンジニアリングが十分に困難になるように、ドングルで保護したいソフトウェアピース(CとPythonを使用)を開発しました。私のドングルデバイスには、これらを提供するAPIが付属しています。

  • ドングルの存在を確認する
  • 適切なドングルを確認してください
  • ドングルのメモリ位置に書き込みます
  • ドングルなどのメモリ位置から読み取ります(残りはそれほど良くないと思います。)

クラックしにくくするためにソースコードでできること。ドングルプロバイダーは、ループ内またはイベント後に適切なドングルの存在を確認するか、ドングルメモリを効率的に使用する必要があることを提案しました。しかし、どのように?クラッカーがどのように割れるのかわかりません。少し光を当ててください。前もって感謝します。

PS:難読化を提案しないでください。私はすでにそれをしました。

4

8 に答える 8

11

まず第一に、ドングルはほんの少しの障害を提供するだけであることを理解してください。自分が何をしているのかを知っている人は、ドングルへの呼び出しを削除し、呼び出された結果に対して「true」を入力します。誰もがあなたにこれを言うでしょう。ただし、追加できる障害があります。

私はあなたのコードの重要な部分、知るのが難しいか難しいもの、ドメイン知識を必要とするものを見つけるでしょう。次に、その知識を鍵に入れます。この一例は、シェーダールーチンです。シェーダールーチンは、特定の効果を実現するためにグラフィックカードに送信されるテキストファイルです。非常に単純な明るさ/コントラストフィルターの実装には500文字未満で済み、ほとんどのドングルのユーザースペースに保存できます。次に、その情報をキーに配置し、画像を表示するためにキーからの情報のみを使用します。そうすれば、誰かがドングルを単に取り除こうとすると、プログラム内のすべての画像が黒く塗りつぶされます。誰かがあなたのプログラムのコピーを持っていて、キーからテキストファイルを取得し、次にそのテキストファイルを含むようにプログラムを変更する必要があります。そして、その特定のファイルが画像を表示するための「正しい」方法になることを知っています。実装の詳細は、デプロイメントプラットフォームによって異なります。たとえば、WPFでプログラムを実行している場合は、DirectXルーチンをキーに保存し、そのルーチンをキーから読み込んで、アプリ内のすべての画像に効果を適用できる場合があります。次に、クラッカーはそのDirectXルーチンをインターセプトし、適切に適用できる必要があります。

もう1つの可能性は、キーの乱数生成ルーチンを使用してUIDを開発することです。誰かがドングル機能を削除するとすぐに、生成されたすべてのUIDがゼロになります。

ただし、最善の方法は、ドメイン固有の関数をドングルに配置することです(UID生成ルーチン全体など)。この点に関しては、メーカーが異なれば機能も異なります。

これらの賢さはあなたにどれだけの障害をもたらしますか?現実的には、それはあなたのプログラムの人気に依存します。あなたのプログラムの人気が高いほど、誰かがそれをクラックしたいと思う可能性が高くなり、そうすることに時間を費やすでしょう。そのシナリオでは、ドングルコーディングが特に得意な場合は、数日かかる場合があります。プログラムがそれほど人気が​​ない場合(たとえば、数百人の顧客のみ)、ドングルが存在するだけで、巧妙なことを何もしなくても十分に抑止できます。

于 2009-08-25T16:46:59.587 に答える
6

クラッカーは、アプリとドングルの間のトラフィックをスニッフィングし、ドングルの存在をテストするコードを無効にするか、ドングルをエミュレートするコードを作成する(記録されたトラフィックを再生するなど)か、どちらか簡単に見える方をクラックします。

テストコードの難読化、およびさまざまな方法でテストを実行する多くの散在するコード、およびテストの効果(機能の無効化/劣化、警告の表示など)をテスト自体から分離することにより、前者が作成されます。方法は難しい。

ドングルの内容を、実行ごとに作成された、または実行間で保存されたランダムなナンスに基づいてテストごとに変更すると、トラフィックの単純な記録と再生が機能しなくなり、後者の方法が難しくなります。

ただし、説明したシステムでは、ドングルをエミュレートするのは簡単なので、遅かれ早かれ誰かがそれを実行します。

ドングル内でコードを実行する機能がある場合は、アプリケーションにとって重要な機能を実行するコードをドングル内に移動できます。つまり、クラッカーはコードを再作成するか、ドングルの物理的セキュリティを破る必要があります。これは、はるかに高価な提案ですが、まだ実現可能です。完全なセキュリティなどは存在しないことを認識してください)。

于 2009-08-25T16:50:30.437 に答える
4

単純なドングルで保護を最大化する方法は?

結果のファイル形式にエンベロープが存在する場合は、APIをEnveloperと一緒に使用します。これは非常に基本的なルールです。私たちのエンベロープは、一般的な初心者のハッカーがプログラムのハッキングをあきらめるのを防ぐために、いくつかのデバッグ防止および難読化の方法をすでに備えているためです。ハッカーが他のプログラムでエンベロープ保護を破ることができると、あなたの保護も破ることができるため、エンベロープのみを使用することもお勧めしません。

アプリケーションの多くの場所でドングルAPIを呼び出します。たとえば、最初に起動したとき、ファイルを開いたとき、ダイアログボックスが開いたとき、および情報を処理する前です。また、何も行われていない場合でも、ランダムチェックを行うこともできます。

プログラムを保護するために複数の関数を使用してください。詰まったドングルを探すために検索機能を使用するだけではありません。

複数のdll/ライブラリ(該当する場合)を使用して、ドングル関数を呼び出します。1つのdllがハッキングされた場合でも、別のdllの機能を使用するソフトウェアの他の部分があります。たとえば、sdx.dllをprint.dll、open.dll、およびその他の名前にコピーしてから、各dllからの関数呼び出しを異なる名前で定義します。

dllファイルを使用してドングル関数を呼び出す場合は、実行可能ファイルと一緒にバインドします。これを実行できるプログラムはかなりあります。たとえば、PEBundle。3

PRLOGに関するこの記事を入手しましたが、単純なドングルで保護を最大化するのに非常に役立つことがわかりました。多分このリンクはあなたを助けるかもしれません

ソフトウェアのシンプルなドングルで保護を最大化

于 2010-02-17T02:23:57.400 に答える
0

コピー防止のためにDinkeyドングルを使用することを検討することをお勧めします。

これは非常に安全なシステムのようであり、ドキュメントには、システムを使用して全体的なセキュリティを向上させるためのヒントが記載されています。

http://www.microcosm.co.uk/dongles.php

于 2010-06-25T10:53:11.113 に答える
0

皮肉なことに、あなたが思いとどまらせたいのは、ユーザーによる著作権侵害ではなく、ベンダーによる盗難です。インターネットは、ベンダーがあなたのソフトウェアを自由に盗んで転売できるような無法な場所になっています。法的手段がある場合もあれば、そうでない場合もあります。

前に述べたように、絶対確実なものはありません。また、セキュリティが複雑になるほど、正当なユーザーに頭痛や問題を引き起こす可能性が高くなります。

最も安全なアプリケーションは、常にサーバーに最も近いアプリケーションです。悲しいことに、ユーザーはそれがスパイウェアであることを心配します。

ドングルにさまざまな呼び出しを行う場合、クラッカーはドングルをエミュレートするか、単一障害点を見つける可能性があります(1バイトまたは2バイトを変更するのは非常に一般的であり、すべての呼び出しは役に立ちません)。それは勝てない状況です。

PECompactの作成者として、私は常に顧客に、ソフトウェアを保護するために何にも頼ることはできないと言います。専用のクラッカーがそれを追いかけると、クラックされる可能性があります。あなたがそれを難し​​くするほど、それは彼らにとってより多くの挑戦(楽しみ)になります。

私はこれらの事実を知って、個人的にソフトウェアに最小限の保護技術を使用しています。

于 2010-09-26T16:54:57.110 に答える
0

アプリケーションに多くのチェックポイントを実装できます。 HASP

を使用しているかどうかはわかりませんが、残念ながらドングルをエミュレートできます

于 2009-08-25T16:52:00.077 に答える
0

スマートカードを使用し、カードに保存されているシークレット機能を使用して作業ファイルを暗号化/復号化します。その後、ソフトウェアが海賊版になる可能性がありますが、適切に暗号化された作業ファイルを開くことはできません。

于 2010-11-06T03:48:19.290 に答える
-1

誰かがあなたのソフトウェア保護を破りたいのなら、彼らはそうするでしょう。あなたが「十分に難しい」と言うとき-「十分」はどのように解釈されるべきですか?

ドングルを使用すると、平均的なユーザーがソフトウェアをコピーできなくなる可能性があります。その意味では、ドングルはすでに「十分」です。しかし、必要性を感じ、ドングルを回避できる人なら誰でも、あなたが設計した他のスキームを乗り越えることができるでしょう。

于 2009-08-25T16:45:05.067 に答える