0

私は自分のプロセスを C++ で書いています。
今度はその GUI を書きたいと思います。
これを行うためにJavaを使用してJNIを使​​用してリンクすることを考えていましたが、セキュリティ上の問題を考えていました...
Javaで書かれたGUI.exeファイルがあり、Engine.dllファイルも書かれているとしますc ++で。
邪悪な人々が私の DLL を取得してプログラムにリンクするのを防ぐにはどうすればよいでしょうか?
私は自分の C++ dll でライセンス検証機能を使用していますが、これらの邪悪な人々によって破られる可能性があります。
すべてのプログラムがクラックされる可能性があることはわかっていますが、簡単に使用できるようにエンジンを提供したくありません。

このリンクを保護する方法はありますか?
または、GUI の作成にも C++ を使用する必要がありますか?

4

2 に答える 2

0

最も移植性の高いソリューションは、おそらく適切と思われる方法でDLLに出入りするデータを暗号化することです。その時点では、C++側の難読化は必要ありません。これには、暗号化キーをC++バイナリとJavaのコンパイル先の両方に埋め込む必要があります。たとえば、ランダムなジャンクの大きなスラブで非表示にし、インデックスを作成することで、これを見つけるのに不便にするための追加の手順を実行できます。

もう1つの方法は、ubercool.dllによって呼び出し時またはリンク時にチェックされるライセンスシステムの料金を支払うことです。

最終的に、あなたは運命の防御行動のビットを実行しようとしています。あなたのubercool関数が本当に価値があるか有用であり、誰かがあなたが望まない方法でそれを使いたいと思っているなら、彼らはその方法を理解するでしょう。クラックされていない商用ソフトウェアを誰かが思いつくことができますか?

最後に、エンドユーザーがいじるのは非現実的なシステムでソフトウェアを実行できます。ロックされたブートローダー、TPMモジュールなどを備えたモバイルデバイスは、これを行う1つの方法です。もう1つは、ubercoolをホストされたサービスとして実行し、もちろん制御できる適切な資格情報を持っている場合に接続できるようにすることです。

于 2012-06-15T09:58:03.853 に答える
-1

dll を使用する Java または C# コードに難読化ツールを使用することを検討してください。これですべての問題が解決するわけではありませんが、プログラムのリバース エンジニアリングがより困難になります。

また、プロジェクトが C++ で記述されている場合は、アプリケーションの GUI 部分に C++\CLI を使用することを検討してください。

于 2012-06-13T15:33:55.543 に答える