• Save
Android In-app Billing (Rev1,2) Hack (*legacy)
Upcoming SlideShare
Loading in...5
×
 

Android In-app Billing (Rev1,2) Hack (*legacy)

on

  • 2,656 views

追記 ...

追記
#この記事は初期の In-App Billing のプログラミング仕様の時代に書いたものです。
#現在の仕様は大分改善されているので、このスライド内容と現状は一致しないかもしれません。

Android の In-app Billing のセキュリティ関係のライトニングトーク資料。
文中の課金ライブラリとはクロスプラットフォーム前提の物です。

Statistics

Views

Total Views
2,656
Views on SlideShare
2,650
Embed Views
6

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 6

http://www.slashdocs.com 6

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Android In-app Billing (Rev1,2) Hack (*legacy) Android In-app Billing (Rev1,2) Hack (*legacy) Presentation Transcript

  • Androidハッキング課金処理のハッキング∼その対策
  • 自己紹介• 第0制作部• プログラマー / SE的な• 課金ライブラリの設計・開発 → iOS / Android
  • 自己紹介• 音屋さん• Cubaseユーザー (中田ヤスタカさんと同じやつ)• GWにニコ動主催の音楽系 コンテストで賞を受賞• OSSもやってます
  • お品書き• …正直な話• …ハッキング?• …どうやって?• …簡単なの?• …対策は?
  • このお話の背景• 課金ライブラリの開発を始めた• お金が絡むのでミスはできない• 簡単にクラックされたらまずい• どうすれば対策がとれるのか• そして…
  • 逆に、クラッカーはどうやって アタックをしてくるのか
  • ここから本題
  • 正直な話、課金処理のハッキングは簡単
  • 具体的には…
  • 動作検証を行うためのプログラムコードがGoogle側で用意されている
  • それを使えば「お金を払った時と同等の」処理結果を得られる
  • 動作検証用のコードを実行するように改ざんすれば…。
  • もちろん、悪用はダメ!です
  • 悪用したらそれは「クラッキング」
  • とは言え、条件があります• ドキュメントのプログラム 解説通りに作っちゃったアプリ• リファレンス実装のソースを そのまま組み込んでしまったアプリ
  • そういう会社さんが意外と多い気がします
  • …ハッキング?• Android=Dalvik VM• バイトコード(dex)• リバースエンジニアリング (簡単)
  • どうやって?• *.apkをデバイスからPCへコピー• 逆アセンブル• アセンブリコードを編集• 再度アセンブル• バイトコードを差し替え
  • …逆コンパイルじゃないの? Javaソースコードは?
  • Javaソースコードには戻しません。(高レベル言語は完全に復元できない)
  • Dalvik VM のアセンブリ言語を使います 既存CPUのアセンブリコード作成や JVMのインストラクションを知っていれば、 マニュアルを読まなくてもOK。
  • 簡単なの?
  • ツールは全て っている• Android SDK• apktool (逆アセンブラ)• smali (アセンブラ)
  • 各種ツールはLinux系、Mac OSX 向け。 ※Windowsは知りません
  • アセンブリコード編集• せいぜい数行編集するだけの簡単なお仕事• リファレンス実装はJavaコードで 公開されている。誰でも見れる。 肝になる処理の動作原理が どうなっているかが完全に分かる。 編集すべき箇所が「必ず」特定できる。• 特定の文字列をGREP検索すればOK
  • ハッキングされない為には どうすればいいの?
  • 実はすごい単純• クリティカルな処理はアプリで実装せず 外部のサーバープログラム上で 実行する。(文書内にひっそりと書いてある…)• ある意味、Googleの文書は意地悪。 実は公式文書の解説やリファレンス実装 内容はセキュアではない。
  • 見落としやすい注意書きのわずか数行を見逃すとアウト
  • 開発中の課金ライブラリは対策済み
  • おわり