alex7kom / node-steam-tradeoffers

Steam Trade Offers for Node.js **NO LONGER MAINTAINED**
MIT License
288 stars 98 forks source link

Captcha #67

Closed bluejellybean closed 9 years ago

bluejellybean commented 9 years ago

I assume this means the project is pretty much dead?

If that's the case, I just wanted to thank everyone for all the hard work

maxpain commented 9 years ago

Solution.

  1. render captcha image with PhantomJS
  2. show the image with captcha for user
  3. auto-input text-field of reCaptcha
  4. retrieve token and add &captcha= param for tradeoffer.
Ax6 commented 9 years ago

I would like to point out a strange behavior for whitelisted accounts in case you happen to have the same situation. It seems that often sending a trade offer actually results in a 'error no captcha given' which won't occur on the second retry. At least this is what I noticed happening to my bot.

vudung45 commented 9 years ago

@Maxpain177 Did u make this work already?

scholtzm commented 9 years ago

@filsmick He says he had the captcha sporadically. Apparently only twice. Maybe the "whitelist" is buggy? No idea.

I hope this doesn't turn into another ghost chase. Still waiting for someone to confirm you can even become whitelisted just by trading.

EDIT. Haha, that was quick. :smile:

doktokto commented 9 years ago

Epic win. 5762 trades. No captcha anymore.

vudung45 commented 9 years ago

so it's not a ghost chase then :3

vudung45 commented 9 years ago

I dont understand why doesnt it take so long to farm ur trades up?

Sending trades consecutively doesnt work?

srabouin commented 9 years ago

@doktokto share? :dancers: @Maxpain177 To send the image to the person who sent the trade offer requires you to be friends with them though, I don't think this is a valid solution

doktokto commented 9 years ago

Bot 1 and bot 2. Bot 1 invite bot 2 to trade. When trade init bot 2 add item. When bot 1 see that item added he add item too. When bot 2 see that item added he mark that he is ready. Bot 1 mark too. Bot 2 accept. Bot 1 too. Add to bot 1 OnTradeClose() sending invite again. Each trade takes 11-16 seconds. One of bot sometimes crash (randomly), need to add try{} catch {} in that places where was error. When I started it one of bot (random) crashed after 100 trades. After try catch adding bot's crashed each 1000 trades. Maybe you will make it better.

maxpain commented 9 years ago

@vudung45. Yes

maxpain commented 9 years ago

@srabouin . on my site this image shows for user, and he inputs captcha

vudung45 commented 9 years ago

@Maxpain177 Btw how do u make the google recaptcha thing appear captcha instead of ticking the option?

maxpain commented 9 years ago

@vudung45 just text githubs162812609

yberreby commented 9 years ago

@Maxpain177 What do you mean, "just text"?

vudung45 commented 9 years ago

Because without clicking the button, it wont show the captcha

yberreby commented 9 years ago

Maybe it's in a noscript tag?... I have seen that when I worked with older reCAPTCHAs, I don't know about this one.

vudung45 commented 9 years ago

