2016-05-16 23 views
0

私は多くのモジュールを持ち、.jarファイルを持っている.netプロジェクトを持っています。また、インストールのために.msiセットアップを作成しました。
このアプリケーションは、実際に当社のIP(社内製品)であり、一定期間クライアント環境にインストールされることがあります。
私たちはサードパーティのライセンス(safenet)を持っているので、誰もその働きを知ることができないように、製品コードを安全にしたいが、問題は彼らが.jarにあるすべてのメソッドの暗号化を提供していないということです約1000の方法を有する)。

デコンパイルからアプリケーションコードを保護する方法はありますか?または、コードを難読化してデコンパイルが機能しないような方法がありますか?
編集:この施設を提供するツール(ライセンスツール)はありますか?

ありがとうございました。intalledファイル(.dll、.jar)の暗号化/難読化

答えて

1

申し訳ありませんが、プログラムの仕組みを非表示にすることはできません。マシンで実行できる場合は、逆コンパイルが可能です。たとえば、Javaで難読化の最も一般的な方法は以下のとおりです。

  • 名前難読化
  • フローの難読化
  • 不透明な述語これらの事のバイトコードレベルなしで

場合は人を停止することができ、それらあなたの製品の仕組みを理解することに専念しています。ネーミングはバイトコードレベルでは無関係であり、フロー難読化は自動ツールでパッチすることができ、不透明な述語に対しても同じことが適用されます。同じことが大部分の.Netフレームワークに当てはまります。

しかし、これらの機能は、平均的なスクリプトの子供たちを守ります。彼らは完璧ではありませんが、価値あるものです。あなたが名前の難読化だけを提供していますが、あなたがProguardをチェックアウトすることができます無料の難読化の代わりをしたい場合。フローおよび不透明な特徴を有する難読化装置は、通常、高価である。

2

私はコピープロテクション会社の仕事をしています。私は自分の仕事に偏っていないように努力します。

はい、保護が可能で、あなたが望むならば、あなたはハッカーのために非常に困難にすることができます。あなたの保護を破ることは不可能でしょうか?いいえ、すべてのコードが壊れる可能性があります。しかし、より良い保護、亀裂が難しいほど、そしてハッカーの数が少ないほどあなたの製品に手を差し伸べるでしょう。

デバッガを停止する方法はいくつかあります。最も簡単なのは、コードが通常の速度で処理されているかどうかをテストし、そうでない場合は、コードをデバッグしてステップで実行するためです。次に、あなたのソフトウェアの逆コンパイルを止めるために、あなたのコードはプログラムをうまく終了させるべきです。

私の同僚は、コピー保護の基本について、この記事を書いた:「デバッグトラップ」のAll About Copy Protection ルックをあなたはそれをすべてを読みたくない場合は:)