示例#1
0
        public static EAccountResult CreateAccount(ref AccountData account)
        {
            EAccountResult result = EAccountResult.Success;
            PostResult     postResult;

            PostRequest mClient = new PostRequest("http://ragnarokonline.fr/inscription/index.php", "http://ragnarokonline.fr/inscription/index.php");

            mClient.Type = PostRequest.PostTypeEnum.Get;
            postResult   = mClient.Post();
            // apply cookies
            mClient.Cookies = postResult.Cookies;

            // visit register page (need to fetch new cookies)
            mClient.Url        = "http://ragnarokonline.fr/inscription/inscrire.php";
            mClient.UrlReferer = "http://ragnarokonline.fr/inscription/inscrire.php";
            postResult         = mClient.Post();
            // apply cookies..
            mClient.Cookies = postResult.Cookies;

            // download captcha
            mClient.Url = "http://ragnarokonline.fr/inscription/securimage/securimage_show.php";
            postResult  = mClient.Post();
            // apply cookies.. again
            //mClient.Cookies = postResult.Cookies;
            string captchaPath = Path.GetTempFileName();

            File.Delete(captchaPath);
            captchaPath += ".png";
            File.WriteAllBytes(captchaPath, postResult.ResponseData);

            // open captcha
            Process p = Process.Start(captchaPath);

            Console.Write("\t\tCaptcha code: ");
            account.CaptchaCode = Console.ReadLine();

            // Only if we have admin rights, we may kill the process
            System.Security.Principal.WindowsPrincipal pricipal = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent());
            if (pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator) == true)
            {
                try {
                    if (p.CloseMainWindow() == false)
                    {
                        // fall trough
                        throw new Exception("Failed to close captcha image process");
                    }
                } catch (Exception ex) {
                    // Failed to close.. so try minimize it
                    try {
                        System.Windows.Forms.Form frm = (System.Windows.Forms.Form)System.Windows.Forms.Form.FromHandle(p.MainWindowHandle);
                        if (frm != null)
                        {
                            frm.WindowState = System.Windows.Forms.FormWindowState.Minimized;
                        }
                    } catch {
                        // Nothing worked.. damn it
                        // only native code may help now, but just to kill or minimize a process.. no way
                    }
                }
            }

            mClient.Url     = "http://ragnarokonline.fr/inscription/verifMail.php";
            mClient.Cookies = postResult.Cookies;
            mClient.PostItems.Add("email", account.Email);
            mClient.PostItems.Add("name", account.Prename);
            mClient.PostItems.Add("surname", account.Name);
            mClient.PostItems.Add("jour", account.BirthDay.ToString());
            mClient.PostItems.Add("mois", account.BirthMonth.ToString());
            mClient.PostItems.Add("annee", account.BirthYear.ToString());
            mClient.PostItems.Add("sexe", "1");             // Männlich
            mClient.PostItems.Add("captcha_code", account.CaptchaCode);

            postResult = mClient.Post();

            Regex re    = new Regex("&resultat=([^&]*)&login=([^&]*)&pass=([^&]*)");
            Match match = re.Match(postResult.ResponseString);

            if (match.Success == false)
            {
                return(CreateAccount(ref account));
            }

            account.Login    = match.Groups[2].Captures[0].Value;
            account.Password = match.Groups[3].Captures[0].Value;

            int requestResult = int.Parse(match.Groups[1].Captures[0].Value);

            result = (EAccountResult)requestResult;


            return(result);
        }
