1. Post #161
    Gold Member
    efeX's Avatar
    April 2009
    2,332 Posts
    This would be a bad thing? It could give us an open-source Steam client.
    I'm pretty sure it's not a walk in the park. That's probably what he was getting at
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1 (list)

  2. Post #162
    Gold Member
    ZeekyHBomb's Avatar
    June 2006
    3,577 Posts
    This would be a bad thing? It could give us an open-source Steam client.
    Well, you have to reverse-engineer the dlls. VoiDeD is 'just' retrieving the interfaces.

  3. Post #163
    Gold Member
    arienh4's Avatar
    August 2007
    2,403 Posts
    I'm pretty sure it's not a walk in the park. That's probably what he was getting at
    Fair enough. I thought you were implying it was bad to do rather than hard to do.

  4. Post #164
    Gold Member
    DementNeo's Avatar
    April 2006
    3,485 Posts
    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
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Dumb Dumb x 6Agree Agree x 1 (list)

  5. Post #165
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    Just write a steam friends relay server, connect to said server from your mobile device, exchange data.
    FU, that's what I was going to start working on today, and now everyone will think I stole the idea :sigh:
    Reply With Quote Edit / Delete Reply Germany Show Events Disagree Disagree x 2Dumb Dumb x 1Informative Informative x 1 (list)

  6. Post #166
    databee's Avatar
    October 2009
    506 Posts
    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
    lolno
    Reply With Quote Edit / Delete Reply Anonymous Proxy Show Events Agree Agree x 4Bad Reading Bad Reading x 1 (list)

  7. Post #167
    Gold Member
    arienh4's Avatar
    August 2007
    2,403 Posts
    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
    Then they should open up their chat protocol. They told me they would go to XMPP sometime this year, haven't heard from them since.

    Edited:

    FU, that's what I was going to start working on today, and now everyone will think I stole the idea :sigh:
    If someone provides you with an idea, it's rarely seen as stolen, you know.
    Reply With Quote Edit / Delete Reply Netherlands Show Events Agree Agree x 2Disagree Disagree x 1 (list)

  8. Post #168
    CJF
    PieClock's Avatar
    August 2006
    16,085 Posts
    It's it's possible but probably insanely hard to do, right?
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Agree Agree x 1 (list)

  9. Post #169
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    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.
    Reply With Quote Edit / Delete Reply Germany Show Events Informative Informative x 1 (list)

  10. Post #170
    Gold Member
    ZeekyHBomb's Avatar
    June 2006
    3,577 Posts
    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).

  11. Post #171
    Gold Member
    Kylegar's Avatar
    May 2005
    238 Posts
    It's it's possible but probably insanely hard to do, right?
    One of the things that VoiDeD discovered is that valve uses key-based encryption for most of it's entry level handshaking. Meaning, unless you know valve's public key, there is no way to actually login to steam with a 3rd party client.

    However, since he interfaced steam.dll, he just uses that, bypassing the need of a public key.
    Reply With Quote Edit / Delete Reply United States Show Events Informative Informative x 2 (list)

  12. Post #172
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    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.
    Reply With Quote Edit / Delete Reply United States Show Events Friendly Friendly x 2 (list)

  13. Post #173
    Gold Member
    Zero Vector's Avatar
    March 2007
    1,111 Posts
    Oh god does this mean this could be used to make a Steam Messenger
    Reply With Quote Edit / Delete Reply United States Show Events Bad Reading Bad Reading x 5Dumb Dumb x 2Late Late x 1 (list)

  14. Post #174
    walama_'s Avatar
    October 2009
    10 Posts
    Oh god does this mean this could be used to make a Steam Messenger
    Read the damn thread lol
    Reply With Quote Edit / Delete Reply Romania Show Events Agree Agree x 1Disagree Disagree x 1 (list)

  15. Post #175
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    Excuse me as I don't know shit about reverse engineering but how did you get the .lib files?

  16. Post #176
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    http://support.microsoft.com/kb/131313


    On an unrelated note, I'm still having no luck with the logon procedure so far.

    http://code.assembla.com/steamworks/...tform/main.cpp

    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.

  17. Post #177
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    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?

  18. Post #178

    October 2009
    2,847 Posts
    Very interesting project you've got going.
    I wish you nothing, but the best of luck Good Sir.
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Friendly Friendly x 3Bad Spelling Bad Spelling x 1 (list)

  19. Post #179
    Gold Member
    jmazouri's Avatar
    May 2005
    1,466 Posts
    Very interesting project you've got going.
    I wish you nothing, but the best of luck Good Sir.
    This is why commas are important.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 5 (list)

  20. Post #180

    September 2009
    245 Posts
    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
    hi my name is NeoDement and I KNOW NOTHING AT ALL as usual
    Reply With Quote Edit / Delete Reply Canada Show Events Optimistic Optimistic x 2Dumb Dumb x 2Agree Agree x 1 (list)

  21. Post #181
    Gold Member
    winsanity's Avatar
    April 2009
    1,796 Posts
    Oh my shit, we now have the ability to make an iphone app :D
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 6Bad Reading Bad Reading x 2Disagree Disagree x 1 (list)

  22. Post #182
    Gold Member
    noctune9's Avatar
    April 2008
    1,515 Posts
    Oh my shit, we now have the ability to make an iphone app :D
    It uses the steam dll, which is not very portable.

  23. Post #183
    Gold Member
    arienh4's Avatar
    August 2007
    2,403 Posts
    If anything it could be used to make a normal Windows application with only messenger capabilities that would run normally under Wine.
    Reply With Quote Edit / Delete Reply Netherlands Show Events Late Late x 1 (list)

  24. Post #184
    Gold Member
    Foda's Avatar
    April 2006
    2,726 Posts
    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.
    you may want to ask...uh... some of the people who have managed to crack steam. most of those programs are open source and you could look in those to see how they are doing it.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 1Agree Agree x 1 (list)

  25. Post #185
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    you may want to ask...uh... some of the people who have managed to crack steam. most of those programs are open source and you could look in those to see how they are doing it.
    I think the standalone downloaders aren't open source.
    And even if they are, I think the downloads are handled via a different protocol.

    It uses the steam dll, which is not very portable.
    BUT you can make a client for your own server which connects to Steam with the Steam DLL (that's what most of the mobile IM clients for mainstream protocols do anyway)

  26. Post #186
    Gold Member
    arienh4's Avatar
    August 2007
    2,403 Posts
    I think the standalone downloaders aren't open source.
    And even if they are, I think the downloads are handled via a different protocol.


    BUT you can make a client for your own server which connects to Steam with the Steam DLL (that's what most of the mobile IM clients for mainstream protocols do anyway)
    Exactly my point, Wine can make that cross-platform.

    Wait a minute, even better...
    Isn't it possible to create a program using Mono that will use the steam.dll?

    Edited:

    This may help to determine if it'd work:
    MoMA
    Reply With Quote Edit / Delete Reply Netherlands Show Events Dumb Dumb x 6 (list)

  27. Post #187
    Gold Member
    Kylegar's Avatar
    May 2005
    238 Posts
    steam.dll isn't a .net assembly, so mono would have no clue what to do with it.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 3 (list)

  28. Post #188
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    Exactly my point, Wine can make that cross-platform.
    You could, you know, just run that on a Windows server?

  29. Post #189
    Gold Member
    arienh4's Avatar
    August 2007
    2,403 Posts
    You could, you know, just run that on a Windows server?
    A Steam client? Or a relay? Either way, if I go to Linux, I will not have access to one.

    Then Wine will still be the way to go.

  30. Post #190
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    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.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 2 (list)

  31. Post #191
    blankthemuffin's Avatar
    July 2009
    1,265 Posts
    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.
    Reply With Quote Edit / Delete Reply Australia Show Events Informative Informative x 1 (list)

  32. Post #192
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    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.
    Wouldn't you be able to hack debug functions into the winelib so you could understand more about how steamclient.dll calls the Win32 API (especially networking)?
    Oh wait, you could just use a network sniffer... dunno which option's better in this case.

  33. Post #193
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    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.

  34. Post #194
    Baldr's Avatar
    July 2009
    3,886 Posts
    You could see way more than, network things.

  35. Post #195
    Gold Member
    efeX's Avatar
    April 2009
    2,332 Posts
    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.
    yes yes yes (i hope)

  36. Post #196
    DrTaxi's Avatar
    September 2009
    2,599 Posts
    I posted a little bit of how I think the protocol works, so check the previous pages of this thread if you're interested.
    Why would you need to know that for implementing your own protocol? It can be completely independent
    Reply With Quote Edit / Delete Reply Germany Show Events Bad Reading Bad Reading x 1 (list)

  37. Post #197
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Why would you need to know that for implementing your own protocol? It can be completely independent
    I meant your own implementation of the protocol valve uses.

  38. Post #198
    Gold Member
    Gbps's Avatar
    December 2008
    3,612 Posts
    -the sound that scissors make when cutting paper-
    Reply With Quote Edit / Delete Reply United States Show Events Optimistic Optimistic x 2Disagree Disagree x 1Bad Reading Bad Reading x 1 (list)

  39. Post #199
    Gold Member
    Diaklu's Avatar
    August 2007
    1,236 Posts
    So, is the C# version ready?
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Bad Reading Bad Reading x 2 (list)

  40. Post #200
    Gold Member
    compwhizii's Avatar
    February 2007
    8,442 Posts
    "closedsteamworks | Official home of CSW project | Website shutdown. So-called project leader and mastermind arrested and indicted with copyright infringement."

    Bad news people.
    god damnt