
捕まるつもりはありましたか? もちろん!
日曜日の夜にSteamのホームページにアクセスした場合、新しいゲームに気付くかもしれません:「塗料の乾燥を見ています。」 このイベントは、ユーザーがSteam GreenlightのValveの品質管理の喪失について議論したフォーラムで活発な議論を引き起こしました。 ただし、このゲームは決してGreenlightには入りませんでした。 ゲームを公開するのに100ドルも払わなかった。
Greenlightは、独立した開発者がゲームを宣伝するための優れたプラットフォームであるように思えます。私が気分を害する可能性のあるすべての開発者に謝罪したいと思います。 それは単なるデマであり、私の理論のテストでした。数か月間、Valveに伝えようとしました。Valveがゲームを見ることができないように、ゲームをSteamに配置する能力です。 すべての脆弱性はすでに修正されており、このガイドには歴史的な価値しかありません。 ところで、ゲームは映画館での検閲に対する抗議とは何の関係もありません。
Steamworksアカウントを取得する
ストーリー全体に対する私の小さな調査は、Steamworksへのアクセスを得ることから始まりました。 どのように、なぜアクセスしたのかについては説明しませんが、フォーラムまたはGreenlightで脆弱性を使用せず、Valveのいずれとも通信しませんでした。 私はこれらの詳細を開示せず、尋ねません。

一般的に、Steamworks(Steamでゲームをホストするための内部Valveプラットフォーム、実績の編集、DRM、マルチプレイヤーなど)にアクセスし、その後、脆弱性を探すアイデアを得ました。 4月1日、私はこの機会を利用して匿名のアプリケーションを公開し、Valveの問題に注意を引くことにしました。
RPG Makerで45秒のペイント乾燥シミュレーターを作成する説明は省略します。誇りに思うものは何もないので、それは重要ではありません。
Steamトレーディングカードの承認を取得
当然、これはSteamカードのないゲームでしょうか? コミックセットのカードをPhotoshopで作成しました。 しかし、Valveはリリース前にカード、顔文字、背景を見てはいけませんか?
ステータスページには、いくつかの初期オプションがあります。

そして、ソースには何がありますか?

興味深いことに、セッションとエディターアカウントIDの両方が追跡されます。 IDをValveの従業員に属するもの(たとえば1)に変更し、selectの値を存在しないものに変更して、応答で別のフォームを取得するかどうかを確認しましょう。

興味深い-代わりの「最後の編集者」は本当に従業員であることが判明しました。 そして、このフォームを「Released」という値で再度保存するとどうなりますか?

どうしたの? 間違った要求を送信すると、サーバーはオプションとその値の完全なリストを返しました。 リリースの値が5であることがわかりました。次に、editor_accountidを返すようにフォームを更新し、選択値を5に変更しました。 サーバーは、Valveの誰かによってカードが既に承認されているかどうかを確認せず、単にステータスを変更しました。
バルブ承認プロセス
同社には、Steamに何かを投稿するための3つのステップがあります。 最初に、ストアページを検査のために送信し、次にゲームの最終ビルドを送信します。次に、リリースする機会が与えられます。
ゲームリリース
Steamworksは主にAJAXを使用します。 JSコードは難読化されておらず、Steamworksで承認されているすべての人に表示されます。 「ReleaseGame(appid、data)」という興味深い関数を見つけました。 どうやら、彼女は典型的なAJAXリクエストを行い、ゲームをリリースしました。

パラメーター445730(私のappid)と空のデータを使用してReleaseGame関数を呼び出すと、ステータス403が表示されました。

合計、ReleaseGameを呼び出します(445730、{'sessionid': 'my_session_id'):

Steamストアにアクセス

うん! 私は実際に、ゲームを「4月1日にリリース」セクションに表示し、金曜日までサイトに表示したくないことを望んでいました。 そしてもちろん、私はリリースパスに沿ってどこまで行けるかを知りたかったのですが、購入可能なゲームのリストに彼女が表示されない方が良いと判断しました。
この脆弱性をすでに修正しているValveに連絡しました。
このすべてから、ユーザーコンテンツを操作する場合、「レビューの準備完了」と「承認済み」の2つの異なるステータスを作成する必要がないことを学びました。 代わりに、ゲームが承認されたことを示すチケットを発行し、チケットが存在している間はステータスを「承認済み」に変更しないでください。 または、ユーザーがステータスを「承認済み」に変更できないようにします。
¯\ _(ツ)_ /¯