示例#2
0
		public static EAccountResult CreateAccount(ref AccountData account) {
			EAccountResult result = EAccountResult.Success;
			PostResult postResult;

			PostRequest mClient = new PostRequest("http://ragnarokonline.fr/inscription/index.php", "http://ragnarokonline.fr/inscription/index.php");
			mClient.Type = PostRequest.PostTypeEnum.Get;
			postResult = mClient.Post();
			// apply cookies
			mClient.Cookies = postResult.Cookies;

			// visit register page (need to fetch new cookies)
			mClient.Url = "http://ragnarokonline.fr/inscription/inscrire.php";
			mClient.UrlReferer = "http://ragnarokonline.fr/inscription/inscrire.php";
			postResult = mClient.Post();
			// apply cookies..
			mClient.Cookies = postResult.Cookies;

			// download captcha
			mClient.Url = "http://ragnarokonline.fr/inscription/securimage/securimage_show.php";
			postResult = mClient.Post();
			// apply cookies.. again
			//mClient.Cookies = postResult.Cookies;
			string captchaPath = Path.GetTempFileName();
			File.Delete(captchaPath);
			captchaPath += ".png";
			File.WriteAllBytes(captchaPath, postResult.ResponseData);

			// open captcha
			Process p = Process.Start(captchaPath);
			Console.Write("\t\tCaptcha code: ");
			account.CaptchaCode = Console.ReadLine();

			// Only if we have admin rights, we may kill the process
			System.Security.Principal.WindowsPrincipal pricipal = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent());
			if (pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator) == true) {
				try {
					if (p.CloseMainWindow() == false) {
						// fall trough
						throw new Exception("Failed to close captcha image process");
					}
				} catch (Exception ex) {
					// Failed to close.. so try minimize it
					try {
						System.Windows.Forms.Form frm = (System.Windows.Forms.Form)System.Windows.Forms.Form.FromHandle(p.MainWindowHandle);
						if (frm != null) {
							frm.WindowState = System.Windows.Forms.FormWindowState.Minimized;
						}
					} catch {
						// Nothing worked.. damn it
						// only native code may help now, but just to kill or minimize a process.. no way
					}
				}
			}

			mClient.Url = "http://ragnarokonline.fr/inscription/verifMail.php";
			mClient.Cookies = postResult.Cookies;
			mClient.PostItems.Add("email", account.Email);
			mClient.PostItems.Add("name", account.Prename);
			mClient.PostItems.Add("surname", account.Name);
			mClient.PostItems.Add("jour", account.BirthDay.ToString());
			mClient.PostItems.Add("mois", account.BirthMonth.ToString());
			mClient.PostItems.Add("annee", account.BirthYear.ToString());
			mClient.PostItems.Add("sexe", "1"); // Männlich
			mClient.PostItems.Add("captcha_code", account.CaptchaCode);

			postResult = mClient.Post();

			Regex re = new Regex("&resultat=([^&]*)&login=([^&]*)&pass=([^&]*)");
			Match match = re.Match(postResult.ResponseString);
			if (match.Success == false) {
				return CreateAccount(ref account);
			}

			account.Login = match.Groups[2].Captures[0].Value;
			account.Password = match.Groups[3].Captures[0].Value;

			int requestResult = int.Parse(match.Groups[1].Captures[0].Value);
			result = (EAccountResult)requestResult;


			return result;
		}
示例#3
0
		public static void Main(string[] args) {
			WriteLine("------------------------------------------------------", ConsoleColor.Blue);
			WriteLine("[    France Ragnarok Account Creator - by GodLesZ    ]", ConsoleColor.Blue);
			WriteLine("------------------------------------------------------", ConsoleColor.Blue);
			WriteLine();

			Write("\t#1 fetch email..");
			string email = MailGenerator.createMail();
			if (email == "") {
				WriteLine(" failed! PLease report this to GodLesZ.", ConsoleColor.Red);
				CleanUp();
				Console.ReadKey();
				return;
			}
			WriteLine(" done", ConsoleColor.Green);

			Write("\t#2 build credentials..");
			AccountData userData = new AccountData(email);
			WriteLine(" done", ConsoleColor.Green);

			WriteLine("\t#3 create account..");
			try {
				EAccountResult res;
				if ((res = AccountHelper.CreateAccount(ref userData)) != EAccountResult.Success) {
					WriteLine("\tfailed to create account: " + res, ConsoleColor.Red);
					CleanUp();
					Console.ReadKey();
					return;
				}
			} catch (Exception ex) {
				WriteLine("\tfailed to create account: internal exception", ConsoleColor.Red);
				CleanUp();
				Console.WriteLine(ex);

				Console.ReadKey();
				return;
			}

			try {
				Write("\t#4 create file..");
				using (StreamWriter Writer = new StreamWriter("Account.txt", true)) {

					Writer.WriteLine("#----------- Account Daten ---------");
					Writer.WriteLine("# E-Mail  :  " + userData.Email);
					Writer.WriteLine("# Login   :  "******"# Password:  "******" done", ConsoleColor.Green);

			} catch (Exception WriterEX) {
				WriteLine("\failed to create file: internal exception", ConsoleColor.Red);
				CleanUp();
				Console.WriteLine(WriterEX);
				Console.ReadKey();
				return;
			}

			CleanUp();
			WriteLine();
			WriteLine("----------------------------------------", ConsoleColor.Green);

			WriteLine("Email    : " + userData.Email);
			WriteLine("Login    : "******"Password : "******"----------------------------------------", ConsoleColor.Green);
			Write("Wait for FRO email.. ");

			int i = 0;
			do {
				Console.Write("{0}{1}", (i > 0 ? "\b" : ""), mCursorData[i % mCursorData.Length]);

				if (MailGenerator.CheckResponseEmail(userData.Email) == true) {
					Write("\b received & validated!", ConsoleColor.Green);
					break;
				}

				System.Threading.Thread.Sleep(200);
				i++;
			} while (true);

			WriteLine();
			WriteLine();
			WriteLine("------------------------------------------------------", ConsoleColor.Blue);
			WriteLine("[                GodLesZ <3 Blaubeere                ]", ConsoleColor.Blue);
			WriteLine("------------------------------------------------------", ConsoleColor.Blue);
			Console.ReadKey();
		}