Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Threading;
- using System.Net;
- using System.IO;
- using System.Text.RegularExpressions;
- using System.Web;
- namespace Aeriagames_Bot
- {
- public partial class Form1 : Form
- {
- // Range to scan
- List<int> scanRange = new List<int>();
- // Usernames to send message
- static public List<string> userNames = new List<string>();
- // Accounts+Proxy+Cookies | name - object
- Dictionary<string, SpamAcc> accountDic = new Dictionary<string, SpamAcc>();
- // Random
- Random rand = new Random();
- // Message info
- static public string subject = "Brak tematu";
- static public string message = "Brak wiadomości";
- // Stats
- static public int usernameFound = 0;
- static public int messageSent = 0;
- // deathbycaptcha.com
- static public DeathByCaptcha.Client dbcClient = new DeathByCaptcha.SocketClient(String.Empty, String.Empty);
- // Stop state
- bool stopState = false;
- // use proxy
- bool useProxy = false;
- public Form1()
- {
- InitializeComponent();
- Thread mainThread = new Thread(new ThreadStart(MainThread));
- mainThread.IsBackground = true;
- mainThread.Start();
- }
- private void MainThread()
- {
- while (true)
- {
- Thread.Sleep(500);
- lock (accountDic)
- {
- string accountNameToDelete = null;
- foreach (SpamAcc account in accountDic.Values)
- {
- if (!account.logged)
- {
- accountNameToDelete = account.login;
- break;
- }
- // Update last error
- foreach (DataGridViewRow dataGridRow in dataGridView1.Rows)
- {
- if (dataGridRow.Cells[0].Value.ToString() == account.login)
- {
- this.dataGridView1.Invoke((MethodInvoker)(() => dataGridRow.Cells[3].Value = account.lastError));
- }
- }
- }
- if (accountNameToDelete != null)
- {
- string proxyForNewAcc = accountDic[accountNameToDelete].proxyAddress;
- accountDic.Remove(accountNameToDelete);
- int rowIndexToDelete = -1;
- foreach (DataGridViewRow dataGridRow in dataGridView1.Rows)
- {
- if (dataGridRow.Cells[0].Value.ToString() == accountNameToDelete)
- {
- rowIndexToDelete = dataGridRow.Index;
- }
- }
- if (rowIndexToDelete > -1)
- {
- this.dataGridView1.Invoke((MethodInvoker)(() => this.dataGridView1.Rows.RemoveAt(rowIndexToDelete)));
- // Get new account pass
- try
- {
- // Get password/login
- string othersAccounts = null;
- using (StreamReader streamReader = new StreamReader("accounts.TXT"))
- {
- int tries = 0;
- while (++tries < 4)
- {
- string accInfo = streamReader.ReadLine();
- if (accInfo == null) { break; }
- string accName = accInfo.Split(':')[0];
- string password = accInfo.Split(':')[1];
- if (CreateNewAccount(accName, password, proxyForNewAcc))
- {
- this.AddNewAccount(accName, password, proxyForNewAcc);
- break;
- }
- }
- othersAccounts = streamReader.ReadToEnd();
- }
- if (othersAccounts != null)
- {
- using (StreamWriter streamWriter = new StreamWriter("accounts.TXT"))
- streamWriter.Write(othersAccounts);
- }
- }
- catch { }
- }
- }
- }
- try
- {
- this.Invoke((MethodInvoker)(() => this.toolStripStatusLabel2.Text = usernameFound.ToString()));
- this.Invoke((MethodInvoker)(() => this.toolStripStatusLabel3.Text = messageSent.ToString()));
- this.Invoke((MethodInvoker)(() => this.toolStripStatusLabel7.Text = ProxyFactory.workingProxyDic.Count.ToString()));
- }
- catch { }
- }
- }
- private void toolStripButton1_Click(object sender, EventArgs e)
- {
- toolStripButton1.Enabled = false;
- // Clear old variables
- stopState = false;
- scanRange.Clear();
- userNames.Clear();
- usernameFound = 0;
- messageSent = 0;
- // Create range
- string[] rangeInfo = textBox1.Text.Split('-');
- int fromRange = Convert.ToInt32(rangeInfo[0]);
- int toRange = Convert.ToInt32(rangeInfo[1]);
- Logger.AddMessage("New scan range: " + fromRange + " - " + toRange);
- for (int i = fromRange; i <= toRange; i++)
- scanRange.Add(i);
- Thread scanThread = new Thread(new ThreadStart(ScanThread));
- scanThread.IsBackground = true;
- scanThread.Start();
- Thread spamThread = new Thread(new ThreadStart(SpamThread));
- spamThread.IsBackground = true;
- spamThread.Start();
- }
- private bool CheckStopState()
- {
- if (stopState)
- {
- while (NetworkClass.connectionActive > 0)
- Thread.Sleep(1000);
- return true;
- }
- return false;
- }
- private void ScanThread()
- {
- while (scanRange.Count > 0 || NetworkClass.connectionActive > 0)
- {
- Thread.Sleep(10);
- if (CheckStopState()) { break; }
- if (scanRange.Count == 0) { continue; }
- while (!NetworkClass.GetDownloadSpot())
- Thread.Sleep(10);
- int numberToScan = 0;
- lock (scanRange)
- {
- numberToScan = scanRange[0];
- scanRange.RemoveAt(0);
- }
- List<SpamAcc> accountList = null;
- lock (accountDic)
- {
- while (accountDic.Count == 0)
- Thread.Sleep(10);
- accountList = accountDic.Values.ToList();
- }
- // Get account
- SpamAcc accToSend = accountList[rand.Next(0, accountList.Count)];
- Logger.AddMessage("Opening page: http://www.aeriagames.com/buddylist/" + numberToScan);
- HttpWebRequest requestHttp = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/buddylist/" + numberToScan, false);
- requestHttp.CookieContainer = accToSend.cookies;
- if (!String.IsNullOrWhiteSpace(accToSend.proxyAddress)) { requestHttp.Proxy = new WebProxy(accToSend.proxyAddress); }
- requestHttp.Credentials = new NetworkCredential("ukaszbara", "12345");
- requestHttp.Proxy.Credentials = new NetworkCredential("ukaszbara", "12345");
- /*
- if (useProxy)
- {
- string proxyAddress = null;
- while (proxyAddress == null)
- {
- proxyAddress = ProxyFactory.GetProxy();
- Thread.Sleep(10);
- }
- requestHttp.Proxy = new WebProxy(proxyAddress);
- }
- */
- IAsyncResult result_async = requestHttp.BeginGetResponse(new AsyncCallback(Scan_async), new object[2] { requestHttp, numberToScan });
- }
- Logger.AddMessage("Scanning completed");
- }
- public void Scan_async(IAsyncResult asynchronousResult)
- {
- object[] objectParameters = asynchronousResult.AsyncState as object[];
- HttpWebRequest requestHttp_async = objectParameters[0] as HttpWebRequest;
- int numberToScan_async = (int)objectParameters[1];
- string resultPage = null;
- bool badTry = false;
- try
- {
- using (HttpWebResponse response = (HttpWebResponse)requestHttp_async.EndGetResponse(asynchronousResult))
- {
- using (Stream responseStream = response.GetResponseStream())
- {
- using (StreamReader reader = new StreamReader(responseStream))
- {
- resultPage = reader.ReadToEnd();
- }
- }
- }
- }
- catch(WebException webEx)
- {
- if (webEx.Response != null)
- {
- if (((HttpWebResponse)webEx.Response).StatusCode != HttpStatusCode.NotFound) { badTry = true; }
- }
- if (badTry) { Logger.AddMessage("Can't open page: " + requestHttp_async.Address.ToString() + " | Error: " + webEx.Message); }
- resultPage = null;
- }
- WebProxy usedProxy = requestHttp_async.Proxy as WebProxy;
- if (resultPage != null)
- {
- /*
- try
- {
- using (StreamWriter streamWriter = new StreamWriter("website.txt", true))
- {
- streamWriter.WriteLine(resultPage);
- }
- }
- catch { }
- */
- Match userName_S = Regex.Match(resultPage, @"href=""//www.aeriagames.com/user/([^<]*)/""");
- if (userName_S.Success)
- {
- string userName = userName_S.Groups[1].Value;
- lock (userNames)
- {
- userNames.Add(userName);
- Logger.AddMessage("Username found: " + userName);
- Interlocked.Increment(ref usernameFound);
- }
- }
- }
- if (badTry) { ProxyFactory.ReportProxyTry(usedProxy, false); }
- else
- {
- ProxyFactory.ReportProxyTry(usedProxy, true);
- }
- NetworkClass.RelaseDownloadSpot();
- }
- private void SpamThread()
- {
- while (scanRange.Count > 0 || NetworkClass.connectionActive > 0 || userNames.Count > 0)
- {
- Thread.Sleep(10);
- if (CheckStopState()) { break; }
- if (userNames.Count == 0) { continue; }
- while (!NetworkClass.GetDownloadSpot())
- Thread.Sleep(1);
- string userNameToScan = String.Empty;
- lock (userNames)
- {
- userNameToScan = userNames[0];
- userNames.RemoveAt(0);
- }
- List<SpamAcc> accountList = null;
- lock (accountDic)
- {
- while (accountDic.Count == 0)
- Thread.Sleep(10);
- accountList = accountDic.Values.ToList();
- }
- // Get account
- SpamAcc accToSend = accountList[rand.Next(0, accountList.Count)];
- Logger.AddMessage("Opening page: http://www.aeriagames.com/privatemsg/msgto/" + HttpUtility.UrlEncode(userNameToScan));
- HttpWebRequest requestHttp = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/privatemsg/msgto/" + HttpUtility.UrlEncode(userNameToScan), false);
- requestHttp.CookieContainer = accToSend.cookies;
- if (!String.IsNullOrWhiteSpace(accToSend.proxyAddress)) { requestHttp.Proxy = new WebProxy(accToSend.proxyAddress); }
- requestHttp.Credentials = new NetworkCredential("ukaszbara", "12345");
- requestHttp.Proxy.Credentials = new NetworkCredential("ukaszbara", "12345");
- requestHttp.ServicePoint.Expect100Continue = false;
- IAsyncResult result_async = requestHttp.BeginGetResponse(new AsyncCallback(accToSend.Spam_async), new object[2] { requestHttp, userNameToScan });
- }
- this.Invoke((MethodInvoker)(() => this.toolStripButton1.Enabled = true));
- this.Invoke((MethodInvoker)(() => this.toolStripButton3.Enabled = true));
- this.Invoke((MethodInvoker)(() => this.toolStripButton3.Text = "Stop"));
- Logger.AddMessage("Spamming completed");
- }
- private void button1_Click(object sender, EventArgs e)
- {
- if (!Form1.dbcClient.User.LoggedIn)
- {
- Form1.dbcClient = new DeathByCaptcha.SocketClient(textBox8.Text, textBox9.Text);
- if (!Form1.dbcClient.User.LoggedIn)
- MessageBox.Show("Wrong login/password for DeathByCaptcha." + Environment.NewLine + "Can't add new Account.", "Error");
- }
- if (Form1.dbcClient.User.LoggedIn)
- {
- this.button1.Enabled = false;
- this.button1.Text = "Adding";
- ThreadPool.QueueUserWorkItem((objectParameter) =>
- {
- AddNewAccount(textBox4.Text, textBox5.Text, textBox6.Text);
- this.button1.Invoke((MethodInvoker)(() => this.button1.Enabled = true));
- this.button1.Invoke((MethodInvoker)(() => this.button1.Text = "Add"));
- });
- }
- }
- private void AddNewAccount(string login, string password, string proxy)
- {
- SpamAcc newAcc = new SpamAcc(login, password, proxy);
- if (newAcc.Login())
- {
- if (!accountDic.ContainsKey(newAcc.login))
- {
- this.dataGridView1.Invoke((MethodInvoker)(() => this.dataGridView1.Rows.Add(new object[] { newAcc.login, newAcc.password, newAcc.proxyAddress })));
- accountDic.Add(newAcc.login, newAcc);
- Logger.AddMessage("New account loaded: " + newAcc.login + " - " + newAcc.password + " (" + newAcc.proxyAddress + ")");
- }
- else { MessageBox.Show("This account was already added", "Can't add this account"); }
- }
- else { MessageBox.Show("Login failed. Please check login/password.", "Can't add new account"); }
- }
- private void textBox7_TextChanged(object sender, EventArgs e)
- {
- Int32.TryParse(textBox7.Text, out NetworkClass.connectionMax);
- }
- private void textBox2_TextChanged(object sender, EventArgs e)
- {
- Form1.subject = textBox2.Text;
- }
- private void textBox3_TextChanged(object sender, EventArgs e)
- {
- Form1.message = textBox3.Text ;
- }
- private void toolStripButton2_Click(object sender, EventArgs e)
- {
- if (!Form1.dbcClient.User.LoggedIn)
- {
- Form1.dbcClient = new DeathByCaptcha.SocketClient(textBox8.Text, textBox9.Text);
- if (!Form1.dbcClient.User.LoggedIn)
- MessageBox.Show("Wrong login/password for DeathByCaptcha." + Environment.NewLine + "Can't add new Account.", "Error");
- }
- if (!Form1.dbcClient.User.LoggedIn)
- return;
- this.toolStripButton2.Enabled = false;
- this.toolStripButton2.Text = "Creating ...";
- ThreadPool.QueueUserWorkItem((objectParameter) =>
- {
- // Get new account pass
- try
- {
- // Get password/login
- string othersAccounts = null;
- using (StreamReader streamReader = new StreamReader("accounts.TXT"))
- {
- int tries = 0;
- while (++tries < 4)
- {
- string accInfo = streamReader.ReadLine();
- if (accInfo == null) { break; }
- string accName = accInfo.Split(':')[0];
- string password = accInfo.Split(':')[1];
- if (CreateNewAccount(accName, password, String.Empty))
- {
- this.AddNewAccount(accName, password, String.Empty);
- break;
- }
- }
- othersAccounts = streamReader.ReadToEnd();
- }
- if (othersAccounts != null)
- {
- using (StreamWriter streamWriter = new StreamWriter("accounts.TXT"))
- streamWriter.Write(othersAccounts);
- }
- }
- catch { }
- this.button1.Invoke((MethodInvoker)(() => this.toolStripButton2.Enabled = true));
- this.button1.Invoke((MethodInvoker)(() => this.toolStripButton2.Text = "Create Account"));
- });
- }
- private bool CreateNewAccount(string accountName, string password, string proxyAddress)
- {
- Logger.AddMessage("Trying to create new ACC: " + accountName + " - " + password + " (" + proxyAddress + ")");
- CookieContainer creatingAccCookies = new CookieContainer();
- int tries = 0;
- while (++tries < 4)
- {
- HttpWebRequest createAccRequest = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/account/signup", false);
- createAccRequest.CookieContainer = creatingAccCookies;
- createAccRequest.ServicePoint.Expect100Continue = false;
- if (!String.IsNullOrWhiteSpace(proxyAddress)) { createAccRequest.Proxy = new WebProxy(proxyAddress); }
- NetworkClass.SendGetRequest(createAccRequest);
- createAccRequest = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/account/signup", true);
- createAccRequest.CookieContainer = creatingAccCookies;
- createAccRequest.ServicePoint.Expect100Continue = false;
- if (!String.IsNullOrWhiteSpace(proxyAddress)) { createAccRequest.Proxy = new WebProxy(proxyAddress); }
- // Get Captcha Code
- ReCaptcha newReCaptcha = new ReCaptcha("6LcR-MUSAAAAAODqgJEVRJl-lPlhEfZqxaEzRgRq");
- if (newReCaptcha.IsSuccess())
- {
- string captchaCode = newReCaptcha.SolveCaptcha();
- string captchaId = newReCaptcha.uniqueCaptchaId;
- StringBuilder postParameters = new StringBuilder();
- NetworkClass.AddPostParameter(ref postParameters, "edit[method]", String.Empty);
- NetworkClass.AddPostParameter(ref postParameters, "edit[destination]", String.Empty);
- NetworkClass.AddPostParameter(ref postParameters, "edit[mail]", accountName + "@gmail.com");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][month]", "1");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][day]", "1");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][year]", "1989");
- NetworkClass.AddPostParameter(ref postParameters, "recaptcha_challenge_field", captchaId);
- NetworkClass.AddPostParameter(ref postParameters, "recaptcha_response_field", captchaCode);
- NetworkClass.AddPostParameter(ref postParameters, "edit[form_id]", "account_signup");
- string createAccResult = NetworkClass.SendPostRequest(createAccRequest, NetworkClass.GetPostData(postParameters));
- if (createAccResult == null) { continue; }
- if (createAccResult.Contains("edit[name]"))
- {
- tries = 0;
- while (++tries < 4)
- {
- createAccRequest = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/account/signup2", true);
- createAccRequest.CookieContainer = creatingAccCookies;
- createAccRequest.ServicePoint.Expect100Continue = false;
- if (!String.IsNullOrWhiteSpace(proxyAddress)) { createAccRequest.Proxy = new WebProxy(proxyAddress); }
- postParameters = new StringBuilder();
- NetworkClass.AddPostParameter(ref postParameters, "edit[mail]", accountName + "@gmail.com");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][month]", "1");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][day]", "1");
- NetworkClass.AddPostParameter(ref postParameters, "edit[birth][year]", "1989");
- NetworkClass.AddPostParameter(ref postParameters, "edit[name]", accountName);
- NetworkClass.AddPostParameter(ref postParameters, "edit[pass]", "!23qweasD");
- NetworkClass.AddPostParameter(ref postParameters, "edit[form_id]", "account_signup2");
- createAccResult = NetworkClass.SendPostRequest(createAccRequest, NetworkClass.GetPostData(postParameters));
- if (createAccResult == null) { continue; }
- if (createAccResult.Contains("signupCompleteBox"))
- {
- Logger.AddMessage("[Creating ACC] New account was created.");
- string userId = String.Empty;
- Match userId_S = Regex.Match(createAccResult, @"user/(\d+)/edit");
- if (userId_S.Success) { userId = userId_S.Groups[1].Value; }
- string[] avatars = Directory.GetFiles("avatars");
- if (avatars.Length > 0)
- {
- FileInfo avatarFile = new FileInfo(avatars[rand.Next(0, avatars.Length)]);
- tries = 0;
- while (++tries < 4)
- {
- // Get token id
- HttpWebRequest avatarChangeRequest = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/user/" + userId + "/edit", false);
- avatarChangeRequest.CookieContainer = creatingAccCookies;
- avatarChangeRequest.ServicePoint.Expect100Continue = false;
- if (!String.IsNullOrWhiteSpace(proxyAddress)) { avatarChangeRequest.Proxy = new WebProxy(proxyAddress); }
- string avatarChangeResponse = NetworkClass.SendGetRequest(avatarChangeRequest);
- if (avatarChangeResponse != null)
- {
- string tokenId = String.Empty;
- Match tokenId_S = Regex.Match(avatarChangeResponse, @"name=""edit\[form_token\]"".*?value=""(.*?)""");
- if (tokenId_S.Success) { tokenId = tokenId_S.Groups[1].Value; }
- newReCaptcha = new ReCaptcha("6LcR-MUSAAAAAODqgJEVRJl-lPlhEfZqxaEzRgRq");
- if (newReCaptcha.IsSuccess())
- {
- captchaCode = newReCaptcha.SolveCaptcha();
- captchaId = newReCaptcha.uniqueCaptchaId;
- BoundaryClass boundary = new BoundaryClass();
- boundary.InsertString("edit[fname]", String.Empty);
- boundary.InsertString("edit[lname]", String.Empty);
- boundary.InsertString("edit[gender]", "M");
- boundary.InsertString("edit[birth][month]", "1");
- boundary.InsertString("edit[birth][day]", "1");
- boundary.InsertString("edit[birth][year]", "1989");
- boundary.InsertString("edit[city]", String.Empty);
- boundary.InsertString("edit[country]", "US");
- boundary.InsertString("edit[language]", "en");
- boundary.InsertString("edit[picture_key]", String.Empty);
- boundary.InsertFile("edit[picture_upload]", avatarFile, "image/png");
- boundary.InsertString("edit[form_token]", tokenId);
- boundary.InsertString("edit[form_id]", "user_edit");
- boundary.InsertString("recaptcha_challenge_field", captchaId);
- boundary.InsertString("recaptcha_response_field", captchaCode);
- boundary.InsertString("op", "Submit");
- boundary.CloseBoundary();
- tries = 0;
- while (++tries < 4)
- {
- avatarChangeRequest = NetworkClass.CreateHttpAgent("http://www.aeriagames.com/user/" + userId + "/edit", false);
- avatarChangeRequest.CookieContainer = creatingAccCookies;
- avatarChangeRequest.ServicePoint.Expect100Continue = false;
- if (!String.IsNullOrWhiteSpace(proxyAddress)) { avatarChangeRequest.Proxy = new WebProxy(proxyAddress); }
- avatarChangeRequest.Method = "POST";
- avatarChangeRequest.ContentType = boundary.GetContentType();
- avatarChangeResponse = NetworkClass.SendPostRequest(avatarChangeRequest, boundary.GetBoundaryData());
- if (avatarChangeResponse.Contains("The changes have been saved.")) { break; }
- }
- if (avatarChangeResponse.Contains("The changes have been saved.")) { break; }
- }
- }
- }
- }
- return true;
- }
- else
- {
- Logger.AddMessage("[Creating ACC] Error in second step.");
- }
- }
- }
- else
- {
- Logger.AddMessage("[Creating ACC] Error in first step.");
- }
- }
- else
- {
- Logger.AddMessage("[Creating ACC] Can't open recaptcha image.");
- }
- }
- Logger.AddMessage("[Creating ACC] Unable to create new acc after 4 tries.");
- return false;
- }
- private void toolStripButton3_Click(object sender, EventArgs e)
- {
- stopState = true;
- toolStripButton3.Enabled = false;
- toolStripButton3.Text = "Wait ...";
- }
- private void exitToolStripMenuItem_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- private void checkBox1_CheckedChanged(object sender, EventArgs e)
- {
- this.useProxy = checkBox1.Checked;
- }
- private void deleteAccountToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Int32 rowToDelete = dataGridView1.Rows.GetFirstRow(DataGridViewElementStates.Selected);
- if (rowToDelete >= 0)
- {
- string accountName = dataGridView1.Rows[rowToDelete].Cells[0].Value.ToString();
- lock (accountDic)
- {
- if (accountDic.ContainsKey(accountName))
- {
- accountDic.Remove(accountName);
- }
- }
- dataGridView1.Rows.RemoveAt(rowToDelete);
- dataGridView1.ClearSelection();
- }
- }
- private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Right)
- {
- var hti = dataGridView1.HitTest(e.X, e.Y);
- if (hti.RowIndex >= 0 && hti.ColumnIndex >= 0)
- {
- dataGridView1.ClearSelection();
- dataGridView1.Rows[hti.RowIndex].Selected = true;
- }
- }
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- }
- private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement