Minha biblioteca inacabada para emular o SteamClient.dll, que desenvolvi para um projeto, mas mais tarde abandonei o desenvolvimento devido ao fato de ter deixado o projeto.
Em essência, esta é a biblioteca que intercepta o canal Steam "Pipe" nomeado ", usado para comunicação entre Steam e o jogo que está sendo lançado. Eu não queria implementar interfaces Steamclient da maneira como outros emuladores, e parecia -me que o gancho de tubo de vapor seria muito mais simples e elegante (não), além de estar sempre interessado em como esse tubo funciona e não há informações na Internet como ela funciona.
Quando carregado no jogo, a biblioteca inicia um thread que verifica o buffer de memória compartilhado onde os comandos do Pipe nomeado são escritos e também aplica alguns ganchos de dlls do Steam. A classe TSteamPipeServer é responsável pelo gancho de tubo, é uma classe que pode ler e enviar comandos de tubo de vapor.
O projeto serve para fins educacionais e é difícil aplicá -lo em algum lugar em sua forma atual. Com ele, pude lançar o CS: Vá sem Steam usando SteampipeMu e ver o menu principal, mas é isso. Planejei pelo menos terminar de gerar os dados do certificado de vapor para conectar-se a servidores sem escalas, mas abandonei o projeto mais cedo.
No entanto, com a ajuda deste projeto, você pode estudar em detalhes como o tubo de vapor funciona: como os comandos são lidos, escritos e executados, e a comunicação entre Steam e o jogo como um todo, além de retornos de chamada a vapor. Eu acho que isso é uma informação muito útil e interessante.
Você é livre para usar este projeto e seu conhecimento em seu trabalho, no entanto, eu ficaria muito grato se você me referir.