2017-11-25 20 views
1

私はIntelij IDEAを使用してJavaデスクトップアプリケーションを開発しています。そして私はproguardを使って私のソースコードをobufuscateすることにしました。 Intelij IDEA 2016.1.14でproguardを統合/使用する方法についてお手伝いできますか?proguard in intelij IDEAの使い方は?

+4

MavenまたはGradleプラグインを追加してください。正直言って、Proguardの唯一の利点は、コードを小さくすることです。つまり、未使用のものを削除します。難読化されたJavaコードを逆コンパイルして分析することができます。私はサイズ/スタートアップのパフォーマンスについて[Graal AOT images](http://openjdk.java.net/jeps/295)を見て、難読化については忘れてしまいます。 –

+0

@Yonatan成功しない場合は、検索を続行することをおすすめします。私はjarを逆コンパイルしています。私の分析では、逆コンパイルから何かを使うためにコードを書くのに十分な人がいなければなりません。これはそれ自体で、誰もコード内の何かを実際に利用できるコードを逆コンパイルしない理由です。難読化を実装するのは難しいですが、その10回はリバースエンジニアリングが難しくなります。私は間違っていることを証明するためにこれを読む皆に挑戦します。リンクをここにドロップしてください。 –

答えて

1

私はこれを試したことがありません(私は簡単な方法を最初に見つけたいのですが)、手順に従えばうまくいくはずです。私はこれを試して報告します。

  1. は、このリンクにアクセスして、yGuard

  2. 開梱yGuardアーカイブをダウンロードし、docディレクトリに移動しAnt build file for IntelliJ IDEA

  3. はここに行く作成する方法を学びます。

  4. 「how to」ファイルがあります。それを読んで、ミニコードをリリースする準備ができているはずです。

  5. オプション:ネットを検索してyGuardのヒント&トリックをビルドから最大限に活用してください。

--- WORKING-NOTES ---

[1.0] IntelliJの2017年に、ビルドメニューのAntビルドファイルを生成するオプションがあります。 Build->Generate Ant Build File私のために働く設定は、提供されたプロジェクト名を使用して、すべてがチェックされた単一ビルドファイルです。あなたがステップ1でリンクの5th stepから得た知識と、この答えのステップ4にする必要がどこ

[1.1] View->Tool Windows->Ant Buildこれはあなたを取得する必要があります。

<target depends="artifact.project" name="yguard"> 
<taskdef name="yguard" 
     classname="com.yworks.yguard.YGuardTask" 
     classpath="yguard.jar"/> 
<yguard> 

    <inoutpair in="${temp.jar.path.project.jar}" 
      out="${artifact.output.project}/project-release.jar"/> 

    <shrink 
      logfile="shrinklog.xml"> 
     <keep> 
      <class classes="protected" 
        methods="protected" 
        fields="protected"/> 
     </keep> 
    </shrink> 

</yguard> 

その後、あなたはこのように見えるためにあなたの "すべて" に変更します:ここで

は私の作業yGuard作業です

<target name="all" depends="build.modules, build.all.artifacts, yguard" 
      description="build all"> 
     <!-- Delete temporary files --> 
     <delete dir="${artifacts.temp.dir}"/> 

    </target> 

そして、あなたはからdelete temporary filesアクションを削除する必要がありますbuild.all.artifactsターゲットであるため、allターゲットに到達すると、ファイルは引き続き使用できます。

yGuard html docの下部にあるように、IntelliJはyGuardの構文について不満を持ちますが、yGuardは引き続き動作します。

誰かがこれをきれいにすることができます、自由に感じてください。それは私のために働く、あなたの走行距離は変わるかもしれません。また、WORKING-NOTES: [1.1] "5th step"に記載されているように「小さな」アリビルドを追加した後で、本当に小さなアリビルドXMLを作成し、Project Structure->Artifacts->Post Processingを使用することもできます。このためには、いくつかの手作業によるハッキングが必要になるでしょう。

Hypersoft SystemsからのHappy "PRO"リリースコーディング;)

+0

これは間違いなく動作します。構文は本当に厄介ですが、一度それを掛けると、それは絶対に華麗です。私は、あなたがプロジェクトタグの間にあなたのyguardのものを含んでいないビルドファイルを使って、後処理方法を使用することをお勧めします。デフォルトのジェネレータは、標準のIntelliJプロジェクトではうまく動作しません。ジェネレータは私のマニフェストを含んでいませんでした。また、ビルドファイルで変数の代わりに生の文字列を使用することも、後処理ダイアログから変数を設定することもできます。多くのリフレクションを使用している場合は、選択的ターゲティングを行う必要があります。乾杯。 –

+0

標準的なプロガードのクリックアンドゴー設定では、この赤ちゃんに「何もない!セットアップのデバッグに役立つこのプラグインが必要です:[Archive Browser](https://plugins.jetbrains.com/plugin/9491-archive-browser)。プラグインはjarファイルをブラウズして、逆コンパイル時に他の人が見るものを見ることができます。ビルドファイルに戻って、リフレクションを使用しないすべてのものを取り除くことができます。これも説明的です。 –

+0

Mmm Ant。 2000年に呼ばれ、ビルドツールを元に戻すことを望んでいます。 –

関連する問題