MShareware – C++/Win32でシェアウェアを作る

当サイトではアフィリエイト広告を利用しております。

Windowsソフト

これは何?

MShareware は、C++/Win32 のシェアウェアを楽に作るためのフレームワークです。

そもそもシェアウェアって何?

シェアウェアというのは、試用期間中に利用者がソフトを試しに使って、 気に入ったら購入してもらうという、利用者が購入するまで制限が付いたソフトウェアです。機能制限を解除するパスワードのことを「ライセンス キー」といいます。 ライセンス キーを購入し、ソフト内部で入力することで、制限を解除することができます。

ダウンロード

  • MShareware-1.4.zip 1.98 MB (2,085,171 バイト) – ポータブル版、Windows XP 以降、無料

安心安全のベクターからダウンロードできます。

使い方

  1. 次の 5 つのファイルをプロジェクトフォルダに追加して下さい。
MShareware.cpp
MShareware.h
MShareware.rc
MSha256.cpp
MSha256.h
  1. MShareware.cppMShareware.rcMSha256.cppの3つのファイルをプロジェクトに追加して下さい。CMakeでプロジェクトを管理しているのであれば、ファイルCMakeLists.txtadd_executable にこの3つのファイルを追加して下さい。Visual C++でプロジェクトを管理しているのであれば、プロジェクトに既存の項目としてこの3つのファイルを追加して下さい。
  2. ファイル MShareware.rc の中の"TODO:"項目を修正して下さい。
  3. salt文字列と 8 文字以上のパスワード文字列を思い浮かべて下さい。どちらもなるべく不規則な文字列にして下さい。

salt 文字列は、パスワード以外にハッシュのパターンを変化させる調味料のようなものです。パスワードが少し短くても、salt が充分複雑で長ければ、解析が難しくなります。

5. 付属の MSha256.exe により、salt 文字列に対して、パスワードに対応するハッシュ文字列を取得して下さい。

例えば、salt 文字列が空文字列で、パスワードが "test" ならば、ハッシュ文字列は

"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"

になります。

(MSha256.exeの実行例)
Enter 'exit' to exit.
Enter salt string:
Enter password: test
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
{0x9f, 0x86, 0xd0, 0x81, 0x88, 0x4c, 0x7d, 0x65, 0x9a, 0x2f, 0xea, 0xa0, 0xc5, 0
x5a, 0xd0, 0x15, 0xa3, 0xbf, 0x4f, 0x1b, 0x2b, 0x0b, 0x82, 0x2c, 0xd1, 0x5d, 0x6
c, 0x15, 0xb0, 0xf0, 0x0a, 0x08, }
Enter password: exit

6. #include "MShareware.h"をメインのソースファイルに追加して下さい。

#ifndef NO_SHAREWARE
#include "MShareware.h"
#endif

7. クラス MSharewareg_shareware という名前のグローバル変数の定義を次のように追加して下さい:

#ifndef NO_SHAREWARE
MShareware g_shareware(
    /* application registry path */ TEXT("SOFTWARE\\MyCompany\\MyApp"),
    /* password hash */             "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
    /* trial days */                15,
    /* salt string */               "",
    /* version string */            "");
#endif
  • 第1引数は、アプリが使用するレジストリキーのパスです。MyCompany に英語のあなたの会社名、MyApp に英語のあなたのアプリ名を指定します。
  • 第2引数は、パスワードのハッシュ文字列です。
  • 第3引数は、試用期間の日数です(省略可)。
  • 第4引数は、salt 文字列です(省略可)。
  • 第5引数は、アプリケーションの現在のバージョンを表す文字列です(省略可)。

バージョンは、バージョンアップ時の試用期間の延長に使われます。延長しないときは、常に空文字列を指定して下さい。

8. 次のようなコードをアプリケーションの始まりに追加して下さい。ウィンドウ ハンドル hwnd がなければ NULL でも構いません。

#ifndef NO_SHAREWARE
    if (!g_shareware.Start(hwnd))
    {
        // 失敗。アプリケーションを終了する。
        ...
    }
#endif

9. 機能制限したい機能の実行の直前に次のようなコードを追加して下さい。

#ifndef NO_SHAREWARE
if (!g_shareware.IsRegistered())
{
    g_shareware.ThisCommandRequiresRegistering(hwnd);
    if (!g_shareware.UrgeRegister(hwnd))
    {
        // 機能を実行しない。
        return;
    }
}
#endif

10. ビルドして下さい。あなたのシェアウェアが出来上がります。実際に使ってみて試してみて下さい。

11. 好きなように MShareware.rc を改良して下さい。

12. アプリ内で保護すべきデータ資産を付属の MBlowfish とパスワードなどを使って暗号化・復号して保護して下さい。

注意

  • 最初の起動時には、「ライセンス キーの登録」ダイアログが表示されません(デフォルト)。
  • デバッグ版(Debug)を配布してはいけません。リリース版(Release)を配布して下さい。
  • 配布前に、ちゃんと実機か仮想マシンでテストしましょう。
  • 販売促進のため、幅広い顧客の目を引き付け、購入へ誘導する工夫をしましょう。

連絡先

何かございましたら、片山博文MZ(katahiromz)までご連絡下さい。

  • メール katayama.hirofumi.mz@gmail.com

コメント

タイトルとURLをコピーしました