クラウドコードがディズニーインフィニティ1.0のリバースエンジニアリングに使用され、13年間のキャラクター制限を突破

リバースエンジニアリングプロセスの技術的詳細
ある開発者がClaude Codeを活用してディズニーインフィニティ1.0(2013年)のリバースエンジニアリングに成功し、10年以上にわたってモッディングコミュニティを悩ませてきたキャラクター制限を突破しました。このゲームは本来、キャラクターを特定の「ホーム」プレイセットに固定し、異なるキャラクターの世界間でのクロスプレイを妨げていました。
これが困難な問題だった理由
この制限は単純なフラグや設定ファイルではありませんでした。重要な関数FindPlaysetForCharacterが、ゲームのC++コードの6つの領域にまたがる13の異なる箇所で呼び出されていました。これまでの試みが失敗した理由は以下の通りです:
- 1つのチェックを修正しても、他の12箇所が依然としてアクセスをブロックしていた
- データファイルのみの修正は、ネイティブコードがデータを読み取る前に検証を行っていたため失敗した
- DLLインジェクションは、スレッドセーフでないLua状態へのアクセスによりゲームをクラッシュさせた
- キャラクターファイルを他のキャラクターフォルダにリネームするとゲームがクラッシュした
Claude Codeがどのように役立ったか
開発者は、シンボルもソースコードも既存のリバースエンジニアリング文書もない状態で、Claude Code(Opus、高推論モード)をゲームのバイナリに対して使用しました。Claude Codeは以下の点で支援しました:
FindPlaysetForCharacterからコードベース全体を通じた呼び出しグラフの追跡- 13箇所すべての検証呼び出し箇所の特定
- 各呼び出し箇所が属するコード領域のマッピング
- x86アセンブリの理解と各呼び出し後の条件分岐パターンの認識
- 修正する正確なバイトの決定
- 機能する解決策に至るまでの複数の失敗したアプローチの検討
解決策と結果
リバースエンジニアリングプロセス全体は24時間以内に完了しました。最終的な解決策は以下の構成です:
- 17のバイナリパッチ
- 3つの修正データファイル
この修正により、あらゆるキャラクターがどのプレイセットでも動作可能になり、無料かつオープンソースで、2分でインストールできます。GitHubリポジトリはgithub.com/philparkinson1204/InfinityUnlockedで公開されています。
コミュニティの反応
この修正を発表したRedditの投稿は、ディズニーインフィニティのサブレディットでトップ投稿となり、90以上のアップボート、45以上のコメント、3,000以上の閲覧数を記録しました。コミュニティで最も有名なモッダーは「私の方法よりも優れている…素晴らしい仕事だ!!!」とコメントし、協力を申し出ました。ユーザーは積極的にベータテストを行い、バグを報告し、同じエンジンで動作するディズニーインフィニティ2.0と3.0への移植を要望しています。
READMEでは、リバースエンジニアリング作業に対してClaude Codeに直接謝辞が記されています。
📖 Read the full source: r/ClaudeAI
👀 See Also

開発者がClaudeにコードのルートアクセスを許可し、開発ワークフローを一変させる
ある開発者が、Claude Codeにサーバーのrootアクセスを許可した経験を共有しました。当初はサンドボックス化された制限された環境で使用していましたが、ローカルでは動作するコードが本番環境で壊れる開発ループに疲れ、深夜のパッチ適用や新たなバグ発生に悩まされていました。

実世界でのMCPサーバーのユースケースと開発パターン
開発者が、ライブスポーツデータスキャナーに接続するMCPサーバーを構築した経験を共有しています。このサーバーはスポーツブックからオッズを取得し、リアルタイムで価格の非効率性を見つけ出します。ツール設計とインストール形式に関する実践的な教訓についても議論されています。

OpenClawの食料品注文ミス:MCPサーバーでの単位の混乱
あるユーザーが、OpenClawにクレジットカード情報を渡し、MCPサーバー経由で毎週の食料品の買い出しを任せていた。3ヶ月間は完璧だったが、先日、商品ページがデフォルトでキログラム単位になっていたため、2個のつもりが2kgのにんにくを注文してしまった。

マルチエージェントシステムは、無意味な出力で静かに失敗し、メタデータ検証を必要とします。
ある開発者が39エージェントのシステムを2週間運用した結果、1つのエージェントが無意味な出力を生成すると、下流のエージェントがそれを確信を持って処理し、洗練されたが捏造された結果を作り出すことが判明しました。解決策は、タスク完了状況とソース数を宣言するメタデータエンベロープで出力を包むことです。