2013年6月9日日曜日

root対策のゲームについて

パズドラ等Androidの一部ゲームは、root化を検知し起動を制限するようですね。

今回なんとなくLINEのとあるゲームをやってみようと思ったんですが、
これが見事にroot制限かかってて起動しませんでした。




パズドラは「suがあるか」「Superuser.apkがあるか」程度の簡単なチェックのようで、
こちらのサイトで紹介されていた方法で突破できました。ありがとうございます。

ところが、今回やりたかったゲームはSuperuserのtemp unrootを行ってもダメ。
default.propやsuの有無も確認したけどダメ。これは意外とチェックが厳しそうだ。

とりあえず最後の手段ということで、端末からapkを引っ張り出して、
ソースから何をしているのか見てみることに。
とりあえず、汎用的なその手順をここでご紹介します。

1. 何かしらのバックアップツールで解析したいアプリをバックアップ
  自分はSystemTunerを使用しました。
  /sdcard/pmw/backups/なんちゃら、みたいなフォルダにapkが作成されたと思います。

2. 出来上がったapkファイルをPCにコピー

3. dex2jarでapkをjarファイルに変換
  ダウンロードしたファイルの中身をフォルダごとどこかに展開し、コマンドプロンプトで

  C:\>[展開パス]\dex2jar.bat [変換したいapkファイル名]

  と入力してください。jarファイルが出来上がります。

4. Java Decompilerでソースを逆コンパイル
  Java Decompilerはeclipseのプラグイン版などもありますが、通常はGUI版がいいと思います。
  ダウンロードしたファイルを実行し、先ほどのjarファイルを開いてください。

5. ソースを保存
  Java Decompilerはgrep機能が貧弱なので、一旦ソースを一括保存し、
  テキストエディタなどで解析に入るのがおすすめです。


結果、例のゲームは某root端末用アプリのパッケージ名「com.noshufou.android.su」を
ハードコーディングして、そのアプリがインストールされているかを確認してました。
(ちなみに、SuperSUのほうもやられてました。)

なので、同様の方法でSuperuserのapkを端末から引っ張り出し、
こちらのサイトで紹介されていた方法でパッケージ名を変更。
署名の付け方はandroid情報サイト ~ てくまるアンドロイドさんがわかりやすかったです。

…結論から言うと、ダメでしたーwww
解析したソースからは他にも何かチェックを行っているように見受けられるのですが、
一部が逆コンパイルに失敗してしまったため、具体的に何してるのか不明瞭でした。

今回はあきらめて、元のパズドラ対策状態に戻しておくことにします。
まあ、いろいろ勉強にはなったかな…

0 件のコメント:

コメントを投稿