Ich schreibe an einem Frontend für eine Modifikation welches einem Spiel einen Multiplayer modus gibt. Und mir ist über die zeit aufgefallen das spieler diesen mod auch nutzen können wenn sie es pirated haben. Das misfällt mir und ich will die externe anwendung dahingehend ausweiten das diese überprüft ob der nutzer auch wirklich das Spiel in seiner Steam Bibliothek besitzt. Oder anders gesagt ich will den zugang zu der mod zumindestens erschweren für die jenigen die die das spiel nicht legitim besitzen.
Eine google suche war dabei jetzt nicht hilfreich also habe ich mir mal die Steam dateien angesehen. Im Ordner "Steam\steamapps" befinden sich appmanifests, die die ID's der spiele enthalten die via Steam installiert worden sind, aber so eine datei lässt sich zuleicht selbst erstellen.
Dann ist mir eingefallen: Als ich mal gecrackte software untersucht habe ist mir aufgefallen das immer die "steam_api.dll", die sich im spiele ordner selbst befindet, verändert wird. Wenn ich davon einen hash hardcode oder auf einem server bereithalte und prüfe ob der stimmt bei jedem start dann würde das zumindestens solange funktionieren bis die "steam_api.dll", entweder durch steam selbst, oder durch das spiel geupdated wird. In anderen worten, ein update und der mod geht offline bis der hash aktualisiert wurde.
Da das nicht so praktisch ist frage ich mich ob es eine möglichkeit gibt steam direkt zu fragen, entweder durch ein argument an die steam.exe oder durch einen dllcall, ob der angemeldete nutzer das spiel hat oder nicht. Ich halte das für laufzeitfreundlicher aber habe bisher nicht herausgefunden wie.
Hat jemand eine idee?