iOS
AppStore
unzip
リバースエンジニアリング

AppStoreからダウンロードしたipaファイルを解凍する

More than 1 year has passed since last update.

AndroidのapkやJavaのjarは普通にunzipで解凍することができるが、同じくzip形式であるipa(iOS App)は、単にunzipしようとしても、一部のファイルがunsupported compression method 99と言われて出来ない。

実はipaファイルにはlzfseという別のアルゴリズムも使われているので、それに対応したdecompressorが必要になる。

@sskajeさんがunzip 6.0をベースにlzfse対応したものがあるので、これを使わせていただく。

https://github.com/sskaje/unzip-lzfse


1.lzfseをインストール

$ git clone https://github.com/lzfse/lzfse.git

$ cd lzfse
$ make
$ sudo make install


2.unzip-lzfseをbuild

$ git clone https://github.com/sskaje/unzip-lzfse

$ git checkout lzfse
fatal: Not a git repository (or any of the parent directories): .git
#あれ、怒られた…けど放置でおk

$ cd unzip-lzfse
$ export LZFSE_PATH=/usr/local
$ make -f unix/Makefile all

多分ここ何かしら失敗します。でも問題なかったのでスルー。


3.unzip

公式の方法とは違うが、unzip-lzfse/unzipを普段のunzipと同じように使う。

もちろん/usr/binにcpしてもいいが、それは自己責任で。

これでmethod 99エラー(?)は解決すると思う。

.app中のバイナリファイルは、この時点ではまだcipheredなのでMach-Oとか見れないと思うが、それはまた探すとして、この記事はこの辺で。