.apkファイルがある場合、そのソースコードを取得する方法はありますか?
.apkファイルがある場合、そのソースコードを取得する方法はありますか?
回答:
ProGuardを使用した場合でも、興味深い洞察を得ることができます。StackOverflowの質問と詳細な説明を次に示します。Android:APKファイルからソースコードを取得する。詳細なガイド付きのYouTubeビデオ。また、それに関するブログエントリ:Android APKファイルからソースコードを取得する方法。
SOのParnkul Gargによるコミュニティwikiの1つから:
.apkファイルをデコードする手順、ステップバイステップの方法:
新しいフォルダーを作成し、デコードする.apkファイルをコピーします。
次に、この.apkファイルの拡張子を.zipに変更し(たとえば、filename.apkからfilename.zipに名前を変更)、保存します。これで、classes.dexファイルなどにアクセスできるようになりました。この段階では、ドローアブルは表示できますが、xmlファイルとjavaファイルは表示できないため、続行します。
次に、この.zipファイルを同じフォルダー(または新しいフォルダー)に解凍します。
classes.dexファイルをdex2jarフォルダーに移動します。
コマンドプロンプトを開き、ディレクトリをそのフォルダー(または新しいフォルダー)に変更します。次に、書き込みd2j-dex2jar classes.dex
、Enter キーを押します。これで、同じフォルダーにclasses.dex.dex2jarファイルがあります。
java decompilerをダウンロードし、jd-guiをダブルクリックし、開いているファイルをクリックして、そのフォルダーからclasses.dex.dex2jarファイルを開きます。クラスファイルを取得します。
これらのすべてのクラスファイルを(jd-guiで、[ファイル]-> [すべてのソースを保存]をクリックして)src名で保存します。この段階でJavaソースを取得しますが、.xmlファイルはまだ読み取り不能なので、続行します。
別の新しいフォルダーを開きます
デコードする.apkファイルを入力します
apktool および apktoolインストールウィンドウの最新バージョンをダウンロードし(両方とも同じリンクからダウンロードできます)、同じフォルダーに配置します
framework-res.apkをダウンロードして同じフォルダーに入れます(すべてのapkファイルにこのファイルが必要なわけではありませんが、問題はありません)
コマンドウィンドウを開く
APKtoolのルートディレクトリに移動し、次のコマンドを入力します。
apktool if framework-res.apk
apktool d myApp.apk
(myApp.apkは、デコードするファイル名を示します)
これで、そのフォルダーにファイルフォルダーが作成され、apkのxmlファイルを簡単に読み取ることができます。
両方のフォルダー(この場合は両方とも新しいフォルダー)の内容を単一のフォルダーにコピーするだけのステップではありません
ソースコードをお楽しみください...