ど~もeagle0wlです(再)

140文字では収まらないネタを記録するブログ

レトロゲーム勉強会#09に参加した

レトロゲーム勉強会#09でゲームボーイゲームボーイアドバンスのカスタマイズを行った旨の発表を行ったので、使用したスライドを公開しました。ゲームボーイ本体の修理・改造に関するトピックです。しかしSlideshareは広告がとてもとてもウザくなっていますね…。

retrog.connpass.com

ゲーム『MOTHER2』のドキュメンタリー映画 Earthbound, USAが公開されています

ゲーム『MOTHER2』のファンコミュニティを追ったドキュメンタリー動画が、10年の制作期間を経てfangamerからついに公開されました。
earthboundusa.com

blu-ray版もありますが、FangamerからDigital Rentalを選んで7ドル払えばすぐ閲覧できます。全編英語ですが日本語字幕がついています! 本ドキュメンタリーの作成時に糸井重里氏と面会を果たしたreidman(starmen.net管理人でfangamerの代表)によると、年明けにiTunes/Amazon/Googleでも配信されるようです。

www.facebook.com

ゲームの『MOTHER2』は日本ではヒットしており、主人公のネスは初代スマブラから参戦し続けているほどですが、北米版『Earthbound』の発売時の反応は宣伝のまずさなどもあり酷評の嵐で、ガイドブック同梱でかさばることなどの理由でワゴンセールの常連でした。しかし、根強いファンによる長い長いファン活動の末に再評価が進んだタイトルで、現在『Earthbound』の中古価格は非常に高騰しています。ただし、海外版の『ニンテンドークラシックミニ スーパーファミコン』に『Earthbound』が収録されたので、現在では遊びやすくなっています(日本版クラミニに『MOTHER2』は未収録)。

私は、reidman率いるfangamerのスタッフが糸井重里氏と面会するために来日していた際に、いちMOTHER2ファンとして中野で取材を受けたことがあります。10年以上前の話になりますが、fangamerのチャリティーオークション向けに当時クレーンゲームの景品として展開中だったグッズを大量に寄付したことがあったので、その縁でした。
fangamer.com

スタッフロールでは私の名前がクレジットされていました。感謝。

Earthbound, USAスタッフロール

ゲームボーイアドバンスとゲームボーイアドバンスSPを修理がてらハウジングと液晶を交換した


手持ち無沙汰になったので、ヤフオクで入手した電源の入らないゲームボーイアドバンスSPを修理しつつ、ハウジングと液晶を交換した。ついでにゲームボーイアドバンスも同じように電源を修理しつつハウジングと液晶を交換した。

ゲームボーイアドバンスゲームボーイアドバンスSPは電源が入らなくなる(入りにくくなる)不具合がよく見られるらしい。ハウジングを取っ払って、スイッチ部分を清掃すれば好転するが、それでもダメな場合はスイッチ部分を交換すれば良い。交換パーツはAmazonでは手に入らないが、AliExpressならバラで売ってるし、ヤフオクでもバラで出品しているケースがある。

https://ja.aliexpress.com/item/1005003623206453.html
これを購入した。


清掃してダメなら、古くなったスイッチを剥がして交換すると良い。基板の形状を合わせればいいので位置取りは楽。ただ、動作上は問題ないとはいえ交換用スイッチは3点スイッチ(OFF-ON-OFF)なのが少し気になった。

続いてハウジングを交換した。ハウジングは値段によって品質が違うので、AliExpressで売っている1000円程度の安物は選ばず、以下のものを購入した。

実際に届いたハウジングを手に取ったところ、プラスチック特有のつるつるした安っぽさは無く、手触りも良く個人的には大当たりだと思った。

ゲームボーイアドバンスの液晶はライトが付いていないのでとても暗い。国内盤のゲームボーイアドバンスSPはフロントライトだが、やはり暗い。せっかくなので、(1つ7000円前後と)少々値は張るがIPS液晶というものに交換することにした。

AliExpressで以下のIPS液晶キットを購入した。
https://ja.aliexpress.com/item/1005005147317883.html
https://ja.aliexpress.com/item/1005005372868806.html

取り付けは非常に簡単だった。はんだ付けも1~3箇所で十分。ただ、ゲームボーイアドバンスの場合はハウジングを加工する必要があった。

プラスチックカッターとニッパーで削り取る必要がある。切断面は隠れるのであまり神経質になる必要はない。

ゲームボーイアドバンスのソフトは(バックライト液晶の)ニンテンドーDSLiteでも遊べるので、別にIPS液晶を取り付けてまで遊ぶ必要はないだろうと思っていたが、実物を見てその考えを改めた。IPS液晶の発色はメガデモ映えする。

