最近、OnGuardを正直な人々がその原則に従うのを助ける方法として検討しました。私は、あなたのソフトウェアを使用したいと思っている人からあなたを守るためのライセンスシステムがなく、そのソフトウェアを支払うことを望まないという意見を多く寄せています。一方、私は他の人が自分のプログラムのために有効な鍵を作るのが簡単すぎないようにしたいと思っています。OnGuardでのライセンス
マニュアルと例を学んだ後、私は私のメインフォームのコードに次を追加しました:
const
TheKey: TKey = ($4A,$62,$F3,$2B,$9C,$D2,$84,$BF,$CB,$04,$0A,$C3,$3D,$11,$47,$1A);
function TfrmMain1.MakeCode(sName, sNumber: String; dtExpiration: TDate): String;
var Key: TKey;
Code: TCode;
sCode: String;
begin
Key := TheKey;
InitRegCode(Key, sName + ' - ' + sNumber, dtExpiration, Code);
sCode := BufferToHex(Code, SizeOf(Code));
Insert('-', sCode, 13);
Insert('-', sCode, 09);
Insert('-', sCode, 05);
Result := sCode
end;
function TfrmMain1.TestCode(sName, sNumber, sTestCode: String; dtExpiration: TDate): Boolean;
var Key: TKey;
Code: TCode;
sCode: String;
begin
sCode := MakeCode(sName, sNumber, dtExpiration);
Result := SameText(sCode, sTestCode);
end;
これは、いくつかの質問が表示されます:
は、これを使用する正しい方法のように思えるん?私はむしろ自分のコンポーネントを自分のフォームに追加しないだろう。
OnGuardのソースが利用可能なため、ハッカーがキーをリバースエンジニアリングできなかったため、有効なリリースコードが選択されます。したがって、コードに追加の難読化コードを追加するか、システムを弱体化させるべきでしょうか。
ここではキーが定数として設定されています。連続したバイトとしてコードに表示されず、簡単にコピーできますか?
私のプログラムは(少なくとも)年間更新を必要とし、私の計画は年間購読でライセンスする予定です。私のプログラムで年を定数として追加し、その年にいくつかの場所で日付を記入したユーザーエントリをテストする方が強くなるでしょうか。
ここに4つの質問がありますが、それらは密接に関連しており、非常に具体的です。それは4つの別々のエントリーでそれらを尋ねるのがもっと厄介で、文脈のための参考文献を追加しなければならないように思えましたが、それが望ましいなら私はそれをするのがうれしいでしょう。ご協力ありがとうございました。
ジャック
誠実な人々は、強制がない場合でも依然として原則を守ります。それが正直なのです。 –
使用しているライセンスの数を把握できないため、購入したライセンスより多くのライセンスを使用していることに注意する必要があるのは無能なものです! –