iOS
JailBreak

[iOS]tweakのdebからhookしているメソッドを探す

iOSのjailbreak tweak開発で一番時間がかかると言っても過言でないのがhookするメソッド探しです。

基本的には自分でheaderダンプしてlogしかけて想定している動作なのか探していく事になるか、他人の公開されているソースを見ることになると思います。(tweak名 githubとかでググれば出るはずです)

しかし、ソースを公開していないtweakの場合はdebからhookしているメソッドを探すことができます。
以下に手順を書きます。debの入手方法ですが、repositoryのURLを漁ったりすればすぐに手に入るはずです。(そのうち書きます)

手順

debのextract

$ ar -x name.deb

でdebを解体します。

control.tar.gz
data.tar.xz
debian-binary

といったファイル郡が出てくると思います。

dataのextract

$ tar xf data.tar.xz

でdataの中身を取り出します。

$ Library/MobileSubstrate/DynamicLibraries/name.dylib

というディレクトリ構成でdylibが取り出せると思います。

dylibのextract

dylibの実態は7zipアーカイブなので

$ brew install p7zip

とかで7zipをいれて

$ 7z x Library/MobileSubstrate/DynamicLibraries/name.dylib

で解凍します。

objc

__TEXT__objc_methnameというファイルが取り出せたら、これの中身を見ます。
大体の場合はテキストエディタとかで開けるはずです。
ここにhookしているメソッドが羅列されています。