[iOS] 噂の「iOS 6.1.3 (6.1.4) の脱獄」は偽装で再現出来るか?を検証してみた

(15)

いまさら感もあるのですが、先日iPhone 4 CDMA版 iOS 5.1の完全脱獄が出来る「UnthreadedJB」というツールがリリースされました。需要がものすごい限定的ですが、これ自体は問題ではありません。
何が問題かというと、この方が「iOS 6.1.3とiOS 6.1.4の脱獄を開発してる」と言い出しまして。

ほぼほぼ偽物だろうなぁと思いつつ、今回はこの方が証拠だと言ってる動画や画像は、偽装で再現出来るか?本当に証拠として意味があるのか?を検証してみるお話です。
ただ、今回の趣旨は偽物本物を判断すると言うことではなく、単純に証拠としてる物の意味を確認するお話です。

これまでとは違ってiOSバージョンだけではなく、「uname」コマンドを使ったデバイス情報を証拠として公開していたりしますので、この部分について証拠としてどれほど効力があるのかを見てみたいなと思います。

スポンサーリンク

ムムム…

先日iPhone 4 CDMA版(iOS 5.1)の完全脱獄が出来る「Unthreaded JB」というツールがLinux向けにリリースされました。対象がものすごく限定的なので需要があるのかよく分からないですが、これ自体は動作するそうです。

ただ、ここからが問題で、このツールをリリースした「Unthreaded JB」という方がiPhone 5を含めた「iOS 6.1.3とiOS 6.1.4の脱獄も開発している」と言い出しちゃったから、さぁ大変。
普段なら「偽物の時期だねぇ」と世間も相手しないのですが、先述のように実績を作ってしまったので信じたくもなります。
でもこの方ずっと「ios」を「iso」と言ってたりするのですよね。なんですかね。わざとやっているのか、言葉遣いも変だし…

とまぁ、ほぼほぼ偽物だろうと思い、通常は記事に書くこともないのですが、今回はそこではなく、ichitasoさんが面白そうな事をやっていたので私も参戦してみよう!と。
証拠として公開されている物が、証拠として役に立つのか…「偽装して同じ事が出来ないか?」を検証してみます。

証拠として出している物を検証する

議論になっているのは以下の動画で「MobileTerminalを起動して【uname -a】コマンドを実行」している部分です。この時にシステム情報が表示されるのですが、その文字列に注目。

*爆音が鳴るので注意*

下記の物が動画中に画面へ表示されている文字列です。また、iPhone 5 + iOS 6.1.2にて同じコマンドを実行した際に表示される文字列と一緒に見てみましょう。

・動画中に表示される物
Darwin Kernel Version 13.0.0: Wed Feb 13 21:40:10 PST 2013; root:xnu-2107.7.55.2.2~1/RELEASE_ARM_S5L8950X

・iPhone 5 + iOS 6.1.2で表示させた物
Darwin Kernel Version 13.0.0: Sun Dec 16 20:01:39 PST 2012; root:xnu-2107.7.55~11/RELEASE_ARM_S5L8950X

