Jessecar96 / SteamBot

Automated bot software for interacting with Steam Trade
http://scrap.tf
MIT License
1.34k stars 910 forks source link

SteamGuard is required for trades #93

Closed Bambuk closed 12 years ago

Bambuk commented 12 years ago

Since 12/12/2012 Steam Trade system will not work on accounts with disabled SteamGuard. Is any possibility to store once entered and linked SteamGuard confirmation code?

teliosdev commented 12 years ago

Starting December 12th, Steam Trading will require that your account has had Steam Guard enabled for at least 15 days before you can trade items.

SteamGuard is already supported by the bots. If a SteamGuard code is required, an Interface level log will be shown.

StormReaper commented 12 years ago

I think he means to be able to store it like steam does so you don't need to enter it every time, which would be very good.

Bambuk commented 12 years ago

Exactly

teliosdev commented 12 years ago

The problem is, the steamguard code isn't always consistent; that, and where would we store it? I can definitely see it somewhat working if it tried what it had stored, and then asked again if it needed to, but where would it store it?

StormReaper commented 12 years ago

No it's not consistent it depends on some sort of identification of the hardware/ip/time I believe, but the way steam does it is by creating a file that is used in the process of logging in something like "ssfn8945458495459458" that's random numbers but illustrates the point. For web it's also similar, stored in a cookie i believe. Maybe this functionally isn't supported by steamkit though. I have no idea how the login process works.

Bambuk commented 12 years ago

The first question not "where", but "what" we should store. As far as i know, Steam Client generates some kind of Hardware ID and associates it with that confirmation. If bot would can generate that Hardware ID, IMO, we will need to enter that code only once. But there is need to do some research.

cwhelchel commented 12 years ago

Store it in the executable directory right with everything else. No need to get fancy. The question is what gets stored? I have a feeling (read: I have no clue what it is) its the cookies used by SteamWeb.

Please note that I didn't not read Bambuks comments before posting this

94m3k1n9 commented 12 years ago

The main problem with this is that there is no way to generate an unique HWID on linux. I already looked into this earlier and it seems that the only way to get an unique HWID crossplatform would be using the computers MAC addresses.

cwhelchel commented 12 years ago

Perhaps this may be of use. Or I may be way off mark and it has nothing to do with anything.

It writes out a username.sentryfile in a specific manner and user that same file here.

@94m3k1n9 In the SteamKit library (SteamUser.LogOn) it says the following:

// this is not a proper machine id that Steam accepts
// but it's good enough for identifying a machine
logon.Body.machine_id = Utils.GenerateMachineID();

I'm just musing here. You guys have more experience with the log in code than I.

Update: See pull request