さらに収益を上げるには、ソフトウェアのライセンスを取得してください

こんにちは



最初の商用アプリケーションを作成して、不正コピーから保護し、間接的に販売を制御するシステムについて考え始めました。 私自身はプログラマーであり、販売の経験はありません。ソフトウェア配布の段階では、このために特別に訓練された人々を引き付けたかったのです。 これを行うために、ソフトウェア用の特別なライセンスシステムを開発しました。 後で判明したように、作成されてからエラーが発生せずに動作するまで、誰もソフトウェアを宣伝しません。 だから、販売するだけでなく、プログラムすることも学ぶ必要があります。 しかし、ライセンスシステムはそのままです。将来、ソフトウェアの配布においてその役割を果たすことが期待されます。



一般に、ソフトウェア用に開発したライセンスシステムについてお話したいと思います。 突然、いくつかのアイデアは、誰かが自分のアプリケーションのためにより多くのお金を得るのに役立ちます。 このシステムは完全に保護されているとは言えませんが、愚か者に対する非常に優れた保護です。

自分を天使や後援者にしないようにしましょう。 すべてのプログラマーは、プログラムにまともな現金相当物を求めています。



つまり ライセンスシステムを作成する際の目標は次のとおりです。

1.ソフトウェアのインストールの制御、無料および無料ではない

2.ソフトウェアを突然支払わせる機能

3.ソフトウェア機能制御



技術 自分から自分へのタスクは次のように設定されました。

4.ソフトウェアは、アクティベーションキーを受信しないと機能しません。

5.アクティベーションキーをソフトウェア配布に保存してはならず、単純に計算することはできません(計算は可能ですが、簡単ではありません)

6.「パッチ」が適用されている場合、ソフトウェアは起動しません。

7.アクティベーションキーは、ソフトウェアの1つの作業インスタンスのみに関連付けられている必要があります。

8.ソフトウェアの更新後にアクティベーションキーを変更する機能

9.アクティベーションキーを時間で制限する機能

10.アクティベーションキーには、プログラムに関連するモジュールに関する情報が含まれている必要があります。



ライセンスシステムが開発されたソフトウェアが販売プログラムであることを直ちに予約します。 MS SQL DBMSを使用します。 このソフトウェアは、インターネットを介して、無料版として、販売者を通じて金銭的に配布する予定です。 無料版は一部の機能を無効にすることになっており、クライアントが完全版を使用することに決めた場合、購入することができます。

しばらくして、ライセンスシステムの一般的なスキームは次のようになりました。







すべては、ユーザーがソフトウェアを受け取るという事実から始まります。 ソフトウェアは、プログラムWebサイトからダウンロードすることで入手できます。 次に、DBMSサーバーとワークステーションにインストールします。 インストール後、プログラムは起動しませんが、アクティベーションキーを要求します。



一般に、アクティベーションは2つの方法で実行できます。

1.無料のソフトウェアアクティベーション

2.売り手を通じて受け取ったソフトウェアのアクティベーション



ソフトウェアをアクティブにする手順を説明する前に、最初にソフトウェアを準備する方法について簡単に説明します。

配布キットを作成してソフトウェアの配布を開始する前に、コンパイル後に、バイナリファイルとデータベースに変更と追加情報が加えられます。 これは主にソフトウェアバージョンであり、一部のモジュールを実行する権限です。 コードの重要な部分も暗号化されます。 暗号化キーは、リリースを作成したソフトウェアベンダーのみが知っています。











さて、今はアクティベーションそのものです。 アクティブ化メカニズムは次のとおりです。

1.クライアントはソフトウェアを受け取ります

2.ソフトウェアのインストール

3.ソフトウェアの最初の起動

4.プログラムの登録コードを取得する

5.アクティベーションコードの取得

6.プログラムの再起動



ただし、アクティベーションコードを取得するには、まずプログラムの登録コードをソフトウェアプロバイダーに転送する必要があります。 アクティベーションコードは、インターネット上にあるアクティベーションサーバーから取得することも、ソフトウェアベンダーにメールまたは電話で問い合わせて手動で取得することもできます。







アクティベーションコードは、プログラムの登録コードによって作成されます。 このため、アクティベーションコードを取得するための初期データは、登録コードを介して送信されたものです:プログラムリリース、ハードディスクまたはネットワークカード番号、データベースID。

また、アクティベーションコードを作成するには、ソフトウェア暗号化キーが必要です。 インターネットを介してフリーソフトウェアとしてアクティベートされると、暗号化キーはアクティベーションサーバーのメカニズムを介してアクティベーションコードに「接続」されます。

クライアントが販売者を介してアクティベーションコードを受信した場合、販売者はそれをあなた(つまり、ソフトウェアプロバイダー)に要求し、それをクライアントに転送します。 あるアプリケーションでは、売り手からアクティベーションコードを取得するプロセスも自動化されました。 販売者ごとに、ライセンスシステムにアカウントが設定され、ソフトウェアのアクティベーションコードを受け取ることができました。



アクティベーションコードを生成するアプリケーションのインターフェイスは次のとおりです。







機能制限付きでインターネット経由でアクティベーションコードを取得するためのインターフェイス:







受信したアクティベーションコードには、コードの重要なセクションを暗号化するキーが含まれています。 アクティベーションコードがプログラムデータベースに入ると、すぐに機能し始めます。

アイデアは単純なように思えますが、それを実現するために、私が予想したよりも少し複雑であることが判明しました。 特に、おそらく、ライセンスシステムのサーバー側を実装するとき、PHPの拡張機能を作成し、Cプログラミングに「ポンプ」し、一般的にUnixプラットフォームが近いかどうかを知る必要がありました(ライセンスシステムをホストするホスティングにFreeBSDがインストールされています) これは魔法の世界です... Unixの選択は経済的な理由で行われました。 Unixでのホスティングは、Windowsでのホスティングより15倍安価です。 サーバーはコストがかかり、食べることを要求しません。

ライセンスシステムはOpenSSLライブラリを使用しました。 どこにも暗号化はありません。

これはHabrに関する私の最初の投稿です。 このライセンスシステムについてより具体的な技術的な質問がある場合は、喜んでお答えします。

すべてに、より多くの実用的なアプリケーションとより多くのお金があります。

ご清聴ありがとうございました。



All Articles