0

yguardを使用してプロジェクトを難読化していますが、建物の外にファイルを含めて、ライブラリと関数の新しい命名スキーマのみを受け取ることができるかどうかを知りたいですか?

たとえば、com.MyClass.MyInternalClassesクラスを難読化していて、プロジェクトの外にmysql.javaファイルがあり、mysql.java内にMyInternetClassesのクラスを使用していますが、難読化したため、名前が何かに変更されました。それ以外の場合はcom.ABとしましょう

したがって、そのJavaファイルを読み取り、その上で変更されたすべての難読化された名前の名前を置き換えます。

または、それに最適なアプローチは何でしょうか?

4

1 に答える 1

0

通常、アプローチはコードの大部分を難読化することですが、パブリックインターフェイスは難読化しないでください。つまり、keep要素を使用して指定します。そうすれば、コードのユーザーは難読化に気付く必要がありません。パブリックインターフェイスに難読化するコードが含まれていることがわかった場合は、小さな再設計(少しの委任を使用するか、パブリックである最小限のファサードを作成する)により、パブリックを「シークレット」から分離できるはずです。

別の方法は、map要素を使用して、外部で使用するインターフェイスの名前を手動で指定することです。次に、これらの名前を使用するように呼び出し元のコードを変更できます。yGUARDによって適用された名前変更はログに記録されるため、そこから名前を抽出できますが、それは面倒になり始めています。

于 2010-11-28T09:25:35.563 に答える