SteamClient.dllをエミュレートするための私の未完成のライブラリは、1つのプロジェクトのために開発しましたが、後にプロジェクトを去ったという事実のために開発を放棄しました。
本質的に、これは「名前付きパイプ」蒸気チャネルを傍受するライブラリであり、蒸気と起動中のゲームの間の通信に使用されます。 SteamClientインターフェイスを他のエミュレーターのように実装したくありませんでした。スチームパイプフックははるかにシンプルでエレガント(いいえ)になると思われました。
ゲームにロードされると、ライブラリは、指定されたパイプコマンドが書かれている共有メモリバッファーをスキャンするスレッドを起動し、スチームDLLフックも適用します。 TSteamPipeServerクラスは、パイプフックを担当します。これは、蒸気パイプコマンドを読んで送信できるクラスです。
このプロジェクトはむしろ教育目的に役立ち、現在の形のどこかに適用することは困難です。それで、私はSteamPipeemuを使用してSteamなしでCS:GOを起動してメインメニューを表示することができましたが、それだけです。私は少なくともスチーム証明書データの生成を終了して、非巻サーバーに接続することを計画しましたが、プロジェクトを早期に放棄しました。
ただし、このプロジェクトの助けを借りて、蒸気パイプの仕組み:コマンドの読み取り、書き込み、実行方法、およびSteamとゲーム全体との間のコミュニケーションとSteam Callbacksの間のコミュニケーションを詳細に研究できます。これは非常に便利で興味深い情報だと思います。
あなたはこのプロジェクトとあなたの仕事でその知識を自由に使用することができますが、あなたが私に紹介してくれたらとても感謝しているでしょう。