We have to wait for an answer form Maxpain then :-? How to make it present the captcha image :(

maxpain commented 9 years ago

@vudung45 PhantomJS. (page.render('captcha_231321.png'))

yberreby commented 9 years ago

@Maxpain177 I have used PhantomJS myself. Here you're rendering the page as an image and saving it as a file named "captcha_231321.png". Are you 'clicking' the checkbox with the headless browser?

maxpain commented 9 years ago

@filsmick yes.

page.evaluate(function() {
    a = document.getElementById('recaptcha-anchor');
    var e = document.createEvent('MouseEvents');
    e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    a.dispatchEvent(e);
});
yberreby commented 9 years ago

@Maxpain177 Okay, thanks.

vudung45 commented 9 years ago

So the token that google returns gonna be new captcha param right?

ippo20 commented 9 years ago

@doktokto I tried your method to mass farm trade counts, but I cannot get past 1 trade accept, after I get the item, and ask another trade, it goes to Trade Decline from Bot.cs:600 , My bot did not respond with a decline, so I must be missing something when I accepted the first trade. Did you encounter this issue? Thanks.

scholtzm commented 9 years ago

You are possibly sending the next trade request too soon while the trade is not finished.

ippo20 commented 9 years ago

@scholtzm I did Sleep 10s just to make sure, plus the trade was accepted on both bots, an item was removed and an item was added on the other. Then I called Bot.OpenTrade on the second bot for the next trade loop and Bot.OpenTrade return was True, Sadly it says Trade Decline in console.

alvinl commented 9 years ago

I just got done farming 5,504 trades and no more captcha appears!

https://cloudup.com/c_of89Er80y http://steamcommunity.com/id/trollvin

dsisco11 commented 9 years ago

Perhaps the accounts age is also taken into consideration. Consider also that any variables that go into an account being whitelisted might not be weighted linearly...

dsisco11 commented 9 years ago

Good news guys, Some of my bots got out of the CAPTCHA now. I'll list which ones can trade and how many trades they have below! === NO CAPTCHA === (Also my two oldest bots...) BillySheen: 5208 | Steam: http://steamcommunity.com/profiles/76561198147778631/ TicketTony: 5001 | Steam: http://steamcommunity.com/profiles/76561198151823380/

=== STILL HAS CAPTCHA === FabriPhile: 4139 | Steam: http://steamcommunity.com/profiles/76561198154320195/ ShinySheen: 4095 | Steam: http://steamcommunity.com/profiles/76561198154506673/

ippo20 commented 9 years ago

Got it, error in my program and it does sometimes fail, i got to loop at around 20+ then fails between 15-25, i just close all bots then open it with bat files loop every 1 min whether it fails or not.

srabouin commented 9 years ago

In the spirit of open source, one of you guys should share your bot so that the entire trading community can do that easily :D

ippo20 commented 9 years ago

@srabouin Actually, I just followed @doktokto instuctions. It was simple when you follow it to the letter

srabouin commented 9 years ago

@ippo20 I know it's simple, but a lot of people don't know how to write their own bot and would probably enjoy removing the captcha.

ippo20 commented 9 years ago

@srabouin I am ok to share, but it wont matter because if they cant write that simple code, they could use the TradeOffer feature anyway. Plus, I hate to share my code that is a copy of @doktokto I think he should share since his was more better than mine

darylcharm commented 9 years ago

@ippo20 please confirm if the 5000+ trades per bot worked for you?

@doktokto can you please share your script to us? and please also confirm if this solution fixed the captcha problem.

@dsisco11 did you generate the trades automatically (via script)? if yes, can you please share your script?

alvinl commented 9 years ago

I plan on releasing the code I used to farm trades soon. If anyone would like to help test it before I publish it feel free to add me on Steam.

dsisco11 commented 9 years ago

I would share mine but it's linked with my bots abstracted item routing class for moving around items internally between all my bots.

darylcharm commented 9 years ago

@alvinl thanks! my team already contacted you. @dsisco11 can you atleast share the logic behind your code?

ghost commented 9 years ago

@darylcharm, @alvinl pls, send me yours contact (email or other) - foozzione[dog]gmail.com

AceLewis commented 9 years ago

Ok, I don't have much time because of exams. I have contacted Steam support obviously to no avail... I have tried to email them too. Again nothing, I think farming trades must be the next best thing. @alvinl I have added you on Steam. I don't see why they don't have an easy turn off bit in the settings.

I just want to get on that whitelist.

Soni96pl commented 9 years ago

Because they don't want regular users to turn it off and cry about losing items I think.

AceLewis commented 9 years ago

@Kuba77, I just hope all of the Steam Stealer's bypass this captcha stuff quickly (apparently some have already). Although it would be nice to have a system that would stop these, captchas is not one of them. Captchas are just annoying, they don't stop bots they just cause a small fee for the bot makers.

Soni96pl commented 9 years ago

@AceLewis SteamStealer is actually really terribly written and mostly made out of different snippets found on Russian forums. Even if there was a way to bypass it which I don't think is a case I doubt they'll be able to find it. Exploit they used to trade isn't very complicated so there's really no comparision between those two.

Soni96pl commented 9 years ago

Edit: "Did you know? We currently work after the Captcha Update that Valve implemented (even the NoCaptcha Recaptcha!). We have also just opened public sales once again!"

vudung45 commented 9 years ago

@Kuba77 : I dont even get that =)). So they have found a way to bypass that or what:-?

Soni96pl commented 9 years ago

Yes, they did

vudung45 commented 9 years ago

The farming trades thing seems to be the best answer for now cause it's simple but yet not confirmed working on all accounts yet. I would like to know how the bot could render the captcha then ask the bot-user to solve the captcha

yberreby commented 9 years ago

@vudung45 PhantomJS.

vudung45 commented 9 years ago

@filsmick : I'm doin this on a different form ( not node, but jessy c# steambot), i would like to see the captcha thing showing up on my browser first in order to do my code.

edit: im reading the phantomjs document now. This is kinda new to me :3

vudung45 commented 9 years ago

@filsmick : Have u done this before, what div does the code have to do mouseevent on:-?

Soni96pl commented 9 years ago

Don't have captcha myself, but I think you can just get link to it and download.