ガチなソースコードを見てみる

部活でAndroidアプリ開発のためにAppInventorというWeb上でできる開発環境を使って文化祭のために作ってきました。

この開発環境では簡単にアプリ開発ができる反面細かいところには手が届かなかったり、英語で書かれているのでちょっと引いちゃうところがあります。^^;

また、作ったものをAPK(Androidアプリのファイル)として出力できますが、ソースコードとしては出力できません。

ならばAPKから戻しちゃえばいいんじゃないという考えからデコンパイルしてみました。

注意事項

デコンパイルという行為はリバーシエンジニアリングと呼ばれる行為に当たります。

他人が開発したものを許可なく行った場合は法律に触れることが多いので自分が開発したAPKにしたほうがいいでしょう。

また、自己責任でお願いします。

必要なもの

dex2jarはclasses.dexファイルからjarファイルに変換するツールです。

Java DecompilerはJavaアプリケーションをデコンパイルしてソースコード(java)に変化するツールです。Windowsで使っているのでGUI版を利用しています。

手順

classes.dexファイルを抜き出す

.apkファイルを7zipで開くなり、拡張子を.zipに変えてzipファイルとして読み込むなりして.apkファイル直下のclasses.dexファイルを抜き出します。

3fac9d22625bff522300864691a08cb0

.dexファイルから.jarファイルに変換

dex2jarをDL、解凍しておきます。

classes.dexのあるフォルダでShiftを押しながら右クリックをしてコマンドウィンドウをここで開くをクリックして、コマンドプロントを開きます。

96403152f81aa57669b85408f967d63e

解凍したdex2jarのフォルダの中からd2j-dex2jar.batをコマンドプロントの上にドラック&ドロップします。

半角スペースを入力します。

先ほど抜き出したclasses.dexファイルもドラック&ドロップして、エンターを押します。

5e8f2aeb6e7cffe560910daac1528404

 

dex2jar C:¥*****¥classes.dex -> .¥classes-dex2jar.jar

85ec4b91580e563e7216103496081d9a

 

と表示され実行が終わるとclasses.dexのあったフォルダにclasses-dex2jar.jarファイルが追加されます。

88610705f1db24da1c0ab225916bd34b

.jarからソースコードを見る

Java Decompiler (GUI)を起動しておきます。

出てきた画面に先ほど生成した.jarファイルをドラック&ドロップすると、ソースコードが表示されます。

ソースコードを見るとやたらと長い

スクロールしても終わりが来ないぐらいやたらと書かれています。

ちょこっとJavaを知っていますが、難読かしてあるんじゃねと思うぐらい何が書いてあるかわかりませんw

今回はAppInventorで生成したAPKを見ましたが、Android Studioを使ってアプリを開発して生成したAPKと見比べてみたいです

参考

AndroidのAPKを逆コンパイルする

コメントする