2016-08-08 20 views
-1

私は、顧客に販売したいExcelアドインで同僚と協力しました。これはクラウドデータベースにリンクされています。ライセンスシステムは現在VBAでコード化されていますが、これは非常に弱く潜在的なハッカーがVBA保護を回避することでライセンスチェックを無効にすることができます(コード保護はそのような問題ではありません)。Excelアドインのライセンス

私たちはライセンスを確認するために.dllファイルを作成することを考えていましたが、この分野の専門知識が不足しています。

あなたには提案がありますか?

+0

VSTOは良いオプションです。しかし、あなたは[これを見たことがありますか(http://stackoverflow.com/questions/13984229/how-can-i-create-product-keys-for-vba-applications-so-that-illegal-distribution/13985132#13985132) –

+0

ありがとうSiddharth、それはよさそうだ。同様のアプローチが現在使用されていますが、あなたよりも控えめです。唯一の欠点は、すべてのコードがVBAにとどまることです。私は同意する、より安全な何かを得るためにVSTOに行くべきである。我々はそれを調べるでしょう。 – Phil

答えて

1

その他のMicrosoftコンポーネントオブジェクトモデル(COM)がライセンスシステムを持っているバック年から.... .NETライセンシングソリューションについて

を投稿することができます。 C++でコードを記述し、クライアントはCOMを使用してコンポーネントをインスタンス化します。 COMライセンスのメカニズムはIClassFactoryの代わりにIClassFactory2を実装することです。ここにリンクがありますhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms680095(v=vs.85).aspx

「あなたのコードはVBAにありますか?」。さて、VBAは安全ではない、ブックは壊れる可能性があります。問題は、ソースが内部に出荷されていることです。

.NETソリューションのコンパイルはより優れていますが、実行可能ファイルは、リバースエンジニアリングしてソースに戻すことができる中間言語(IL)です。 Javaと同じ問題は、「バイトコード」をリバースエンジニアリングすることもできます。

最も堅牢なコードセキュリティについては、C++にコンパイルする必要があります。 C++を使っても、リバースエンジニアリングが可能だと言う人もいます。

究極のパラノイアは、貴重なコードをWebサービスの背後に置くことで、決してユーザーのコンピュータ上には置かれません。

+0

ありがとうS Meaden。私はあなたのことを聞いていますが、この段階ではC++で完全なプロジェクトを書き直すのは実現できません。あなたは正しいですが、プロジェクトをリバースエンジニアリングすることはそれほど難しくありませんが、ライセンス料よりもはるかにコストがかかります。コードは難読化されており、ほとんど読めません。また、お客様は通常、VBAの知識がほとんどなく、ハッキングに専念するのに十分な時間とリソースがない小規模企業です。私たちは、顧客に与えられたサービスと比較して、VBAのセキュリティ問題を比較的手ごろな価格で回避しようとしました。 – Phil

+0

最も弱い点は、マザーボードIDに関連するライセンスがVBAコードでチェックされていることです。私はセキュリティが常に問題になるかもしれないとしても、アドインのライセンスをより強く、より良い方法で見つけることを望んでいました。 – Phil

+0

ハードウェアに縛られても問題ありません。マザーボードIDを偽造するのは難しい。ネットワークインターフェイスコードのMac-Addressも使用していますが、これは明らかにユニークでもあります。 –

関連する問題