ゲームボーイアドバンスSPに取り付けたIPS液晶を接写してみた。この美しさは素晴らしいぞ。

最後に、LSDjのステッカーを自作してカートリッジに貼り付けた。LSDjのロゴは正規登録するとダウンロードできるpdfのマニュアルから拝借できる。これを「コンビニシール倶楽部」を使ってシール化すれば良い。このアプリは、台紙データに画像を貼り付ける際に、画像の寸法がミリメートルで表示されるのでサイズを合わせやすい。
play.google.com

あとはファミマの複合機で印刷すればよい。L判のサイズで240円だった。

印刷品質の良いシールを貼り付けると、それだけで高級感があふれるので良い。

本拠地を移転しました

遅くなりましたが新年明けましておめでとうございます。
20年近く使っていた本拠地のサーバーが閉鎖になってしまったので移転しました。

新)http://www.eagle0wl.net/
旧)http://www.mysys.org/eagle0wl/

この告知があるはてなブログはそのままにしたいと思います。
たいしたコンテンツもないサイトですが、今後ともよろしくお願いいたします。

椅子をアーロンリマスタードに変えた


リモートワーク突入時に適当な椅子を購入したが、軋みだしてうるさくてこの上ないので買い替えることにした。

今回買ったのは、ハーマンミラーのアーロンリマスタードアーロンチェアの後継モデル)。決して安くない椅子ではあるが、アーロンチェアを20年以上使い続けている知人の一言で購入を決意した。2週間使い続けた感想としては「もっと早く買うべきだった」。自分の体型に合うように背もたれや肘掛けの位置を調整して、長時間座ってわかったことだが、とにかく疲れにくい。自然と姿勢もよくなるためか、肩こりも起こらなくなった。なんだこれは。


↓実際に購入したモデル。安い買い物ではないし円安の影響もあるが、12年保証がついているので、1日あたり50円換算になる。こう考えると安いかも。

何にせよ、今のところ買ってよかったと思える品物だった。

初の単著『オンラインゲームセキュリティ』6/18全国書店にて発売決定



6/18に、初の単著『オンラインゲームセキュリティ』が全国書店にて発売となります。

本書はオンラインゲームにおけるチート行為と、それに立ち向かうために必要な知識や手法を防御視点で記した、(おそらく)世界初となる書籍です。

オンラインゲームにおけるチートと、それに対するチート対策の基本的な考察から、クライアントサイドとサーバーサイドのゲームセキュリティを学び、オンラインゲームに限らずさまざまなゲームにおける不正を振り返ります。

今まで技術書は共著で書いてきましたが、初めての単著です。前例のないジャンルなのでリサーチに苦労したり執筆期間が大幅に長引いたりしましたが、そのぶんこの本にしかないものが揃っていると思います。

本の詳細、およびAmazonのリンクはサポートページから御覧ください。
eagle0wl.hatenadiary.jp

書籍『オンラインゲームセキュリティ』サポートページ

書誌情報

書名:オンラインゲームセキュリティ
著作者名:松田和樹(株式会社ラック)
発行:データハウス
発売日:2022年6月18日
価格:3,500円(+税)
単行本(ソフトカバー):496ページ ※電子書籍版はありません。
ISBN-13:978-4-7817-0251-3

出版社の商品ページはこちらから

↓をクリックするとAmazon.co.jpの商品ページにジャンプします。

↑をクリックするとAmazon.co.jpの商品ページにジャンプします。


店頭在庫はこちらから
紀伊國屋書店 / TSUTAYA


概要

本書はオンラインゲームにおけるチート行為と、それに立ち向かうために必要な知識や手法を防御視点で記した、(おそらく)世界初となる書籍です。

オンラインゲームにおけるチートと、それに対するチート対策の基本的な考察から、クライアントサイドとサーバーサイドのゲームセキュリティを学び、オンラインゲームに限らずさまざまなゲームにおける不正を振り返ります。

目次

本書について
まえがき

第1章 オンラインゲームセキュリティとは
1-1 序論
 なぜオンラインゲームセキュリティなのか
 なぜ脆弱性が生まれるのか
 なぜ脆弱性や不正行為を放置してはいけないのか
 なぜ不正行為が発生するのか
1-2 本書の読み方
 すべてを網羅することはできない
 セキュアなやり方を強制するわけではない
 倫理上の注意事項
 本書におけるオンライン要素を含むゲームの定義と各要素
1-3 オンラインゲームセキュリティの実現に必要なもの
 オンラインゲームの開発に求められるスキル
 堅牢なオンラインゲームの理想形は?
 いつからセキュリティを考慮すべきか
 自社で脆弱性診断を行うべきか
 オフラインのゲーム開発に由来するバッドノウハウ
 守る技術は正しく使わなければならない
 COLUMN
  WinGrooveの事件

