ITエンジニア/デザイナ向けにオープンソースを毎日紹介

Apk-recoveryはAndroidのapkファイルからリソースやコードをリバースエンジニアリングするソフトウェア。

Apk-recoveryはWindows/Linux用のオープンソース・ソフトウェア。Androidで使われているアプリケーションの拡張子がapkだ。パッケージになっており、ダウンロードしてAndroidにインストールしてアプリケーションを利用する。誰かにアプリケーションを使ってもらいたい場合はapkファイルを配布すれば良い。


コマンド実行

そんなapkファイルの中身を見たいと思ったことはないだろうか。apkファイルにはdex(Dalvik)というファイル群が入っており、これをリエンジニアリングするのがApk-recoveryだ。

Apk-recoveryはWindowsやLinux向けのソフトウェアであり、コマンドラインベースで使う。引数にapkファイルを指定して実行すると、ファイルのリソースが展開される仕組みだ。dex2jarというツールによって変換している。


リソース

ソースはsmali形式で出力される。Javaとは異なる言語であるが、Dalvik VMのバイトコードを逆アセンブルしたものであり、Javaエンジニアであればある程度読み進めることができるだろう。また画像やXMLファイルはリソースフォルダに出力される。元apkファイルをなくしてしまったり、より深くAndroidを知りたいと思った人は必須のソフトウェアだろう。


MOONGIFTはこう見る

コンパイル系の言語では常にリバースエンジニアリングが試みられる。AndroidはJavaが使われており、中間コードを生成する形であるため特にリバースエンジニアリングがしやすいようだ。また、オープンソースであることも大きい。

smali形式から容易にJavaファイルが作られる訳ではないが、中身が見られてしまうというのはなかなか怖い。Android開発者の人は自作アプリで試してみて、どこまで情報がとれるか確認する方が良いかもしれない。逆に万が一コードをなくした時にもapkさえあればある程度復旧できるという安心感もあるかも知れない。

apk-recovery - Recover main resources from your .apk file - Google Project Hosting

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2