apkファイルのリソースを引き抜くためのツール「Apk-recovery」
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