About a week ago I received word that version 1.2 of YCC Bot Maker had stopped working. This was not a huge surprise as Yahoo! continuously changes its registration process and YCC Bot Maker is very dependant on the data held in the registration page. I hoped to have a fix put out fairly quickly but this time I am stuck and have yet to find a solution.
From what I can gather, Yahoo! has not changed any of the pages or any of the processes used during registration. One day it was working and the next it was broken. This leads to be believe that Yahoo! is doing some sort of new browser profiling or timing analysis. YCC Bot Maker uses the HttpWebRequest object built into .NET. By adding accept, referer, user agent, and others I can fairly approximate the look of IE7.
I start Fiddler (http://www.fiddlertool.com/fiddler/) and make a side by side comparison of a session with IE7 and then YCC Bot Maker. The requests are almost identical except a few header locations are swapped.
Here is the last request during the registration process using IE7 on the India server. The response shows a congratulations page for creating a new account.
POST /registration;_ylt=Amw.PhwB5E.stLUBnuRzxoSZ2PAI HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-silverlight, */*
Referer: https://edit.india.yahoo.com/registration?.intl=us&new=1&.done=http%3A//mail.yahoo.com&.src=ym&.v=0&.u=3ou4grd43ek4p&partner=&.partner=&pkg=&stepid=&.p=&promo=&.last=
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
Host: edit.india.yahoo.com
Content-Length: 807
Connection: Keep-Alive
Pragma: no-cache
Cookie: B=4dnko1h43ek4p&b=3&s=97
u=5b178pd43ek5n&dracs=&t=x2F6Q4.MzeGZRlr35zVb1DkywcQjtqkCMrdWMjcL5jX.V6Y1do4hqQ8aOF2HAHDw3jr30lHHDANXTIXGXaohokYjurJtWrgBEDE3ucfh2EOavo0VGwzarjnQ4VJVw_kLYlX4.XVpbLNai8H1BhVbwb8.iOvNBnMSdx1yaaDHdSh6zml1DMIEHZ143m0LGzz8Rxn6nnHe8JcWdRh1en0AJC.s9eYumSrm1taEZAoQ_SoCEt00C8MtUQ–%7EB&done=http%3A%2F%2Fmail.yahoo.com&last=&partner=yahoo_default&intl=us&src=ym&.scrumb=&jsenabled=0&preferredcontent=us&firstname=sadfdas&secondname=ewerq&gender=m&mm=2&dd=1&yyyy=1981&country=us&postalcode=58443&yahooid=dfk58443lkalsdfk&domain=yahoo.com&password=bobobob&passwordconfirm=bobobob&altemail=&secquestion=Who+was+your+childhood+hero%3F&secquestionanswer=dsfdsfadfs&cword=fw8nyvl&cdata=ftqaZeJZFelVDTGYXguGQO75qbdYepa6qbxfs5c2jew_iXlBPSPrIVt8DMAhTLjTWv7KGDDVEErJLca0hg–&showc=1&tos_agreed=y&IAgreeBtn=Create+My+Account
Here is the same output from YCC Bot Maker on the India server. This time I receive a “please try this code instead” and a failed attempt. Additionally, if I make another request with the previous failed attempt using the new CAPTCHA, I get a successful account creation page.
POST /registration;_ylt=AkbfFrpAnjNO5TMJr36fEHeZ2PAI HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-silverlight, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
Content-Type: application/x-www-form-urlencoded
Referer: https://edit.india.yahoo.com/registration?.intl=us&new=1&.done=http%3A//mail.yahoo.com&.src=ym&.v=0&.u=ee7n00143f8gg&partner=&.partner=&pkg=&stepid=&.p=&promo=&.last=
Host: edit.india.yahoo.com
Cookie: B=11uird143f8gg&b=3&s=2v
Content-Length: 804
Connection: Keep-Alive
u=f1p49q543f8gj&dracs=&t=c.kVhRIoP.HFU6QfWH.b0CftVs9X73rAw.U_hBx.y9JCxffF2ctaHKrOcaKQnOBNm7iClR402hHW8RM8BozEdxaxki05iRoJ.Dag.P3_jRAw9QILVBTONHiCwpdt50_E0q81D9Nd16qrsR7tpnSvMJ6zZhJP0hRIBkNgFzXDuR8l4A9ndFkQtuMvJnrtFyGdngja5d16AAi0Tq5VeYqKBDTWuTm6iIlQurTLJyvYQ0EPYbheZ3_esw–%7EB&done=http%3A%2F%2Fmail.yahoo.com&last=&partner=yahoo_default&intl=us&src=ym&.scrumb=&jsenabled=0&preferredcontent=us&firstname=MQYhLVgujy&secondname=BrXTSVyGEk&gender=m&mm=5&dd=12&yyyy=1947&country=us&postalcode=40076&yahooid=igbl49U&domain=yahoo.com&password=Nb6s5cR&passwordconfirm=Nb6s5cR&altemail=&secquestion=Where+did+you+meet+your+spouse%3F&secquestionanswer=7IiKII&cword=8teyj4e&cdata=5wtKjOJZFemg3x.fc7zjW2fNv.BxMnIccglRTwNkIaMYMDzucE_SZ7cB5ZHefjZetpKvKLtJpHLekJpb4g–&showc=1&tos_agreed=y&IAgreeBtn=Create+My+Account
You can see that the requests are exactly the same with the exception of user data and Yahoo! specific variables. I have no way of explaining this because from everything I know it should. I need your help getting the next version of YCC Bot Maker working. If you have suggestions or know of some new technology Yahoo! is using please let me know.