部活でAndroidアプリ開発のためにAppInventorというWeb上でできる開発環境を使って文化祭のために作ってきました。
この開発環境では簡単にアプリ開発ができる反面細かいところには手が届かなかったり、英語で書かれているのでちょっと引いちゃうところがあります。^^;
また、作ったものをAPK(Androidアプリのファイル)として出力できますが、ソースコードとしては出力できません。
ならばAPKから戻しちゃえばいいんじゃないという考えからデコンパイルしてみました。
注意事項
デコンパイルという行為はリバーシエンジニアリングと呼ばれる行為に当たります。
他人が開発したものを許可なく行った場合は法律に触れることが多いので自分が開発したAPKにしたほうがいいでしょう。
また、自己責任でお願いします。
必要なもの
- APKファイル
- dex2jar
- Java Decompiler
dex2jarはclasses.dexファイルからjarファイルに変換するツールです。
Java DecompilerはJavaアプリケーションをデコンパイルしてソースコード(java)に変化するツールです。Windowsで使っているのでGUI版を利用しています。
手順
classes.dexファイルを抜き出す
.apkファイルを7zipで開くなり、拡張子を.zipに変えてzipファイルとして読み込むなりして.apkファイル直下のclasses.dexファイルを抜き出します。
.dexファイルから.jarファイルに変換
dex2jarをDL、解凍しておきます。
classes.dexのあるフォルダでShiftを押しながら右クリックをしてコマンドウィンドウをここで開くをクリックして、コマンドプロントを開きます。
解凍したdex2jarのフォルダの中からd2j-dex2jar.batをコマンドプロントの上にドラック&ドロップします。
半角スペースを入力します。
先ほど抜き出したclasses.dexファイルもドラック&ドロップして、エンターを押します。
dex2jar C:¥*****¥classes.dex -> .¥classes-dex2jar.jar
と表示され実行が終わるとclasses.dexのあったフォルダにclasses-dex2jar.jarファイルが追加されます。
.jarからソースコードを見る
Java Decompiler (GUI)を起動しておきます。
出てきた画面に先ほど生成した.jarファイルをドラック&ドロップすると、ソースコードが表示されます。
ソースコードを見るとやたらと長い
スクロールしても終わりが来ないぐらいやたらと書かれています。
ちょこっとJavaを知っていますが、難読かしてあるんじゃねと思うぐらい何が書いてあるかわかりませんw
今回はAppInventorで生成したAPKを見ましたが、Android Studioを使ってアプリを開発して生成したAPKと見比べてみたいです
参考
コメント