THEOS #アプリにhookする

はじめに

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

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

BundleIDsのインストール

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

BundleIDs – アプリのBundle IDをサクッと調べる&コピー! [JBApp]
アプリのBundle IDを簡単に調べる&コピーする事が出来る『BundleIDs』のご紹介。テーマ作成時やいくつかの脱獄アプリなど、アプリID(Bundle ID)を調べる必要があったりします。…が、面倒!ですが『BundleIDs』を使

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

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

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

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

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

‎三菱UFJ銀行
‎三菱UFJ銀行が提供するインターネットバンキング(三菱UFJダイレクト)のスマートフォンアプリです。 スマートフォンアプリなら、 1.いつでも、どこでも取引ができて便利!    残高・入出金明細照会、振込、ペイジー決済など、色々な取引を利用できます。 2.カンタンにログイン!   生体認証を使えば、すぐにログイン...

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

関数を調べる

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

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

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

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

コードを書いてみた

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

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

tkgstrator/mufgbk
Disable jp.mufg.bk.applisp.01's jailbreak checking method. - tkgstrator/mufgbk

動作させてみた

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

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

シェアする

『THEOS #アプリにhookする』へのコメント

  1. 名前:run 投稿日:2018/12/13(木) 01:47:11 ID:782601be7 返信

    ios11.3.1で入獄しましたが、脱獄判定が出ます。入獄状態でこのパッチを当てることは出来ますでしょうか。
    ご教授よろしくお願いいたします。

    • 名前:me 投稿日:2018/12/13(木) 08:39:36 ID:48af20e38

      はじめまして。
      入獄状態では署名がされていないパッケージをインストールすることができないのでパッチを当てることはできません。

      入獄しているのに脱獄判定がでてしまうというのはしっかりと初期化ができていない可能性が考えられます。
      現状では、二通りの解決策があると思われます。

      一つはiOS11.3.1が脱獄可能であることを利用して、再脱獄してパッチを当てるという方法です。
      パッチはうちのレポジトリでも配布されていますが、tools4hackさんでも紹介されています。動作の内容は全く同じなのでどちらを利用しても得られる効果は同じです。

      もう一つは初期化をやり直すという方法です。
      もしElectraを使って脱獄していたのであればRollectraが便利だと思われるので、この記事を参考に対処されてみてはいかがでしょうか?

  2. 名前:run 投稿日:2018/12/13(木) 10:53:37 ID:3bf364bb7 返信

    ご返信ありがとうございます。
    Rollectraで入獄しましたので、再脱獄してパッチ当ててみます。
    ご丁寧にありがとうございました!

    • 名前:me 投稿日:2018/12/13(木) 18:12:04 ID:3d22e0ffc

      うまくいかないようでしたらまたご連絡ください。

  3. 名前:Non 投稿日:2019/01/23(水) 14:33:41 ID:2e0cc5277 返信

    こんにちは。
    上記コメントと同じ症状です。
    Electraで脱獄、iCleanerで設定ファイルを削除後ElectraRemoverにて入獄。
    他のアプリは問題なく起動しましたが、UFJのみroot化判定が出ます。
    入獄環境で使用出来るFilzaEscapedで分かる範囲は綺麗にしたつもりですが、root化判定変わらずです。。
    何を触れば(消せば)起動出来るようになりますでしょうか。
    ご教示よろしくお願いいたします。

    • 名前:me 投稿日:2019/01/24(木) 00:44:36 ID:0c3605a94

      ElectraRemoverの機能を調べたわけではないのですが、完全に脱獄環境を消去できていないものと思われます。
      ※脱獄判定には単純なROOT権限を調べるものから、特定のファイルがあるかどうかをチェックするものまで様々です。

      もしも脱獄環境でUFJアプリを使いたい場合は再脱獄してからUFJ Patchを使うのが最も手っ取り早いと思われます。
      完全に入獄したい場合は、再脱獄してからRollectraで入獄するか単にiTunesからリカバリーモードやDFUモードから初期化すれば完全にリセットされます。