2

少し前に、いくつかのスニペットを理解するために、apktool を使用してアプリケーションを逆コンパイルしていました。興味深いのは、アプリケーションが難読化されていたことです。実際、このアプリは、「class.forName」や「class.getMethod」などのメソッドでいっぱいの「Protection.class」というクラスを 1 つだけ提示していました。

Googleで検索すると、これはもちろんリフレクション構造ですが、いくつかのチュートリアルを見て、リフレクションによって呼び出されるクラスがアプリケーションパッケージに含まれている必要があることを理解しました。私の場合、「保護」以外のクラスはありません。

結論として、私の質問は次のとおりです。パッケージからクラスを完全に削除し、それでも何らかの方法でそれらのメソッドを使用することは可能ですか? それらはapkフォルダーのどこに保存されていますか(ある場合)? コードを難読化するため、または (この場合のように) パッケージからクラスを非表示にするために、apk 構築プロセスと対話する方法はありますか?

注: Proguard では実行できません。過去にテスト済みです。

4

4 に答える 4

0

この目的で DexGuard を使用できます。DexGuard には、他の多くの機能の中でも、クラスを暗号化し、実行時に復号化する機能があります。これらのクラスは実行時にのみメモリに存在するため、静的 APK からソースコードを元に戻すことはできません。DexGuard は、ProGuard の作成者によって開発された商用製品です。helloworld@guardsquare.com までご連絡ください。

乾杯、

h4

于 2016-02-03T16:16:53.640 に答える
0

そのためにphpライブラリでprogaurdを使用し、プロジェクトのprogaurdを作成してから、progaurdファイル(Eclipse)のgradleファイル(Androidスタジオ)でアプリプロジェクトにアタッチできます。このphpには、php_progaurdという名前の優れたライブラリがあります

于 2016-01-19T11:40:27.333 に答える