Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2018
1,154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.51 KB | None | 0 0
  1. using InstagramAccCreator.Logger;
  2. using MahApps.Metro.Controls;
  3. using Microsoft.Win32;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Net;
  10. using System.Net.Http;
  11. using System.Text;
  12. using System.Threading;
  13. using System.Threading.Tasks;
  14. using System.Windows;
  15. using System.Windows.Controls;
  16. using System.Windows.Data;
  17. using System.Windows.Documents;
  18. using System.Windows.Input;
  19. using System.Windows.Media;
  20. using System.Windows.Media.Imaging;
  21. using System.Windows.Shapes;
  22.  
  23. namespace InstagramAccCreator
  24. {
  25.     /// <summary>
  26.     /// Interaction logic for Creator.xaml
  27.     /// </summary>
  28.     public partial class Creator : MetroWindow
  29.     {
  30.         private static Random random = new Random();
  31.         private static List<String> emails = new List<String> { "@gmail.com", "@yahoo.com", "@outlook.com", "@hotmail.com" };
  32.         private static ILogger logger = FileLogger.Instance;
  33.  
  34.         List<string> Proxies;
  35.  
  36.         public Creator()
  37.         {
  38.             InitializeComponent();
  39.             Proxies = new List<string>();
  40.  
  41.         }
  42.  
  43.         private void ProxiesBtn_Click(object sender, RoutedEventArgs e)
  44.         {
  45.             OpenFileDialog odf = new OpenFileDialog();
  46.             if (odf.ShowDialog() == true)
  47.             {
  48.                 string line = "";
  49.                 System.IO.StreamReader file = new System.IO.StreamReader(odf.FileName);
  50.                 while ((line = file.ReadLine()) != null)
  51.                 {
  52.                     Proxies.Add(line);
  53.                 }
  54.  
  55.                 file.Close();
  56.             }
  57.         }
  58.  
  59.         public static string RandomString(int length)
  60.         {
  61.             const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  62.             return new string(Enumerable.Repeat(chars, length)
  63.               .Select(s => s[random.Next(s.Length)]).ToArray());
  64.         }
  65.  
  66.         private Stack<Dictionary<string, string>> GetRandom(int amount)
  67.         {
  68.             try
  69.             {
  70.                 Stack<Dictionary<string, string>> ret = new Stack<Dictionary<string, string>>();
  71.                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://randomuser.me/api/?results=" + amount.ToString());
  72.                 request.AutomaticDecompression = DecompressionMethods.GZip;
  73.                 string json = null;
  74.                 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  75.                 using (Stream stream = response.GetResponseStream())
  76.                 using (StreamReader reader = new StreamReader(stream))
  77.                 {
  78.                     json = reader.ReadToEnd();
  79.                 }
  80.  
  81.                 var parsed = JObject.Parse(json);
  82.                 foreach (var user in parsed["results"])
  83.                 {
  84.                     Dictionary<string, string> tmp = new Dictionary<string, string>();
  85.                     tmp["username"] = (string)user["login"]["username"] + RandomString(3);
  86.                     tmp["password"] = RandomString(8);
  87.                     tmp["email"] = tmp["username"] + '.' + RandomString(3) + emails[random.Next(emails.Count)];
  88.                     tmp["name"] = (string)user["name"]["first"];
  89.                     tmp["seamless_login_enabled"] = "1";
  90.                     ret.Push(tmp);
  91.                 }
  92.  
  93.  
  94.                 return ret;
  95.             }
  96.             catch (Exception e)
  97.             {
  98.                 logger.Log(e.ToString());
  99.                 return null;
  100.             }
  101.         }
  102.  
  103.         private void AddTextLine(string text)
  104.         {
  105.             TxtBox.AppendText(text);
  106.             TxtBox.AppendText(Environment.NewLine);
  107.             Thread.Sleep(1000);
  108.         }
  109.  
  110.         private async Task<ERRORS> Register(string proxy, Dictionary<string, string> details)
  111.         {
  112.             var handler = new HttpClientHandler
  113.             {
  114.                 AllowAutoRedirect = true,
  115.                 UseCookies = true,
  116.                 CookieContainer = new CookieContainer()
  117.             };
  118.             /*
  119.             try
  120.             {
  121.                 handler.Proxy = new WebProxy(proxy);
  122.             }
  123.             catch
  124.             {
  125.                 logger.Log("Bad Proxy");
  126.                 return ERRORS.FAIL;
  127.             }
  128.      
  129.             handler.UseProxy = true;
  130.             */
  131.             var client = new HttpClient(handler);
  132.             client.BaseAddress = new Uri("https://www.instagram.com");
  133.             client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36");
  134.             client.DefaultRequestHeaders.Add("X-Instagram-AJAX", "846d5a59d9e9");
  135.             client.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest");
  136.             try
  137.             {
  138.                 await client.GetAsync("/");
  139.             }
  140.             catch
  141.             {
  142.                 logger.Log("Failed get request, probably bad proxy");
  143.                 return ERRORS.FAIL;
  144.             }
  145.  
  146.             var cookies = handler.CookieContainer.GetCookies(client.BaseAddress);
  147.             client.DefaultRequestHeaders.Add("X-CSRFToken", cookies["csrftoken"].Value);
  148.             var request = new HttpRequestMessage(HttpMethod.Post, "/accounts/web_create_ajax/");
  149.             request.Content = new FormUrlEncodedContent(details);
  150.             request.Headers.Referrer = new Uri(client.BaseAddress, "/");
  151.  
  152.             HttpResponseMessage response = null;
  153.             try
  154.             {
  155.                 response = await client.SendAsync(request);
  156.             }
  157.             catch
  158.             {
  159.                 logger.Log("Failed post request, probably bad proxy");
  160.                 return ERRORS.FAIL;
  161.             }
  162.  
  163.             var content = await response.Content.ReadAsStringAsync();
  164.             JObject info = null;
  165.             try
  166.             {
  167.                 info = JObject.Parse(content);
  168.             }
  169.             catch
  170.             {
  171.                 logger.Log("Failed parsing JSON, probably bad request");
  172.                 return ERRORS.FAIL;
  173.             }
  174.             try
  175.             {
  176.                 if (info["account_created"] != null && (bool)info["account_created"])
  177.                 {
  178.                     logger.Log("Created a new user");
  179.                     return ERRORS.SUCCESS;
  180.                 }
  181.                 else
  182.                 {
  183.                     if (info["errors"] != null && info["errors"].HasValues)
  184.                     {
  185.                         if (info["errors"]["ip"] != null)
  186.                         {
  187.                             logger.Log("Bad IP");
  188.                             logger.Log(info["errors"].ToString());
  189.                             return ERRORS.IP;
  190.                         }
  191.                         if (info["errors"]["email"] != null)
  192.                         {
  193.                             logger.Log("Bad Email: " + details["email"]);
  194.                             logger.Log(info["errors"].ToString());
  195.                             return ERRORS.EMAIL;
  196.                         }
  197.                         if (info["errors"]["username"] != null)
  198.                         {
  199.                             logger.Log("Bad User: " + details["username"]);
  200.                             logger.Log(info["errors"].ToString());
  201.                             return ERRORS.USERNAME;
  202.                         }
  203.                     }
  204.                 }
  205.             }
  206.             catch
  207.             {
  208.                 logger.Log("JSON Parsing failed");
  209.                 return ERRORS.FAIL;
  210.             }
  211.  
  212.             return ERRORS.FAIL;
  213.         }
  214.  
  215.         private void UserToFile(string proxy, Dictionary<string, string> details)
  216.         {
  217.             File.AppendAllText("results.txt", String.Format("{0}:{1}:{2}:{3}:{4}", details["username"], details["password"], details["email"], details["name"], proxy) + Environment.NewLine);
  218.         }
  219.  
  220.         private async void StartBtn_Click(object sender, RoutedEventArgs e)
  221.         {
  222.              StartBtn.IsEnabled = false;
  223.             AddTextLine("Starting...");
  224.             if (Proxies.Count == 0)
  225.                 {
  226.                    MessageBox.Show("No Proxies are loaded");
  227.                    StartBtn.IsEnabled = true;
  228.                    return;
  229.                 }
  230.  
  231.                 var users = GetRandom(20);
  232.                 int amount = 0;
  233.            
  234.                 if(! int.TryParse(Amnt.Text, out amount))
  235.                 {
  236.                     MessageBox.Show("Please type an integer");
  237.                     StartBtn.IsEnabled = true;
  238.                     return;
  239.                 }
  240.  
  241.                 foreach (var proxy in Proxies)
  242.                 {
  243.                     for (var i = 0; i < amount; i++)
  244.                     {
  245.                         if (users.Count == 0)
  246.                             users = GetRandom(20);
  247.  
  248.                         if (users == null)
  249.                         {
  250.                             MessageBox.Show("Failed getting random details");
  251.                         }
  252.  
  253.                         var user = users.Pop();
  254.                         ERRORS error =  await Register(proxy, user);
  255.  
  256.                         switch (error)
  257.                         {
  258.                             case ERRORS.SUCCESS:
  259.                                 {
  260.                                     UserToFile(proxy, user);
  261.                                     AddTextLine("User: " + user["username"] + " created");
  262.                                     break;
  263.                                 }
  264.                             case ERRORS.IP:
  265.                             case ERRORS.FAIL:
  266.                                 {
  267.                                     users.Push(user);
  268.                                     AddTextLine("Bad IP, skipping proxy");
  269.                                     i = amount;
  270.                                     break;
  271.                                 }
  272.                             case ERRORS.USERNAME:
  273.                             case ERRORS.EMAIL:
  274.                                 {
  275.                                     AddTextLine("Bad username/email, retrying with new details");
  276.                                     i--;
  277.                                     break;
  278.                                 }
  279.                         }
  280.                     }
  281.                 }
  282.             StartBtn.IsEnabled = true;
  283.         }
  284.  
  285.         enum ERRORS
  286.         {
  287.             SUCCESS,
  288.             IP,
  289.             EMAIL,
  290.             USERNAME,
  291.             FAIL
  292.         }
  293.     }
  294. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement