Ma bibliothèque inachevée pour imiter SteamClient.dll, que j'ai développée pour un projet, mais plus tard j'ai abandonné le développement en raison du fait que j'ai quitté le projet.
En substance, c'est la bibliothèque qui intercepte le canal Steam "Pipe" Named ", qui est utilisé pour la communication entre Steam et le jeu en cours de lancement. Je ne voulais pas implémenter les interfaces SteamClient comme les autres émulateurs, et il me semblait que le crochet de tuyau à vapeur serait beaucoup plus simple et plus élégant (non), et j'ai toujours été intéressé par le fonctionnement de ce tuyau, et il n'y a aucune information sur Internet comment cela fonctionne.
Lorsqu'elle est chargée dans le jeu, la bibliothèque lance un fil qui scanne le tampon de mémoire partagé où les commandes de tuyaux nommées sont écrites, et applique également quelques crochets de DLL à vapeur. La classe TsteAmpipeServer est responsable du Hook Pipe, c'est une classe qui peut lire et envoyer des commandes de tuyaux Steam.
Le projet sert plutôt à des fins éducatives, et il est difficile de l'appliquer quelque part dans sa forme actuelle. Avec lui, j'ai pu lancer CS: aller sans vapeur à l'aide de Steampipeemu et voir le menu principal, mais c'est tout. J'avais prévu de terminer au moins la génération des données de certificat Steam afin de me connecter à des serveurs sans voûte, mais j'ai abandonné le projet tôt.
Cependant, avec l'aide de ce projet, vous pouvez étudier en détail le fonctionnement du tuyau de vapeur: comment les commandes sont lues, écrites et exécutées, et la communication entre Steam et le jeu dans son ensemble, ainsi que des rappels de vapeur. Je pense que ce sont des informations très utiles et intéressantes.
Vous êtes libre d'utiliser ce projet et ses connaissances dans votre travail, cependant, je serais très reconnaissant si vous vous référez à moi.