February 21, 2014

よもやま話

えっと、こんにちは。
>>479さんの話は本筋は当たっています。

せっかくですので、ちょっと長くなりますが聞いていただけますか?


もともとBreakThroughは、脱獄環境で動かないアプリを動かすために作りました。

---

ある時、脱獄を検知して動かなくなるアプリに出会いました。

ただ、独自拡張がしたくて脱獄してるだけなのに、
アプリ開発会社に何の迷惑もかけていないのに、

脱獄してるというだけで正規アプリに悪者扱いをされる…
濡れ衣だよ!と思いました。


私も最初はxConを、その次にLINE NO DETECTも使わせて頂きました。両者には本当に感謝です。

ところが、それを超える国産アプリが出てきました。


ご存知のように、両者は海外の賢人が作られたTweakです。日本産アプリへの個別対応は限度があるでしょう。

それでも私は、1台しかない自分のiPhoneで、正規アプリを使いたかったのです。

で、両者と併用して使う、国産アプリ対応を補うものを自分で作りました。それがBreakThrough初版です。

そして、それを同じ思いをしている人に使っていただければと思い公開しました。


その後、いろいろなアプリへの対応のために、対策する検知パターンを増やして行きました。

LINEの検知はほぼネットの研究で公開されている方式でしたので、ほどなくLINE NO DETECTがなくてもLINEが動くようになりました。
それまでの間、LINE NO DETECTには本当にお世話になりました。

---

ところが、そうやってBTの対応アプリを増やすために調べていると、SandboxがないのをいいことにAppleが禁止している情報を盗んでいるアプリに出会いました。

まあ、Cydiaを入れてるかどうかというのもSandboxの外に出る行為なので禁止行為なのですが、こいつは明らかに必要のない情報を取得している…

これは、JBerにとってヤバイと思いました。

最初は(今でも)BreakThroughで情報を守っていましたが、同じ会社がいくつも同じようなアプリを出してくるのを見て、これは牽制させねば、と思いました。

でも、守るのをやめるわけにもいかず、でも、ただ守っていたらそういうものが仕込まれたアプリだということが誰にもわからない…

これを解決するために、そういう挙動をただ警告するだけのBan4Invaderを作りました。


こういう気持ちで開発してきましたが、アプリ開発会社からしてみたら目の上のたんこぶなのでしょうね。
とうとう、BT自体を検知するものまで出てきました。感動と困惑でした。

---

さて、いま私が意識的に手を出していない領域があります。

ひとつは、有料アプリの割れものやIAPを破ったものを動くようにすることです。
これは、アプリ開発会社にとって不利益を与えることです。そのお手伝いはしないつもりです。

逆に、割れものの特徴を教えていただければ、割れアプリの時はBTを無効にしてもいいですよ、開発会社さま。

実際に脱獄検知でIAPFreeというファイルの存在をチェックしているアプリはいくつがありました。そこだけは無効にせずにスルーしています。


もうひとつは、ソーシャルゲームのゲーム性を変えることです。
iPhoneでは通信機能を生かしたソーシャルゲームが多い中で、ひとりがそのゲーム性を変えてしまえば、ゲームの世界そのものをおかしくしかねません。

ですのでツムツムでは、わかっていながらチートツールの検知を放置しました。


もうひとつは、開発担当者の仕事を増やす行為です。これに気づくのには時間がかかりました。申し訳ありません。

発注元の要件に「その時点で出ている脱獄検知回避ツールを入れても、脱獄を検知し動作を止めること」と一行書かれてしまったら、それで開発担当者は苦しむわけですよね。

それに気づいてから、再対策されたアプリに対しては、アプリのバージョンごとに個別対応するようにしました。バイナリが変わればBTはもう動きません。

開発会社さま、ぜひ脱獄を目の敵にするのをやめていただければ幸いです。

---

さて、有料化や寄付は今のところ考えていません。

私はBTを「脱獄を確実に、互換性のあるものにするもの」と考えています。
その大半を担うevasi0nが無料なのに、BTがお金を頂くわけにはいきませんよね。


しかし、それに起因する問題が起きています。
自分の使わないアプリを、購入してまで対応する財力がないのです(笑)

例えば、サミーさんのアプリは私が使わないアプリです。
最初はチャレンジ精神でいくつも買っていましたが、サミーアプリだけで6000円を超えるとそろそろ悩ましくなってきました…

有料アプリを買った人にとって、アプリが動かなくなるのは悲しいことだと思います。本当であれば真っ先に対応したいところなのですが。

アプリの使用権だけ得る方法ってないですかね。

xConの作者は、アプリのipaを送ってもらって対処しているようですが、私はそれを避けています。
それで対応してしまったら、イコール割れものが動くことになってしまうからです。

結果として、正規にお金を払って購入する、使わないアプリが増えていく…
困ったものです。


ちなみに私は検知方法を調べるのにアプリのリバースエンジニアリングをしていません。
iOS側にいろいろ仕込み、呼ばれる側の情報から対策を練っています。

しかしながらそのために、常用するのとは別に、いろいろ仕込んだ開発機が必要となっています。
しかし5や5sはアーキテクチャが変わり、以前の機種では十分な調査と開発が出来なくなりました。

結果として、正規にお金を払って購入する、最新のiPhoneが2台ずつ増えていく…
困ったものです。