第2章 チート行為に対してどう立ち向かうべきか
2-1 情報セキュリティに関する「表現の不自由」
 情報公開と表現の不自由
2-2 チーターの行動様式を考察する
 チーターの数はゲームの人気度に比例する
 チーターはソースコードを所有していない
 チーターは独自のコミュニティを形成している
2-3 通信の改ざん
 今日の「常時SSL/TLS
 「常時SSL/TLS」と中間者攻撃
 「常時SSL/TLS」はチート対策にはならない
2-4 クライアントとサーバー、不正行為の検出はどちらでやる?
 検出するポイントを分類する
 利用者を目視で監視する(オフライン限定)
2-5 思考実験:ハイスコア集計におけるウソスコアとその攻防

第3章 クライアントサイドのゲームセキュリティ
3-1 そもそもクライアントは信用できない
 クライアントは改造可能である
 設計段階から考慮する
 曜日替わりイベントをどう実装するか?
 ゲーム開発者は不正対策をやりたくない
3-2 クライアントのセキュリティと解析
 ゲーム開発にセキュリティを組み込むのは難しい
 マルチプラットフォーム化の流れ
 プラットフォーム別に見るクライアント概観
3-3 ゲーム改造とクラック対策
 ゲーム改造とそれに対するクラック対策の概要
 クライアントプログラムのクラック対策には限界がある
 COLUMN
  歴代最強のプロテクトは何か?

第4章 サーバーサイドのゲームセキュリティ
4-1 ゲームにおけるセキュアコーディング
 家庭用ゲーム開発に由来するバッドノウハウ
 サーバーサイドのゲームセキュリティの要点
4-2 一般的な脆弱性
 管理機能への不正アクセス
 ファイルの露出
 XSSクロスサイトスクリプティング
 SQLインジェクション
 多重ログイン(同時ログイン)
 認証・認可不備
 課金処理
4-3 オンラインゲーム固有のチート可能な脆弱性
 本項で使われる用語「API」の説明
 ファイルパス・ファイル名の推測による隠し情報の漏洩
 デバッグ用/開発者用APIの露出
 抽選結果の漏えい(意図しないリセマラ)
 ガチャに対する不正行為
 ゲームの仕様に反するデータ露出
 制限回避
 特定パケットの受信・送信拒否
 DoS攻撃(サービス拒否攻撃)
 リプレイ攻撃
 なりすましによる他プレイヤーへの攻撃
 アイテム複製と排他制御
 不適切なAPIの設計(機能単位ではない通信)

第5章 「ゲーム」における様々な不正
5-1 家庭用ゲームにおける「裏技」とゲーム改造の是非
 かつて存在した裏技ブーム
 ゲーム改造ツールの存在
 Modから考える「遊び方の問題」
5-2 家庭用ゲームにおけるセーブデータの汚染
 ポケモンシリーズで考えるゲーム改造
 ドラクエIXで考えるゲーム改造
 改造ツールが他人に及ぼす影響
5-3 不正コピー・CFW・マジコンの蔓延と規制(前編)
 パソコンソフトの不正コピー
 家庭用ゲーム機の不正コピー
 エミュレータによる動作
 カスタムファームウェアによる動作
 マジコンによる動作
5-4 不正コピー・CFW・マジコンの蔓延と規制(中編)
 マジコン概説
 マジコンを使う人の話
 マジコンを売る人の話
 マジコンを作る人の話
 ストレージ業界への影響
 マジコンの法規制
5-5 不正コピー・CFW・マジコンの蔓延と規制(後編)
 公式開発と非公式開発、公認ソフトと非公認ソフト
 非公式開発、公認ソフトの話
 非公式開発、非公認ソフトの話
 現在の非公式開発、非公認ソフト
 「無いものは作る」Homebrew
 マジコン利用の隠れ蓑にされたHomebrew
 Homebrewの終了
 グレーゾーンがホワイトになった「Kinectハック」
 MODチップの話
5-6 オンラインゲームの生存期間
 パッケージとオンラインの寿命の違い
 なぜ生存期間を調査しようと思ったのか
 結論は「ない」
 多様過ぎるプラットフォーム
 プレスがない、消えてなくなるから再評価のしようがない
 ステマ・欺瞞的顧客誘引の疑いのある商行為
 ソーシャル以前のアダルトゲーム
 アダルトゲームとソーシャルの相性は最悪
 ガラケー専用タイトルの記録は絶望的
