2011-12-18 20 views
9

私は過去にJava難読化ツールを使用しましたが、一部はリバースエンジニアリングが容易です。私はおそらく十分に難読化されていないと思った。難読化されたコードを再難読化するのは間違っていますか?

2段階難読化を適用するのは間違っているか問題がありますか?商品Zelix Klassmaster

ProGuard

  • 完了それをオフにして

    1. 難読化 -

      それとも悪いアプローチということでしょうか? 1つだけの難読化装置を使用する必要がありますか?

  • +0

    悪いことは起こらないという意味で「大丈夫」です。 –

    +4

    私はそれが良い質問だと思います。なぜそれが「近い」投票を得たのか分からない。たぶん少し言い換えてください。 – MByD

    +0

    客観的な意味で、「大丈夫」と「悪い」のどちらが意味するのかがはっきりしないので、私は投票に投票しました。 –

    答えて

    4

    コードが正しく実行されている限り、使用している難読化ツールの数に関係なく、問題はありません。難読化ツールを使用する主な関心事は、コードの正しさを維持しながらコードをできるだけ読めないようにすることです。

    2

    難読化されていない難読化コードは、コードを解読するための周知の方法です。例: あなたは有効なWindowsファイル名ではありませんので、多くの逆コンパイラを壊しCOM1.javaという名前のファイル、につながる

    class COM1 { ... } 
    

    逆コンパイルなどの有効なWindowsファイル名を形成しない名前を持つようにクラスを難読化することができます。

    解決策は、class1、class2、method1、method2、field1、field2のような名前の辞書を使用して最初に再難読化し、次に逆コンパイルすることです。逆コンパイルされたコードは、逆コンパイルでより有効になるだけでなく、より読みやすくなります。

    obfuscatorsを連続して使用すると、通常、最後に使用された難読化されたコードほど難読化されたコードが生成されます。 (つまり、チェーンは最後のリンクほど強くなります)

    難読化する人に固執することをお勧めしますが、難読化プロセスのすべてのオプションと取り消しの容易さを理解してください。

    +0

    最後のobfuscaterが単にコードをコピーしたと想像してください。以前の難読化ステップを効果的にするにはどうすればいいですか?私はそれが最強のリンクほど強いと思います。 –

    +0

    @IraBaxter私はあなたが何を意味しているのか理解していますが、難読化技術の多くは、再難読化によって元に戻すことができます。 – Matiaan

    +0

    'obfuscatorsを連続して使用すると、通常、最後に使用された難読化されたコードほど難読化されたコードが生成されます。 (つまり、チェーンは最後のリンクほど強力です) 'なぜですか? – EJP

    関連する問題