APKのリバースエンジニアリング

自分で作ったアンドロイドアプリのAPKリバースエンジニアリング(解析)されたときにどのように見えるのかを検証する方法について紹介します。

APKファイルの構造

APKファイルはzipファイルと同じ構造を持っているので拡張子を.zipに変えればすぐに解凍できて中身が見れてしまいます。そして解凍したフォルダには次のフォルダやファイルが含まれています。

リバースエンジニアリングをする際はclasses.dexに書かれた内容を元のソースコードに変換してそこからどのような処理をしているのか読み取ります。

ソースコードの解析

まず必要なツールをインストールします。次の2つです。

この2つをインストールして利用できるようにしたら解凍したclasses.dexを次のようなコマンドでjarファイルに変換します。

C:\Users\xxx\apk_dex\test>dex2jar.bat classes.dex

完了するとclasses_dex2jar.jarというファイルが出来上がるのでそれをJavaDecompilerで開くかドロップすると次のようにクラスごとのソースファイルを見ることが可能です。

java decompilerでclasses_dex2jar.jarを開いた様子

コメントなどは見ることができませんが、変数名やメソッド名やどのような処理が行われているかなどはだいたい知ることができます。

関連項目
プライバシーポリシー