5-7 オンラインゲームの終了とその保全
 過去のゲームの掘り起こし
 何をもって「保存」なのか?
 何を「保存」の対象とするのか?
 オンラインゲームは後世に残せるのか?
 エミュレーションサーバーによる「動態保存」
 コンテンツのフリー化による「保存」
 『星宝転生ジュエルセイバー』の保存
 『Paragon』の保存
5-8 配信元が定義する「不正な」ツール
 どこからが「不正」?
 なぜ「不正ツール」が生まれるのか?
 どうやって「不正ツール」と定義するのか?
 どのように「不正ツール」を排除するのか?
 公式の(?)チートツール
5-9 不正プレイヤーへの処罰のやり方
 アカウントの停止(アカウントBAN)
 通報制度の設置
 泳がせる
 監視国家のもとでサービスする(超暴論)
5-10 内部犯行と刑事事件
 日本で起こった主なインシデント
 どうすれば犯罪は減らせるのか?
 刑事・民事事件にするべきか?
 ガチャと確率操作は?
 結局は、健全なビジネスを行っているか次第
5-11 乱数の話
 奥が深すぎるコンピュータの乱数
 乱数が必要となるゲーム
 コンピューターゲーム創世記からの乱数
 シード値の決定
 擬似乱数の内部状態と周期
 生成アルゴリズム
 ゲームで使われるプロシージャル
 暗号論的擬似乱数生成器
 ハードウェア乱数
 まとめ
5-12 ギャンブルにおけるチート行為
 テーブルゲームイカサマ
 カジノにおけるイカサマ
 オンライン賭博におけるイカサマ
 ぱちんこ、パチスロにおけるイカサマ
 ぱちんこ、パチスロの乱数生成器
 攻略法を失った末路「オカルト」
 まとめ
5-13 パッケージソフトに未来はあるのか?
 ソフトウェア著作権の誕生
 パッケージのコピー
 パッケージからの脱却とライセンス形態の変異

参考文献
あとがき

正誤情報 2022.10.03最終更新

p183
- ガチャの回数のような離散的な値が、-1のような負数や、
+ ガチャの回数のような自然数となる値が、-1のような負数や、

p226
- 例えば、前傾したURLを再掲する。
+ 例えば、前掲したURLを再掲する。

p254
比較例を下記のものに差し替えます。

1 == "1"                // true
1 === "1"               // false
12345 == " 12345"       // true
12345 === "12345"       // false
null == false           // true
null === false          // false
"php" == true           // true
"php" === true          // false
"php" == 0              // false (PHP 8.0.0以前ではtrue)
"php" === 0             // false
"1php" == 1             // false (PHP 8.0.0以前ではtrue)
"1php" === 1            // false
0 == ""                 // false (PHP 8.0.0以前ではtrue)
0 === ""                // false

 排他制御の説明で挙げているソースに不備があり、適切な排他制御がなされていない問題がありました。
p278 12行目から

  // (4)データベースから現在の「石」の所持数を取得して
  // 必要なコストぶん所持しているかを検査する
  $stmt = $pdo->prepare(
    "SELECT normal_stone".
    "  FROM socialgoat.sg_status".
    "  WHERE user_id = :user_id"
 +    // (d)排他ロックを実施する
 +    // ." FOR UPDATE"
    );

p280 本文1行目
- 排他制御のために新たに追加すべき処理は(a)、(b)、(c)、(c')の4箇所であるが、説明のためにコメントアウトしている。
+ 排他制御のために新たに追加すべき処理は(a)、(b)、(c)、(c')、(d)の5箇所であるが、説明のためにコメントアウトしている。

p282 1行目
- 今回の実装では(a)、(b)、(c)、(c')の4箇所のコメントを削ればよい。
+ 今回の実装では(a)、(b)、(c)、(c')、(d)の5箇所のコメントを削ればよい。

執筆者

松田 和樹(まつだ かずき)

 北海道札幌市出身。1996年に放送されたNHKのドキュメント番組『新・電子立国 第4回 ビデオゲーム~巨富の攻防~』を観て人生を踏み外し、学生時代から書籍執筆を行う。
 中堅SIerにて大手カード会社のWebシステムの開発・運用を行うJava/PHPプログラマを経て、ネットエージェント株式会社に入社。通信パケットやプログラムの解析、組み込み機器向けミドルウェアの研究開発からサポートまで、機種を問わず行う。
 2000年代からゲームセキュリティの研究開発に着手し、商業化に成功する。国内最大手MMORPGのゲームセキュリティ診断に参画、他社タイトルの診断も行う。
 共著『0と1のコンピュータ世界 バイナリで遊ぼう!』(マイナビ)、別名義での共著『クラッキングバイブル』(データハウス)など共著多数。