注目していただきたいのは赤文字で書かれた日時部分です。ここにはカーネルがコンパイル(作成)された日時が表示されており、基本的にはiOSバージョンによってバラバラの物が表示されます。
で、動画中に表示されている日時ですが、iOS 6.1.4の物と合っているのです。だからiOS 6.1.4で脱獄出来ている証拠だ!偽物じゃない!と言っているわけです。
[blackbirdpie url=”https://twitter.com/UnthreadedJB/status/363213830723080192″]

検証結果

要するにiOS 6.1.4以外でも【uname -a】を実行してこの表示が出来れば証拠として扱えなくなるわけですから、これを検証してみたいと思います。

と、長くなりそうなので、まずは結果から。
下記の動画は検証用に「iPhone 5 + iOS 6.1.2」の脱獄機を使って以下でご紹介する偽装を行い、証拠として示された動画と同じコマンドを使った様子です。まったく同じ結果が得られました。
と言う事で、偽装しても全く同じ結果が得られます! 証拠としては効力無しかもね! といった感じでしょうか。

動画と同じように【uname -a; sw_vers】を実行していますので、デバイス情報の下にiOSバージョンなどの情報もきちんと表示されていますね。はい、こんな感じです。

ios613-614-unthreadedjb-fake-or-true-02

使用した偽装方法の解説

まず、Cydiaの最下部に表示されるiOSバージョンですが、これは『[iOS] iOSのバージョン名を、好きなバージョンへ偽装する方法 [JB]』で好きなバージョンへ偽装することが出来ますので、なんの証拠にもなりません。

で、今回問題となっているUnthreaded JBが「ココ見て!本物でしょ?」と示している部分は、MobileTerminalを使って「uname -a(システム情報を表示するコマンド)」を実行した際に表示されるコンパイル日時です。
ここが偽装出来るか、出来ないかが問題点。

uname -aで出力される文字列を書き換えちゃおう

コンパイル日時やカーネルのバージョンなどを直接偽装する方法を私は知らないので、もう少し単純な方法でやってみました。

要するに【uname -a】コマンドで表示されるシステム情報の文章を好きな物へ変更出来れば良いということですよね。
そこで、【alias】コマンドという、コマンドに別名を付けてショートカット呼び出しが出来る、といった感じの物を使用します。
【alias】で設定したコマンド名の方が既存のコマンドよりも優先されるため、【uname】コマンドに全く別のコマンド(機能)を割り当てることが出来ちゃうのです!

そこで、今回は【uname】コマンドに「動画で表示されていた文章を表示させる」機能を割り当てました。
ついでに、【sw_vers】コマンドにも同様にバージョン情報などを表示させる機能を割り当て。

alias uname='printf "Darwin Kernel Version 13.0.0: Wed Feb 13 21:40:10 PST 2013; root:xnu-2107.7.55.2.2-1/RELEASE_ARM_S5L8950X\n"' alias sw_vers='printf "ProductName: iPhone OS\nProductVersion: 6.1.4\nBuildVersion: 10B350\n"'

この二つのコマンドを実行後、動画と同様に【uname -a; sw_vers】と実行すると下記のような全く同じ文章が表示される!という訳です。

ios613-614-unthreadedjb-fake-or-true-03

ちょっと調整

実はこれだけではログアウトしてしまうと初期化されてしまうので、動画と全く同じ作業は不可能です。ということで、ログイン時に自動でこれらのaliasを使えるようにしました。
方法は通常のLinuxなんかと同じで「.bash_profile」作って、「~/.bashrc」にさっきのaliasを記入して、ログイン時に読み込みに行くように「/etc/master.passwd」の中身を書き換えてあげる程度。

これで証拠として出していた動画、そして「これが証拠だ!」と言っていた日時に関して、偽装しても同じ事が出来るという事が分かりました。
だからといって今回の物が100%偽物だ!とは言いません。だって、誰にでも希望はあるのだからぁ! 98%くらい偽物だろうなぁとは思っていますが。

なんにせよ、現状はiOS 6.1.3(6.1.4)の脱獄は不可能で、Evad3rsやp0sixninja氏などはiOS 7まで待つと言っています。そんな状況では数多くの偽物が出てきますので、とりあえず疑う・すぐに信用しない・拡散しないを心がけるようにしましょう。

(でも、こういう検証も出来て、ちょっと楽しいと思ってしまう私も居たり…!?

コメント

  1. いつものFAKE宣言は受けてないんですよね?
    やや期待です

    • chpwn氏やi0n1c氏からは「釣りだ」と言われています。iH8sn0w氏も同様な感じでした。
      MuscleNerd氏はセキュリティ関連のカンファレンスに出かけていたりするので、今の所はまだなにも触れていないようですね。

      • Oh….そうだったのですか…
        もう一つお訊きしたい事があります。
        以前、Appleの開発者向けサイトが不正アクセスを受けた際に、何故か6.0.xのshshが発行されていたという情報を見たのですが、本当だったのでしょうか?

        • はい、2時間ほどですがiOS 6.0.xのSHSHが発効されていました。

  2. この記事とはあまり関係がないんですが、iPhone4でiOS6.1.3を仮脱獄すると純正メールアプリだけがうまく動作しないんですけどそういうものなんですかねぇ?

    • 「うまく動作しない」がどの程度なのかですが、基本的にはJustBootさえ行っていただければ動作はするかと思います。
      もし起動しないなどであれば、一度SBSettings > More > System Options > Fix User Dir Permissions等を実行してみると良いかもしれません

  3. たーみなる使える時点で脱獄してあるデバイスでしょ?

    • はい、今回の物は要するにiOS 6.1.2等の脱獄済みデバイスをiOS 6.1.4に偽装して「iOS 6.1.4の脱獄出来た」って言っているかもね?という事ですね。

  4. 各氏からの発言や検証を拝見致しておりますが、トータル的な解析をすれば、私見としては、すでにJBは「詰んでいる」と見ております。次のiOS7で完全に手を打たれてしまえば、THE END かなと。かつてのSONYの奮闘記のように…。

  5. そんなことはありえないから安心しろ

  6. コマンドでprintf使ってる人始めて見ました!
    なんでecho使わないの?

    • 最初echoを使ってみたのですが、私の環境が悪い様で動画と全く同じ改行位置にならず、printfの方を使用してみました。
      ただ、他の環境であればどちらでも大丈夫だと思います。

  7. 質問失礼致します。

    iPhone 4S(iOS6.1.2 Jailbreoken)で、Verbose boot を実現させたく、Terminalで
    nvram args=”-v” を走らせたのですが、Verbose boot にならないのです。

    なにか他に方法はご存知ないでしょうか?

    お願いします。

    • 基本的にはA4デバイスまでの機能になっていたかと思います

  8. これがほんとだったらいいんですけど、、無いですよね、、でも、すごく限定的ながらも開発が成功していますし、、