Created
May 17, 2014 01:32
-
-
Save AlexArchive/a3022b5df46d477c8cdd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace Code | |
{ | |
public class XboxLogin | |
{ | |
private static void Do() | |
{ | |
var cookieContainer = new CookieContainer(); | |
var handler = new HttpClientHandler(); | |
handler.AllowAutoRedirect = true; | |
handler.CookieContainer = cookieContainer; | |
var client = new HttpClient(handler); | |
cookieContainer.Add(new Cookie("MC0", Time().ToString(), "/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("s_vi", "[CS]v1|26AD59C185011B4D-40000113004213F1[CE]", "/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("s_nr", "1297891791797", "/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("s_sess", | |
"%20s_cc%3Dtrue%3B%20s_ria%3Dflash%252011%257Csilverlight%2520not%2520detected%3B%20s_sq%3D%3B", "/", | |
".xbox.com")); | |
cookieContainer.Add(new Cookie("s_pers", | |
"%20s_vnum%3D1352674046430%2526vn%253D4%7C1352674046430%3B%20s_lastvisit%3D1324587801077%7C1419195801077%3B%20s_invisit%3Dtrue%7C1324589873289%3B", | |
"/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("UtcOffsetMinutes", "60", "/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("xbox_info", "t=3", "/", ".xbox.com")); | |
cookieContainer.Add(new Cookie("PersistentId", "0a652e56e40f42caac3ac84fad02ed01", "/", ".xbox.com")); | |
client.DefaultRequestHeaders.Add("Referer", "http://www.xbox.com/en-US/"); | |
client.DefaultRequestHeaders.Add("User-Agent", | |
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); | |
var loginUri = | |
new Uri("https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=" + Time() + | |
"&rver=6.0.5286.0&wp=MBI&wreply=https://live.xbox.com:443/xweb/live/passport/setCookies.ashx%3Frru%3Dhttp%253a%252f%252fwww.xbox.com%252fen-US%252f&flc=3d1033&lc=1033&cb=reason=0&returnUrl=http%253a%252f%252fwww.xbox.com%252fen-US%252f%253flc%253d1033&id=66262"); | |
HttpResponseMessage response = client.GetAsync(loginUri).Result; | |
string content = response.Content.ReadAsStringAsync().Result; | |
cookieContainer.Add(new Cookie("WLOpt", "act=[1]", "/", ".login.live.com")); | |
cookieContainer.Add(new Cookie("CkTst", "G" + Time(), "/", ".login.live.com")); | |
var postUrl = Regex.Match(content, "urlPost:'(?<postUrl>.+?)'").Groups["postUrl"].Value; | |
var ppftVal = Regex.Match(content, "name=\"PPFT\" id=\"i0327\" value=\"(?<ppft>.+?)\"").Groups["ppft"].Value; | |
var ppsxVal = Regex.Match(content, "j:'(?<ppsx>.+?)'").Groups["ppsx"].Value; | |
var builder = new PostDataBuilder(); | |
builder.Add("login", Constants.Email); | |
builder.Add("passwd", Constants.Password); | |
builder.Add("KMSI", "1"); | |
builder.Add("mest", "0"); | |
builder.Add("type", "11"); | |
builder.Add("LoginOptions", "3"); | |
builder.Add("PPSX", ppsxVal); | |
builder.Add("PPFT", ppftVal); | |
builder.Add("idsbho", "1"); | |
builder.Add("PwdPad", ""); | |
builder.Add("sso", ""); | |
builder.Add("i1", "1"); | |
builder.Add("i2", "1"); | |
builder.Add("i3", "12035"); | |
builder.Add("i12", "1"); | |
builder.Add("i13", "1"); | |
builder.Add("i14", "323"); | |
builder.Add("i15", "3762"); | |
builder.Add("i18", "__Login_Strings%7C1%2C__Login_Core%7C1%2C"); | |
client.DefaultRequestHeaders.Remove("Referer"); | |
client.DefaultRequestHeaders.Add("Referer", "https://login.live.com/login.srf"); | |
FormUrlEncodedContent data = builder.ToFormUrlEncodedContent(); | |
Debugger.Break(); | |
var response2 = client.PostAsync(postUrl, data).Result; | |
var content2 = response2.Content.ReadAsStringAsync().Result; | |
} | |
private static int Time() | |
{ | |
var unixTimestamp = (Int32) (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; | |
return unixTimestamp; | |
} | |
} | |
public class PostDataBuilder | |
{ | |
private readonly List<KeyValuePair<string, string>> _data = new List<KeyValuePair<string, string>>(); | |
public void Add(string key, string content) | |
{ | |
_data.Add(new KeyValuePair<string, string>(key, content)); | |
} | |
public FormUrlEncodedContent ToFormUrlEncodedContent() | |
{ | |
return new FormUrlEncodedContent(_data); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment