はまちやリバースエンジニアリング

http://hamachiya.com/junk/mms.html

mixiミュージックのサービスが始まったと思ったら、はまちちゃんがまたろくでもないことをしでかしたみたいなので(w)ソースを覗いてみた。(ソースは最下部に掲載)


function login()

  • リクエストはmixiミュージックのエンドポイントに出している
    • リクエストヘッダを書き換えている
      • requestHeaders : ['User-Agent', 'mmm/v0.1 (by glucose)'],
      • これ以外のヘッダをもったリクエストは弾かれるようになってるみたい
    • パスワードとメールアドレスを一緒に載せてPOSTで送ると、セッションIDが返ってくるので正規表現で抜き出して値を保持しておく


function upload()


 
  ぼくはまちちゃん!
  はまちや2
  こんにちはこんにちは!
  Rock
  2006-05-23T13:13:07%2b09:00
 
 

    • リクエストヘッダを書き換えておく
      • requestHeaders : ['User-Agent', 'mmm/v0.1 (by glucose)'],
    • さきほど取得したセッションIDをクエリパラメーターの中に含めておく
      • var param = 'session_id=' + document.getElementById('session_id').value + '&data=' + document.getElementById('data').value;

function updateTimestamp()

  • timestampタグの値を更新する
    • ?timestampタグの更新によって再生回数をカウントするのかな?
      • はまちやスクリプトを使うとtimestampを任意の期間でガンガン更新できるので、こんなイタズラができてしまう とみた。
  • 送信しまくる => 変なランキングの出来上がり

流れはこんな感じです。案外簡単な実装でできてしまう迷惑ハックですね(笑)リバースエンジニアリングというほどのものじゃないな・・・



で気づいたんだけど、

-iTunesで2秒とか3秒とか短い秒数の曲を用意する

  • その曲のタイトルを「ぼくはまちちゃん!」アーティストを「はまちや2」と書き換えておく
  • ひたすらリピート再生する

としちゃえば同じイタズラが出来てしまうんじゃないかと思った。どうなんだろね。案外脆弱な物かも。
mixiミュージックのクライアントソフトは三分間ごとぐらいに再生している曲をチェックするみたい。それでtimestampを更新したXMLを吐き出してるんだと思う => だからtimestampをいつでも書き換えられるはまちやスクリプトがワルもの ということになる。


iTunesの曲データーはXMLで管理されていて、データは恣意的に書き換え可能ですよね。ユーザーのほとんどは曲データーをデータベースから自動取得していると思うけど、中にはこんなイタズラをする人もいるでしょう。ユーザーが変てこなデーターを送信してもmixiサイドにはそれが妥当な物かどうかチェックすることはできないから、いたずらロジックを組んだ「はまちちゃん!」がランキングのトップにあがってしまうという事態が起こっちゃう。
(サーバサイドの実装がどんなんかは知らんので、推測でしか話できないけど・・・)

基本的にユーザーを疑わない性善説的なやり方なんだなと思いますた。

まぁ mixiミュージックが無料公開されて、膨大なデーターが送られてくるようになれば こんな少数のイタズラも陰に隠れしまうでしょうね。そうなるべきだし。




追記:
mixiへ送るXMLiTunesXMLからそのまま引っ張ってきているのだと思っていたら、全然違った。iTunesフォルダの「iTunes Music Library」は下記のような構成で曲情報を管理していました。
どこかでXMLを変換してるんだろうけど、mixiのクライアントソフトがやってるのかしら?そもそも再生中のiTunesをたたいてメタデータを取得するってどうやるんだ。分かりません。

追記2:

http://blog.bulknews.net/mt/archives/001247.html

こんなんあるみたいです。情報どうも!

39
		
			Track ID39
			NameSANTA CLAUS IS COMING TO TOWN
			ArtistBill Evans
			Album25 EVANS -VERVE (Disc1)
			GenreJazz
			KindAAC オーディオファイル
			Size4293201
			Total Time266795
			Disc Number1
			Disc Count2
			Track Number4
			Track Count14
			Date Modified2006-04-03T23:46:16Z
			Date Added2006-04-03T23:45:56Z
			Bit Rate128
			Sample Rate44100
			Play Count2
			Play Date-1064047920
			Play Date UTC2006-05-19T12:36:16Z
			Persistent IDBE7F7BFEC30F524B
			Track TypeFile
			File Type1295270176
			File Creator1752133483
			File Folder Count-1
			Library Folder Count-1
		


以下、はまちちゃんJavascriptソース