5660623 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

たしなみガジェット

2009年11月09日
XML
テーマ:PSP発売!!!!(263)
カテゴリ:PSP Hack
wololo氏が、自身のブログでPSPのexploitを発見する方法についての興味深い記事を掲載していました。wololo氏はexploitにはならないことは分かっていながらもmp3ファイルでクラッシュするバグを発見したことを公表していましたが(ゲーム最新情報 2009年9月11日のニュース参照)、それをどのように発見したのかを説明しています。【情報源:Wagic, Magic the Gathering, and PSP homebrews

翻訳のみでお伝えします。


PSPのexploit - ファジング手法でクラッシュを探す

今まで何度かお話ししていますが、クラッシュを見つけることがPSPのexploitを発見する第一歩です。(他の機器でも同様なのですが、PSPの場合そのためのツールが充実しているので非常に簡単です)。

そういったクラッシュは通常は偶然の産物(セーブするのを忘れてしまったりという最悪の事態だったりしますが)なのですが、"強制的に"生み出す方法もあります。その一つがファジングです。最近その手法でMP3ファイルでクラッシュすることを発見しましたが(exploitにはならなかったですけどね)、ソフトウェアのテスト手法としては古典的ではありますがクラッシュを発見するためのこの"革命的な"方法は非常にすばらしいと思います。

ウィキペディアでは以下のように書いてあります:
ファジングとは、ソフトウェアの不具合(とくに脆弱性を意図することが多い)を発見するためのテスト手法の一つである。ファズ(英:fuzz)(予測不可能な入力データ)を与えることで意図的に例外を発生させ、その例外の挙動を確認するという方法を用いる。ファズテストと呼ばれることもある。


とても分かりやすいですね。これはプログラムにランダムなデータを投入しクラッシュするかどうかを確かめる方法です。私の場合"プログラムはPSPのmp3プレーヤーでランダムデータというのがmp3の破損ファイルでした。



テストだけならこれで十分なのですが、問題はこの方法でクラッシュを見つけるのは運以外の何ものでもないということです。ただ、PSPのmp3プレーヤーはプレイリストを使えば何千ものファイルを素早くテストをすることが可能なのです。

以下は私がmp3ファイルで実行したことです: 最初は極端に短いmp3ファイルを作りました。音楽の中身を弄くるソフトウエアはオープンソースのものが多いのでそれを用いました。それで1ビットづつファイルの中身を変えて何千ものファイルを作りました。もちろん1つ1つ手入力でなんてやっていません。スクリプトを使いました。私はRubyを使いましたがスクリプト言語であれば何でも構いません。(perl、php、python...その他Linuxのシェルで作ってもいいですし、CやC++でもいいです)。私のスクリプトはこんな感じでした。
ruby


スクリプトの内容はこのようになっています: “a.mp3″ というファイル(作成した普通のmp3ファイルです)を開き、iを0から200まで変えながらiに当たる場所をjの値に変更していきます。jは0から255までの値です。つまりファイルの中の全バイトを1バイトずつ変えてみようとしたわけです。これだけで何千ものファイルが出来上がります。iの値ごとにディレクトリを作成すると1フォルダごとに255個のファイルが出来上がります。ちなみに使った1GBのメモリースティックがすぐいっぱいになってしまうので変更したのはファイルの最初から200バイトだけです。もちろんもっとたくさん作ることは可能です。(ただしmp3プレーヤーがmp3のディレクトリで255個以上のサブフォルダを使えるかどうかは確認の必要があります)。この200バイトを変更した分までテストし終えたら次は201から400まで...というように順に実行しました。
files.png


これが完了してしまえば、そのファイル(各々のフォルダに入ったままですが、PSPのmp3プレーヤーはフォルダごとに999個のファイルが限界です)をコピーしてあとはすべて再生してみるだけです。

再生には時間がかかります。とはいっても再生中ずっとPSPを見ている必要はありません。たまに見た時にPSPの電源が落ちていたらそれはクラッシュが起きていたということになります。その場合次にファイルを半分に減らし、どのファイルが犯人かが分かるまで再び再生を続けます。

以上がこの手法の全てです。今回はmp3ファイルで実施しましたがもちろん動画ファイルや画像ファイル(スライドショーが使えますね)でも構いません。ただプレイリストの扱いがどうなのかよく分かりませんのでお試しになった方は結果を是非教えてください。この手法のポイントは莫大な数のファイルを短時間でテストすることが出来ることです。数千ものファイル(今回のmp3の場合は50万個ものファイル) をテストとはいってもソフトウェアが実行しうる組み合わせとしてはほんの一部分なのです。(1バイトではなく2バイト変えたら、ベースとなるmp3ファイルを変えたら、mp3ではなくwmaだったら、など考えだしたらきりがありません)。みなさんがこの手法で各自違った組み合わせを試してみることが大切ですが、例えば10個のファイル程度で結果が出るなどという甘い期待は抱かないほうがいいでしょう。

exploitを見つける方法は当然他にもありますが、今回のファジングに関しては利用するメリットがあります: それはプログラムの知識がないと出来ないようなものではなく比較的簡単に取り組める、ということです(もっとも多少スクリプトの知識は必要になりますが、mp3ファイルのどこがどうなるとクラッシュするといった知識は不要です)。時間もそんなにかかりません(大量にファイルをテストしてもシステム的にはちゃんと処理してくれます)。

