ProtectKit3.5 主な特長
■パスワード発行型プロテクトのVB.NET/C#.NET(.NET Framework 2.0以降)への対応
VB.NET/C#.NETでパスワード発行型プロテクト
(32ビットアプリケーションおよび64ビットアプリケーション)を利用できます。
■パスワード発行型プロテクトの64ビットOSへの対応
64ビットOSでパスワード発行型プロテクト
(32ビットアプリケーションおよび64ビットアプリケーション)を利用できます。
■64ビットアプリケーションへの対応
64ビットアプリケーションに対してプロテクトを施すことができます。
■デジタル署名への対応
ProtectKit3.5 を使用して作成したプロテクトアプリケーションに対してデジタル署名を付加できます。
■ハードウェア不要
ProtectKit3.5 はプロテクトのための特別なハードウェアを必要としません。エンドユーザのPCの種類(デスクトップ、ノート、…)を問わず同一の方法でプロテクトを構築できます。
■プロテクトのランニングコスト不要
ProtectKit3.5 はランタイムライセンスがフリーです。ProtectKit3.5 を利用したアプリケーションは、何本配布・販売してもプロテクトのためのランニングコストはかかりません。
■売上向上に直接効果発揮
ProtectKit3.5 を利用したアプリケーションは不正コピー使用ができないため、エンドユーザはPC毎に製品、またはライセンスを購入しなければなりません。アプリケーションの売上増に貢献します。
■アプリケーション配布メディア・形態は自由
ProtectKit3.5 を利用したアプリケーションの出荷・配布方法(DVD/CD、フロッピーディスク、E-Mailでの配信、インターネット上でのダウンロードなど)に制限はありません。アプリケーション開発時にプロテクト機能を埋め込むため、アプリケーション実行時に機能するように設計されています。
■ユーザプロファイルに依存しないパスワード
エンドユーザは、ユーザプロファイルに関わらず同一PC上では単一パスワードを利用でき、アプリケーションベンダはパスワードの複数発行が必要ありません。たとえば、エンドユーザが、Administrators権限でアプリケーションを実行してパスワード入力が完了したアプリケーションなら、Users権限のユーザでログオンしてもプロテクトに反応することなくそのまま実行することができます。
■ネットワーク上での不正同時使用を検出
エンドユーザがアプリケーションをLAN上で同時に不正使用した場合、ProtectKit3.5はそれを自動検出することができます。たとえば検出後、その不正使用したPCからはそのアプリケーションを使用できないように設定することもできます。また、この機能だけを利用する場合はエンドユーザへのパスワード発行が不要になります。
■アプリケーションのリース・レンタル販売可能
エンドユーザに発行するパスワードには有効期限を設定することができます。それを利用することでアプリケーションのリースやレンタルでの販売が可能となります。
■PC固有のハードウェア情報も利用可能
アプリケーションが動作するPC固有のハードウェア情報(CPU、マザーボード、ビデオカード、ネットワークカード)をプロテクトの条件として利用することができます。この機能を利用するとたとえば、エンドユーザがOSの再セットアップでハードディスクの初期化を行った場合でも以前 と変わらないパスワードが使用でき、アプリケーションベンダはエンドユーザに対してパスワードの再発行が不要になります。
■3種類のパスワード発行機能を提供
プロテクトのエンジン部分とは別に、エンドユーザへのパスワードを発行する機能としては、実行型EXEプログラムのほか、レジストリ登録型でUIのないOCX、レジストリ登録不要のDLLを用意しました。たとえば、OCXを利用するとIISとASPを使ったWebアプリケーションでエンドユーザへパ スワードを通知することも可能になります。OCXやDLLを利用することでアプリケーションベンダサイドでユーザ管理などの内部管理システムとパスワードなどを連動させることができます。
|
|
プロテクトアプリケーションの運用手順例
[ ※ CLR 用のパスワード発行型の場合 ]
STEP-1
(プログラムへのコード記述)
[プロテクト部分のサンプルコード例(Visual Basic)]
■初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
passwordProtect1.DllFileName = "ProFuncNET32.dll"
Dim ret As Integer = passwordProtect1.Initialize("VB_Sample1.exe", "ProInfo32.dll")
If (ret <> 0) Then
Select Case (ret)
Case -1 : MessageBox.Show("使用できません。")
Case 1 : MessageBox.Show("サービスが動作していません。")
Case 2 : MessageBox.Show("情報保持ファイルの読み込みエラーです。")
Case 3 : MessageBox.Show("ロックワードが不正です。")
Case 4 : MessageBox.Show("ローカルディスクで実行してください。")
Case 5 : MessageBox.Show("エラーです。")
End Select
Me.Close()
End If
Dim s As String = passwordProtect1.GetLockword()
Dim ChkLockword() As String = "AbcdefgH"
If (s <> ChkLockword) Then
MessageBox.Show("ロックワードが不正です。")
Me.Close()
End If
label1.Text = "OK"
End Sub
■アプリケーションが動作するPC情報の取得
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
textBox1.Text = passwordProtect1.QueryPcID()
End Sub
■パスワードの設定
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
passwordProtect1.SetPassword(textBox2.Text)
End Sub
■プロテクトのチェック
Private Sub button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button3.Click
Dim ret As Integer = passwordProtect1.QueryProtect()
Select Case ret
Case -1 : label4.Text = "使用不可"
Case 0 : label4.Text = "プロテクトなし"
Case 1 : label4.Text = "プロテクト中"
Case 2 : label4.Text = "使用回数オーバー"
Case 3 : label4.Text = "使用日数オーバー"
Case 4 : label4.Text = "使用月数オーバー"
Case 5 : label4.Text = "使用期限オーバー"
Case 6 : label4.Text = "日付を戻した"
Case 7 : label4.Text = "PCが違う"
Case 8 : label4.Text = "プロテクト情報保持ファイルが正しくない"
Case 9 : label4.Text = "ロックワードが正しくない"
Case 10 : label4.Text = "パスワードが正しくない"
Case 11 : label4.Text = "その他"
Case 12 : label4.Text = "不正に未使用のプロテクト情報保持ファイルを使用した"
End Select
'他の処理
End Sub
STEP-2
(プロテクト条件の設定)
[プロテクト設定情報ツール(パスワード発行型)の利用]
プロテクト情報保持ファイルとアプリケーションに埋め込むファイルにプロテクト情報を設定します。
STEP-3
(アプリケーションに埋め込むファイルをアプリケーションに設定)
[プロテクト設定情報ツール(パスワード発行型)の利用]
STEP-2で作成したアプリケーションに埋め込むファイルを PasswordProtect クラスの Stream プロパティに設定します。
設定方法:
ここでは2種類の方法について説明します。
1.アプリケーションのプロジェクトを開き、PasswordProtect クラスを選択し、プロパティウィンドウの Stream の右のボタン(下の図の赤枠)を押して埋め込むファイルを開きます。
2.アプリケーションのプロジェクトを開き、埋め込むファイルをプロジェクトに追加し、ビルドアクションを"埋め込まれたリソース"とします。
2の場合、埋め込むファイルをそのまま追加するよりは、別のファイルの一部として取り込み、実行時にその情報を取得する方がよいでしょう。取得した情報は Stream プロパティに設定してください。
設定が完了したら、アプリケーションをビルドします。
STEP-2とSTEP-3の作業をSTEP-1の前に行うことにより、開発を行いながらデバッグすることができます。
STEP-4
(難読化)
作成したアプリケーションファイルに難読化を施します。難読化が不要な場合はSTEP-5へ。
難読化を行わない場合、プロテクトのチェック部分などのプログラムコードが解析ツールにより明らかになる可能性がありますので、アプリケーションの難読化を行うことをお勧めいたします。難読化を行う際には文字列およびリソースについても暗号化処理を行ってください。
STEP-5
(デジタル署名の添付)
作成したアプリケーションファイルにデジタル署名を添付します。デジタル署名が不要な場合はSTEP-6へ。
STEP-6
(アプリケーションの配布)
開発環境付属(または市販)のインストーラを利用し完成したアプリケーションと関連ファイルを配布します。
STEP-7
(パスワードの取得と通知)
[パスワード発行機能の利用]
■パスワード発行ツールの利用
STEP-2で設定したロックワードとエンドユーザからのPCIDを使いエンドユーザに発行するパスワードを取得します。取得したパスワードをエンドユーザへ通知します。
■パスワード発行OCX、DLLの利用
「パスワード発行ツール」と同等な機能を有するOCX、DLLを提供。これらをAPI関数として利用することでパスワードをプログラム上で取得でき、ユーザ管理などの社内システムとの連動も可能になります。また、OCXはIISとASPを使ったWebアプリケーションからの呼び出しもサポートして います。さらに「パスワード発行ツール」には無いE-Mail送信機能もAPI関数として用意してあります。たとえばアプリケーションベンダがエンドユーザへのパスワードをE-Mailで自動送信するシステムを作成する場合に利用できます。
●ASPコード例(VBScript)
Set objCOM = Server.CreateObject("Pr3PassGen.PassGen")
objCOM.LockWord = varLockword
objCOM.PCID = varPCID
objCOM.PasswordType = varType
varUnlockword = objCOM.PS3GetPassword
Set objCOM = nothing
●E-Mail送信機能API関数利用コード例(Visual Basic)
ret = PS3SendMail("msv.newtone.co.jp", "info@newtone.co.jp", _
"NEWTONE", "paul@company.com", "Users", _
"PassWord Information", "パスワードをご連絡いたします…")
|
|
プロテクトアプリケーションの運用手順例
[ ※ネイティブ用のパスワード発行型の場合 ]
STEP-1
(プログラムへのコード記述)
[プロテクト部分のサンプルコード例(Visual Basic)]
■初期化処理
Private Sub Form_Load()
Dim LockWord As String * 9
Dim ChkLockword As String
Dim LockwordLen As Long
…
ret = PK3Initialize("Project1.exe", "ProInfo.dll")
If ret <> 0 Then
If ret = 1 Then Msg= "ProtectKitが作動していません"
If ret = 2 Then Msg= "プロテクトファイル読込エラー"
If ret = 3 Then Msg= "ロックワードが不正です"
…
End
End If
LockwordLen = PK3GetLockword(LockWord)
ChkLockword = "Ab" & "cd" & "ef" &
"gH"
If LockwordLen <> 8 Or ChkLockword <> Left(Lockword, LockwordLen) Then
End
End If
End Sub
■アプリケーションが動作するPC情報の取得
Private Sub Command1_Click()
Dim str As String * 65
Dim strLen As Long
…
ret = PK3QueryPcID(str, strLen)
Text2.Text = str
…
End Sub
■パスワードの設定
Private Sub Command2_Click()
ret = PK3SetPassword(Text1.Text)
End Sub
■プロテクトのチェック
Private Sub Command3_Click()
ret = PK3QueryProtect()
If ret = 0 Then Msg = "プロテクトなし"
If ret = 1 Then Msg = "プロテクト中"
If ret = 2 Then Msg = "使用回数オーバー"
…
End Sub
STEP-2
(プロテクト条件の設定)
[プロテクト情報設定ツールの利用]
STEP-3
(デジタル署名の添付)
作成したアプリケーションファイルにデジタル署名を添付します。デジタル署名が不要な場合はSTEP-4へ。
STEP-4
(アプリケーションの配布)
開発環境付属(または市販)のインストーラを利用し完成したアプリケーションと関連ファイルを配布します。
STEP-5
(パスワードの取得と通知)
[パスワード発行機能の利用]
■パスワード発行ツールの利用
STEP-2で設定したロックワードとエンドユーザからのPCIDを使いエンドユーザに発行するパスワードを取得します。取得したパスワードをエンドユーザへ通知します。
■パスワード発行OCX、DLLの利用
「パスワード発行ツール」と同等な機能を有するOCX、DLLを提供。これらをAPI関数として利用することでパスワードをプログラム上で取得でき、ユーザ管理などの社内システムとの連動も可能になります。また、OCXはIISとASPを使ったWebアプリケーションからの呼び出しもサポートして います。さらに「パスワード発行ツール」には無いE-Mail送信機能もAPI関数として用意してあります。たとえばアプリケーションベンダがエンドユーザへのパスワードをE-Mailで自動送信するシステムを作成する場合に利用できます。
●ASPコード例(VBScript)
Set objCOM = Server.CreateObject("Pr3PassGen.PassGen")
objCOM.LockWord = varLockword
objCOM.PCID = varPCID
objCOM.PasswordType = varType
varUnlockword = objCOM.PS3GetPassword
Set objCOM = nothing
●E-Mail送信機能API関数利用コード例(Visual Basic)
ret = PS3SendMail("msv.newtone.co.jp", "info@newtone.co.jp", _
"NEWTONE", "paul@company.com", "Users", _
"PassWord Information", "パスワードをご連絡いたします…")
|
|
■プロテクト方法の種類( CLR 用/ネイティブ用 共通)
パスワード発行型でのプロテクトの方法は次の通りです。
(「プロテクト方法」は「プロテクト条件」に含まれます。)
プロテクト方法
|
アプリケーションの動作
|
1.標準プロテクト
|
パスワード発行を受けない限り使用できない
|
2.使用回数プロテクト
|
設定回数分の起動が可能
|
3.使用日数プロテクト
|
設定日数分の使用が可能
|
4.使用月数プロテクト
|
設定月数分の使用が可能
|
5.使用期限プロテクト
|
設定期限までの使用が可能
|
6.パスワード有効期限設定時
|
上記2〜4と併用することで有効期限後は別のパスワードが必要になる
|
|
|
プロテクトアプリケーションの運用手順例
[ ※ネットワーク型の場合 ]
ProtectKit3.5 は、ネットワーク(LAN)上で動作している同一アプリケーションの使用状況を検出します。アプリケーションベンダは不正使用を検出した場合のふるまいをコードで予め記述することができます。たとえば検出後、その不正使用したPCからは、たとえネットワークカードを はずしても、そのアプリケーションを使用できないように設定することもできます。また不正使用の検出には、アプリケーションのシリアル番号などによるチェックの他に、アプリケーションが動作しているPCの台数を取得することもできます。そうすることで、同時使用ライセンス数による配布契約形態を実現することもできます。
STEP-1
(プログラムへのコード記述)
[プロテクト部分のサンプルコード例(Visual Basic)]
■初期化処理
Private Sub Form_Load()
Dim GetNetword As String * 65
Dim Netword As String
Dim ChkNetword As String
Dim NetwordLen As Long
Dim net As PROTECTKIT3NET
Dim ret As Integer
net.szAppID = "12345678.VB6" & Chr$(0) '
アプリケーション固有のIDを設定
net.szMessage = Text1.Text & Chr$(0) ' 送信メッセージ
net.lSendTime = Val(Text3.Text) ' インターバルタイマ(秒単位)
net.hWndHandle = Me.hWnd ' ウィンドウハンドル
…
ret = PK3NETInitialize(net, "Project1.exe", GetNetword, NetwordLen)
ChkNetword = "A" & "b" & "c" & "d"
& "e" & "f" & "g" & "H"
If NetwordLen > 0 Then
'Chr$(0)が最後に付加されるため、取り除く
Netword = Left$(GetNetword, NetwordLen)
End If
If ret = False Or ChkNetword <> Netword Then
MsgBox "ネットワードが不正です。"
Exit Sub
End If
ret = PK3NETStartNet
End Sub
■終了処理
Private Sub Form_Unload(Cancel As Integer)
PK3NETStopNet
End Sub
■他PCのアプリケーション実行監視イベント
Private Sub Form_Resize()
Dim ret As Long
Dim msg As PROTECTKIT3NET_MSG
…
' 通知メッセージ
ret = PK3NETGetMessage(msg)
If ret <> False Then
Text2.Text = Left(msg.szMessage, msg.lMessageLen) '
通知メッセージの取得
Text4.Text = Left(msg.szPcName, msg.lPcNameLen)
Text5.Text = Left(msg.szMacAdr, msg.lMacAdrLen)
Beep
End If
End Sub
STEP-2
(ネットワードの設定)
[プロテクト設定情報ツール(ネットワーク型)の利用]
作成したアプリケーションファイルにネットワードを設定します。
STEP-3
(デジタル署名の添付)
作成したアプリケーションファイルにデジタル署名を添付します。デジタル署名が不要な場合はSTEP-4へ。
STEP-4
(アプリケーションの配布)
開発環境付属(または市販)のインストーラを利用し完成したアプリケーションと関連ファイルを配布します。エンドユーザへのパスワードの発行・通知は必要ありません。
|
|
■ランタイムライセンスフリー
ProtectKit3.5 を使用してお客様が作成したアプリケーションは、ユーザ登録カードを返送いただくことで、無償で配布できます。但し、本製品を使用して「再利用可能なコンポーネント(ActiveXコントロール、DLL、VCLコンポーネントなど)」として作成したソフトウェアの配布には配布数分の「開発ライセンス」が必要になります。
■開発ライセンスパック
通常パッケージは1PC開発ライセンスです(1台のコンピュータで開発およびパスワードの発行ができます)。お客様がProtectKit3.5を使用して複数のコンピュータで開発される(またはパスワードの発行を行う)場合のお得な「開発ライセンスパック」をご用意しております。詳しくは、こちらをご覧ください。
■以前のProtectKitとの互換性
[ ProtectKit ]
ProtectKit を使用していたアプリケーションのプログラムを ProtectKit3.5 の新しい DLL の API 関数に自動的に置き換えることはできません。相違点を考慮した上で手動で作業をすることになります。但し、ProtectKit との共存は可能です。たとえば、ProtectKit3.5の新しい機能であるネット ワーク型プロテクトを既存のアプリケーションに付加することも可能です。
[ ProtectKit2/ProtectKit2.5 ]
パスワード発行型プロテクト:
ProtectKit2/2.5 で運用されているアプリケーション(パスワードが既に発行されている)については、プロテクト情報設定ツールの「パスワードの構成 - ProtectKit2.xのパスワードとの互換性」を有効にすることにより移行できます。
(ただし、乱数情報を有効にしている場合は除く)。
ネットワーク型プロテクト:
関数名や構造体名が変更されているため、アプリケーションを再構築する必要がありますが、関連するファイルを差し替えてお使いいただけます。
■対応OS
日本語 Microsoft Windows 11 / 10 / 8.1 / 8 / 7 / Vista / XP
/ Server 2016 / Server 2012 R2 / Server 2012 / Server 2008 R2 / Server 2008 / Server 2003
■対応コンテナ
[ネイティブアプリケーション用(パスワード発行型プロテクト/ネットワーク型プロテクト)]
Visual Basic 6.0、Visual C++ 2017 / 2015 / 2013 / 2012 / 2010 / 2008 / 2005 / 2003 / 6.0、
Embarcadero RAD Studio XE7(C++Builder XE7/Delphi XE7)、
Embarcadero RAD Studio XE6(C++Builder XE6/Delphi XE6)、
Embarcadero RAD Studio XE5(C++Builder XE5/Delphi XE5)、
Embarcadero RAD Studio XE4(C++Builder XE4/Delphi XE4)、
Embarcadero RAD Studio XE3(C++Builder XE3/Delphi XE3)、
Embarcadero RAD Studio XE2(C++Builder XE2/Delphi XE2)、
Embarcadero RAD Studio XE(C++Builder XE/Delphi XE)、
Embarcadero RAD Studio 2010(C++Builder 2010/Delphi 2010)、
CodeGear RAD Studio 2009(C++Builder 2009/Delphi 2009 for Win32)、
CodeGear RAD Studio 2007(C++Builder 2007 / Delphi 2007 for Win32)、
Borland Developer Studio 2006(C++Builder / Delphi for Win32)、
Delphi 2005(Win32) / 7 / 6 / 5、C++Builder 6 / 5
[CLRアプリケーション用(パスワード発行型プロテクト)]
Visual Studio 2019 / 2017 / 2015 / 2013 / 2012 / 2010 / 2008 /2005
■パッケージ内容
セットアップディスク / ユーザ登録カードなど
(マニュアルなどのドキュメントはディスクに含まれます)
▼パッケージイメージ
|
|
|
サイズ:W136×D15×H191mm(DVD/CD 用トールケース)
|
|
*パスワード発行型プロテクトにおいて、複数の物理的なCPU及び複数のビデオカードや4枚以上のネットワークカードを搭載したPCでは正しく動作しない場合があります。
|
|
開発元:株式会社ニュートン
販売元:株式会社ニュートン
|
|
|
※ProtectKit は、株式会社ニュートンの登録商標です。
※表記中の社名、製品名などは一般に各社の商標または、登録商標です。
※本仕様、及び価格などは予告なしに変更する場合があります。
|