It is bad, Valve don't like external apps messing with their shit
It will probably go against your EULA or something, or it will think you're using PacSteam or whatever
It's it's possible but probably insanely hard to do, right?
It isn't if the OpenSteamworks implementation is really as far as it seems.
Then it's just as easy as coding a new Steam client with the source to the DLLs.
Well, so far VoiDeD only provided the interfaces, as such you cannot code a completly open Steam client yet, until the implementation to the interfaces also gets reverse engineered (or open-sourced by Valve or leaked).
However, since he interfaced steam.dll, he just uses that, bypassing the need of a public key.
The public key is either provided during the logon procedure or is stored in steam itself. I'm unsure as of which and I haven't spent much time figuring it out. Either way it's possible to login with a 3rd party client.
However, reversing the network protocol would not be as hard as reversing steam.dll/steamclient.dll with an aim to recreate all network functionality.
As for what I'm currently doing, I'm trying to figure out how to make steamclient.dll intefaces play well with steam.dll. I'm able to get steam.dll to logon to steam servers, but all secondary logon attempts with steamclient interfaces have failed.
Oh god does this mean this could be used to make a Steam Messenger
Excuse me as I don't know shit about reverse engineering but how did you get the .lib files?
On an unrelated note, I'm still having no luck with the logon procedure so far.
It seems like it should work, but I always get a SteamServerConnectFailure_t callback with k_EResultInvalidPassword result. I've triple checked that the password is correct, so the error is due to something else.
I hope this makes any sense:
Although I don't know why, but might the function expect a modified password (salted or something)?
Do you have an error in your code so it gives you an InvalidPassword result instead of the correct one?
Very interesting project you've got going.
I wish you nothing, but the best of luck Good Sir.
Oh my shit, we now have the ability to make an iphone app :D
If anything it could be used to make a normal Windows application with only messenger capabilities that would run normally under Wine.
And even if they are, I think the downloads are handled via a different protocol.
steam.dll isn't a .net assembly, so mono would have no clue what to do with it.
blankthemuffin was working on seeing if it was possible to use winelib to get steam.dll working on linux. If he ever gets that figured out the only remaining step would be to create a new linux version of steam.exe.
Two problems remain with this: blank hasn't managed to get winelib working, and I haven't figured out steamclient.dll logon yet.
Yeah I've hit an early roadblock with winelib, seems to be x86 vs x86_64 problems on my end, but I'll have to set up the former in a vm to test.
Oh wait, you could just use a network sniffer... dunno which option's better in this case.
I have no idea how wine/winelib works, so blank would have to answer that.
As for implementing your own version of the network protocol, that's entirely feasible. It's far easier than recreating steam.dll, but still poses it's own challenges. I posted a little bit of how I think the protocol works, so check the previous pages of this thread if you're interested.
You could see way more than, network things.
-the sound that scissors make when cutting paper-
So, is the C# version ready?