no-image

THEOS #アプリにhookする

はじめに

THEOSの記事も三件目。そろそろ真面目にアプリに対して効果を発揮するtweakを作りたいところである。

アプリに対してdebを働かせるのはplistファイルをいじれば良いですそのためにはアプリのバンドルを知る必要があるのでまずはそれを調べます。

BundleIDsのインストール

iPhoneを使っている人なら誰でも一度は訪れたことがあるであろうtools4hackさんのサイトで該当する記事を見かけました。

ここの手順を参考にBundleIDsをインストールしてください。

ちなみに、三菱東京UFJ銀行のバンドルIDはjp.mufg.bk.applisp.01です。

脱獄チェック機能を無効化する

jailbreakしているとセキュリティ機能が下がっているということで、銀行系のアプリは動かないことが多々あります。なのでそれを回避するパッチを作ってみましょう。

今回は三菱東京UFJ銀行のアプリを対象としました。

起動してみると確かに脱獄チェック機能が働いてアプリが起動しないのがわかります。

関数を調べる

一体このアプリはどこで脱獄しているかどうかを判断しているかを調べる必要があります。

これを地道に調べると途方も無い時間がかかるのですが、FLEXという脱獄アプリが非常に便利です。

詳しい使い方は省略しますが、これを使うとそのアプリにどんな関数が使われているかを調べてくれます。

今回はCMNSecurityManagerというClassのisRootDetected()が脱獄チェックを行なっているようです。返り値はBool型なのがわかりました。

コードを書いてみた

%hook CMNSecurityManager
- (bool)isRootDetected
{
    return FALSE;
}
%end

ちなみにコードも載せておきます。debファイルをダウンロードしてインストールすればそのまま使えてしまうのですが、そのうち自分のレポジトリを作ってアップロードしたいと思います。

動作させてみた

アプリをインストールした状態で再度三菱東京UFJ銀行のアプリを開いたところ、ちゃんと起動することができました。

脱獄回避が完成しました。やったー!!