このファジングの手法でPSPのmp3ライブラリにバグを発見したことで実は私も驚いています。当然ソニーも同じような方法でファームウェアをテストをしているだろうと思っていたからです。

今回の記事がソフトウェア側のセキュリティを設ける側の方々と、それを破ってDRMの悪夢から世界を解放しようとする方々に次のきっかけを与えることが出来れば、と思います。ハッキング万歳!


exploitを発見することが手柄のような風潮があり、その手法を公開するようなケースはまれだと思っていましたがさすがwololo氏はちょっと違いますね。
彼自身も普段からクラッシュバグを探していると思いますが公開されている数も少ない上に本当のexploitにまで至っていません。そのことは如何にexploitにつながるPSPシステムの脆弱性の発見が困難かを物語っているのではないでしょうか。とはいえ、多くのユーザーがバグ発見に取り組めばexploitが見つかる確率は確実に上がります。wololo氏の狙いもそこにあります。

FreePlay氏が、PSP goのeLoader(Homebrewローダー)を準備中(ゲーム最新情報 2009年11月8日のニュース参照)だそうですので、これを機にPSP goのハッキングが盛り上がるといいですね。



人気blogランキング←応援お願いします→にほんブログ村 ゲームブログへ






最終更新日  2010年10月26日 15時55分54秒
コメント(3) | コメントを書く

PR

サイド自由欄

情報共有プロジェクト
GameGazフォーラム
GameGaz_icon

GameGazフォーラムを下記のサイトで紹介していただきました!
この場を借りて御礼申し上げます。
XBOX360 hackに関する私的メモ
PSP改造とか色々記事
GAME cheat&hack記事
Gameの玄人記事
Custom Wii Glossary記事
ALL GAMEHUCKS torrent通販記事
Junk Junky's Square記事
We are Pod!!記事
徒然なる紳士たちの雑記帳記事
DS PSP初心者用講座記事
PLAY@LIFE記事
SPaRB記事
厨ニ病の魔術記事
GAME Hack Navi記事
Life Style記事
PSP&Android完全攻略
GAME MEDIA記事



GameGaz_Blog_Logo
GameGazブログ
管理人が運営する
サテライトブログ



第5回楽天アフィリエイト選手権銀賞受賞サイト
大人のためのゲーム講座は第5回楽天アフィリエイト選手権で銀賞を受賞しました


当ブログが第5回楽天アフィリエイト選手権のコンテンツ部門銀賞を受賞しました
投票してくださった皆様ありがとうございました!

賞をもらった本人が一番ビックリしてます。
コンテンツが皆様にご評価いただけたと思って今後も頑張ります!

[追伸]
楽天の事務局さんからメールがきました。

『今回「電化製品・おもちゃジャンル」にて、銀賞を受賞されました
「http://plaza.rakuten.co.jp/mamosuke2008/」のサイトに関して
ですが、ユーザーの方より、業界の違法を助長する内容とのご指摘を受け、
検討させて頂いた結果、受賞の内容に変更はございませんが一旦、
http://affiliate.rakuten.co.jp/campaign/cup/0810/result/?l-id=aftop_04
こちらのページへの露出は控えさせて頂く事となりました。』

君子危うきに近寄らず?
想像するにマジコンという固有名詞が掲載されている時点でNG?
このサイトの内容は正義感にあふれてると思いますけど。
どこが業界の違法を助長する内容なのか納得いきませんが、石橋たたいて渡られたらそりゃ壊れますって。


本ブログはゲームに関する海外の最新情報を翻訳してお伝えするブログです。

Homebrew(自作アプリ)支持の立場ですが、不正コピーなどの違法行為に関しては断固として反対しております。
掲載されている各種情報はあくまでもHomebrew(自作アプリ)のための情報です。ゲーム業界の発展の障害となる不正行為はこれを追放すべきと訴えて行きます。

大人のためのゲーム講座
管理人
まもすけ






まもすけblogでは楽天オークションをお勧めしています



カテゴリ

日記/記事の投稿

ほしいものリスト

カレンダー

バックナンバー

2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月

キーワードサーチ

▼キーワード検索

コメント新着

 通りすがりのbiblio@ Re:光るPSP用クレードル CHARGER STAND 4in1 for PSP-2000(10/21) こんにちは、かなり昔のブログ記事へのコ…
 mkeeeeeeeeiiiiiiopp@ Re:Gecko OS v2.0のスクリーンショット公開~でも開発は遅れ気味(02/05) lovemehbb7i7iyuu76f786tvr6yr76tycfythtf…
 威哥王@ 威哥王 中絶薬:http://www.xxkanpo.com/product/1…
 silver1202@ フリーワーク募集 私はやっているフリーワークを紹介します…
 silver1202@ フリーワーク募集           私はやっているフ…
 Nos@ 「CFW 6.35 Custom beta v3 for PSP2000」 「CFW 6.35 Custom beta v3 for PSP2000」…
 qwertyu@ Re:ゲーム最新情報 2011年1月16日のニュース kgsws氏ってMOHHの人ですよね!?懐かしい。…
 天然パーマ@ PSN PSNからゲームってどうやってダウンロード…
 天然パーマ@ (・_・)さん どういう場ってゲーム機のハック情報を紹…

お気に入りブログ

★美容&おすすめコス… autodustboxさん
大人のPS3 ひげぱわーさん

Copyright (c) 1997-2019 Rakuten, Inc. All Rights Reserved.