1

apktool を使用して逆コンパイルしたファイルを android studio にインポートしようとしています。しかし、ファイルを Android スタジオにインポートしようとすると、「プロジェクト」ブラウザーに何も表示されません。インポート プロセスの最初のステップで、「既存のソースからプロジェクトを作成する」を選択しました。とにかくこの問題を解決する方法はありますか? また、アンドロイドスタジオでnotepad ++のファイルを使用する方法はありますか?

ありがとう。

4

2 に答える 2

5

Daniel Souza が答えたように、apktool は、クラスとマニフェストを抽出するのに役立つ単なるツールです。Android ビルド プロセスの詳細とフロー ( https://source.android.com/source/jack.html ) を調べると、すべてのクラスが難読化され、パックされ、.dex ファイルに入れられることがわかります。 (独自のクラス、Android サポート ライブラリ、およびその他のサードパーティ ライブラリを含めます)。

通常、.apk ファイルには次の種類のファイルのみが含まれていました。

  1. .dex ファイル (65K メソッドの問題が存在する場合、1 つだけではない可能性があります)
  2. manifest( Android パーミッションと機能のメタデータ)
  3. アセット (ドローアブル、アセット フォルダー、レイアウト、R)

したがって、apktools と他のツール (j-soup) を使用してリバース エンジニアリングを行った場合。ソースファイルのみを持つことができます。Daniel の方法のように、プロジェクトを android studio にインポートできますが、プロジェクトに多くのエラーが存在する可能性があります。

  1. R.java を生成できません (apk ではすべてのカスタム id 値が一意の整数に変換されるため、apktool を使用しても人間が読める意味でこれを元に戻すことはできません)

  2. 難読化されたクラスと変数名。apk のビルド方法について説明したとおり、ビルド後にクラスと変数名が難読化されます。リバース エンジニアリングでは、ほとんどすべての名前が (a、b、c、d、e...) に変更されているため、アプリケーション内のロジックを見つけるのは困難です。

  3. Proguard の問題。一部のアプリケーションは、高度なテクノロジを使用して、より複雑なロジック フローを使用してソース コードをコンパイルする場合があります (Dexguard のように)。リバース エンジニアリングが終了すると、アプリケーションの内部ロジックを見つけるのが難しくなります。

「単純な」アプリケーションであれば、難読化されたコードで何が起こっているかを知ることができるかもしれません。

多くのライブラリを含む「複雑な」アプリケーションの場合、その中のロジックを掘り下げようとすると大変なことになります。

于 2016-08-17T02:24:13.227 に答える