ライブラリの名前変更を受けるために外部ファイルを含めますか?
-
28-09-2019 - |
質問
yguardを使用して、プロジェクトを難読化しています。建物の外にファイルを含めることができるかどうかを知りたいと思います。
たとえば、私はクラスcom.myclass.myinternalclassesを難読化しています。プロジェクトの外には、ファイルmysql.javaとmysql.javaの内部があります。私はmyinternetclassesからクラスを利用しますが、説明して以来、名前は何かに変更されています。それ以外の場合は、com.abとしましょう
したがって、それがすることは、Javaファイルを読んで、それに変更されたすべての難読化された名前の名前を置き換えることです。
または、それに対する最高の承認は何でしょうか?
解決
一般的に、アプローチはコードの主要な大部分を難読化することですが、公開インターフェイスを遮るもののないままにします - あなたはそれらを使用してそれらを指定します 保つ エレメント。そうすれば、コードのユーザーが難読化に注意する必要はありません。公共インターフェイスに難読化するコードが含まれていることがわかった場合、小さな再設計(少しの委任を使用するか、公開されている最小限のファサードを作成します)が「秘密」から一般の人々を分離できるようになります。
別の方法は、を使用することです 地図 要素外部で使用するインターフェイスの名前変更を手動で指定するには、呼び出しコードを変更してこれらの名前を使用できます。 YGuardによって適用された名前の名前が記録されるため、そこから名前を抽出できますが、それは乱雑になり始めています。
所属していません StackOverflow