Android .apkファイルを逆コンパイルすることは可能ですか?
-
30-09-2019 - |
質問
ユーザーは、アプリケーションのAPKファイルを実際のコードに戻すことができますか?もしそうなら - これを防ぐ方法はありますか?
解決
まず、an APKファイル 単なる変更されたJARファイルです。したがって、本当の問題は、内部のDexファイルを逆コンパイルできることです。答えは一種です。などの分解者がすでにあります Dedexer と スマリ. 。これらはより良くなることを期待でき、理論的には実際のJavaソースに逆コンパイルすることができるはずです(少なくとも時々)。前の質問を参照してください DexをJava sourcecodeに逆コンパイルします.
覚えておくべきことは、難読化が機能しないことです。適切なライセンスを選択し、法律を通じてそれを実施するために最善を尽くします。信頼できない技術的手段で時間を無駄にしないでください。
他のヒント
APKファイルの逆コンパイルが可能です。しかし、それが難読化されている場合、コードを理解することは難しいかもしれません。
apktool apkファイル内のリソースを表示します
- AndroidManifest.xmlとRESフォルダーのすべてを抽出します(WebViewなどで使用されるレイアウトXMLファイル、画像、HTMLなど)
- 指図 :
apktool.bat d sampleApp.apk
- ノート: これは、7-zipなどのzipユーティリティを使用して達成できます。ただし、すべての.classファイルの.smaliファイルも抽出します。
dex2jarを使用します
- .apkファイルから.jarファイルを生成すると、この.jarからソースコードを表示するにはjd-guiが必要です。
- 指図 :
dex2jar sampleApp.apk
jd-guiを使用してjarを処方します
- .classファイルを逆コンパイルします(Androidアプリの場合は、dofuscated-ですが、他の.jarファイルの場合に読み取り可能な元のコードが取得されます)。つまり、アプリケーションから.javaを取り戻します。
また、最近ではAndroidアプリケーションをオンラインで逆コンパイルすることが可能であり、ソフトウェアは必要ありません。
ここにあなたのための2つのオプションがあります:
このJADXツールをダウンロードしてください https://sourceforge.net/projects/jadx/files/
それを解凍し、libフォルダーよりもJadx-gui-0.6.1.jarファイルを実行して、APKファイルを閲覧するようになりました。終わった。自動的にAPKは、保存ボタンを押して逆コンパイルして保存します。それがあなたのために働くことを願っています。ありがとう
使用するときに、壊れたコードを取得する場合があります dex2jar
/apktool
, 、最も顕著なのはループです。これを避けるために、使用してください JADX, 、dalvik bytecodeをJavaソースコードに分解し、 .jar
/.class
最初にasをファイルします dex2jar
dos(apktoolはdex2jarを使用します)。また、オープンソースであり、積極的な開発です。 GUIファナティクスのためのGUIさえあります。それを試してみてください!
ユーザーは、アプリケーションのAPKファイルを実際のコードに戻すことができますか?
はい。
人々はさまざまなツールを使用できます。
- 分析:あなたのAPK
- APKをデコード/ハッキングします
- 使用
FDex2
捨てるdex
ファイル- その後、使用します
dex2jar
に変換するjar
- その後、使用します
jadx
にコンバージングしますjava
ソースコード
- その後、使用します
- その後、使用します
- 使用
もしそうなら - これを防ぐ方法はありますか?
はい。これを防ぐ(ある程度)いくつかの(組み合わせることができる)これ:
- 低レベル:コード難読化
- Androidを使用します
ProGuard
- Androidを使用します
- 高レベル:Android Hardenシナリオを使用します
詳細は私を参照できます 中国語 チュートリアル: 安卓应用的安全破解