Visual Studio .Net: Now with more Viruses
News.com breaks the story (and 8000 readers submit) that Microsoft distributed Nimda-infected copies of Visual Studio .Net in Korea. I don't even know what to say here; nothing seems adequate, except to point out that "trustworthy computing" does not seem to have had any effect whatsoever. News.com just updated their story to point out that it probably won't infect the people who installed Visual Studio .Net, but it's still a rather nasty faux pas for a company that's supposed to be cleaning up its act.
Perl is for pussies. Eat this, CLIT.
Oh, when I read this first I thought that Microsoft was distributing the Nimda code as one of thier sample projects. That would be cool, a virus creation wizard. This reminds me of the story a while back about someone modifying a virus to check for security holes so the could be filled.
Look this hooman:
s c. coffee/index.html
http://www.cnn.com/2002/TECH/science/06/14/cool
HA HA hooman try use afreekinized hunnee bee to pollinate coffeee. Try to tame killer bugs hooman, not work. Not even #1 attack method of bug armee afreekinized hunnee bee. Good soldier hunnee bee, kill manee hooman but not main weppun hunnee bee. Also good reconnosince mishun hunnee bee. Main weppun bug armee classified. #2 weppun bug armee, own beeg braine stoopiditee of hooman. #3 weppun bug armee can't reveel sorree.
Good coffee enjoy wile can hooman. HA HA! Will betray you at end, afreekinized hunnee bee! HA HA! Seek out hooman hunnee bee phermone trail manee steeneeng steengers swarmeeng steengers of afreekinized hunnee bee watch out hooman! Also sense fear hooman hunee bee! Good fear sensor, not escape hooman! Play with fire hooman!!
BUG-SPLAT! @-@
Bwaaaaaaahaaaaaaahaaaaaaahaaaaahaaaahaaaahaahaha ha hahahah!!
Microsoft. Where do you want to go today? Microsoft is a registered trademark of Microsoft Corporation. All other trademarks are the property of their respective owners. This virus is valuable intellectual property and is protected by copyright law and international treaty. Do not make illegal copies of this virus.
FreeBSD rocks.
Thus releasing this article may help them sell their AV software...
Anything stupid coming from Micro$hit anymore, does not surprise me...
They suck and always will...
"Look where we worship" -- Jim Morrison
Looks like that new development shutdown up there to clean stuff up and beef up security was really well spent.
That's what MS would say. Those slant-eye bastards could never do anything right. We, MS could never make such a mistake. Well unless we bet on the U.S beating Korea! ;-P
Stuff like this is bad for everyone. This was obviosly sabotage (just like most of their bugs) Flaming them just encourages more Gates-haters to do shît like this. I think most M$-haters would actually like M$ products if they didn't come from Microsoft. Most peoples' hatred is based on ignorance and brainwashing - like this artical does (if it comes from M$, it must be bad). I'de love for M$ to do a test, and secretly release some software (Open-spurce of course) without letting anyone know that it was developed by M$.
More than one virus != viruses
Virii, people, virii.
if(!toilet_paper) roll.replace(new roll);
Published under the TPL (Trolling Public License)
using SystemRoboTroll using System.DrawingRoboTroll using System.CollectionsRoboTroll using System.ComponentModelRoboTroll using System.Windows.FormsRoboTroll using System.DataRoboTroll using System.Data.OleDbRoboTroll using System.Runtime.InteropServicesRoboTroll namespace Slashman { public class MainFrm : System.Windows.Forms.Form { [DllImport("winmm.dll")] public static extern long PlaySound(String lpszname, long hModule, long dwFlags)RoboTroll private string latestStory = ""RoboTroll private string latestStoryDisplay = ""RoboTroll private string latestURL = ""RoboTroll private string latestTime = ""RoboTroll private string lastStory = ""RoboTroll private int selTroll = 1RoboTroll private System.Random rand = new System.Random()RoboTroll private DateTime nextCheck = System.DateTime.Now + System.TimeSpan.FromSeconds(6)RoboTroll private System.Windows.Forms.Label label1RoboTroll private System.Windows.Forms.LinkLabel linkURLRoboTroll private System.Windows.Forms.Label labelTimeRoboTroll private System.Windows.Forms.Button buttonCheckRoboTroll private bool trying = falseRoboTroll private System.Timers.Timer theTimerRoboTroll private System.Windows.Forms.Label labelNextCheckRoboTroll private string mainURL = "http:private string replyURL = "http:private System.Data.DataTable trollTableRoboTroll private System.Data.DataSet trollSetRoboTroll private System.Data.DataTable contextTableRoboTroll private System.Data.DataSet contextSetRoboTroll private System.Windows.Forms.Button btnPostRoboTroll private bool isposting = falseRoboTroll private int preinctroll = 0RoboTroll private string dirBase = ""RoboTroll private System.Windows.Forms.Button btnOptionsRoboTroll private System.Windows.Forms.ContextMenu trayMenuRoboTroll private System.Windows.Forms.MenuItem menuItem1RoboTroll private System.Windows.Forms.MenuItem menuItem2RoboTroll private System.Windows.Forms.MenuItem menuItem3RoboTroll protected System.Windows.Forms.NotifyIcon tIconRoboTroll private System.ComponentModel.IContainer componentsRoboTroll private OleDbConnection dbConnRoboTroll private OleDbDataAdapter dbTrollsAdapterRoboTroll private OleDbDataAdapter dbContextAdapterRoboTroll public MainFrm() { InitializeComponent()RoboTrollR oboTroll this.linkURL = new System.Windows.Forms.LinkLabel()RoboTroll this.label1 = new System.Windows.Forms.Label()RoboTroll this.labelTime = new System.Windows.Forms.Label()RoboTroll this.labelNextCheck = new System.Windows.Forms.Label()RoboTroll this.buttonCheck = new System.Windows.Forms.Button()RoboTroll this.theTimer = new System.Timers.Timer()RoboTroll this.btnOptions = new System.Windows.Forms.Button()RoboTroll this.btnPost = new System.Windows.Forms.Button()RoboTroll this.tIcon = new System.Windows.Forms.NotifyIcon(this.components)Ro boTroll this.trayMenu = new System.Windows.Forms.ContextMenu()RoboTroll this.menuItem1 = new System.Windows.Forms.MenuItem()RoboTroll this.menuItem3 = new System.Windows.Forms.MenuItem()RoboTroll this.menuItem2 = new System.Windows.Forms.MenuItem()RoboTroll ((System.ComponentModel.ISupportInitialize)(this.t heTimer)).BeginInit()RoboTroll this.SuspendLayout()RoboTroll this.linkURL.Location = new System.Drawing.Point(16, 48)RoboTroll this.linkURL.Name = "linkURL"RoboTroll this.linkURL.Size = new System.Drawing.Size(432, 23)RoboTroll this.linkURL.TabIndex = 0RoboTroll this.linkURL.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHand ler(this.linkURL_LinkClicked)RoboTroll this.label1.Location = new System.Drawing.Point(16, 16)RoboTroll this.label1.Name = "label1"RoboTroll this.label1.Size = new System.Drawing.Size(80, 23)RoboTroll this.label1.TabIndex = 1RoboTroll this.label1.Text = "Last Check :"RoboTroll this.labelTime.Location = new System.Drawing.Point(104, 16)RoboTroll this.labelTime.Name = "labelTime"RoboTroll this.labelTime.Size = new System.Drawing.Size(128, 23)RoboTroll this.labelTime.TabIndex = 2RoboTroll this.labelTime.Text = "00:00"RoboTroll this.labelNextCheck.Location = new System.Drawing.Point(240, 16)RoboTroll this.labelNextCheck.Name = "labelNextCheck"RoboTroll this.labelNextCheck.Size = new System.Drawing.Size(208, 23)RoboTroll this.labelNextCheck.TabIndex = 3RoboTroll this.labelNextCheck.Text = "Next Check in 0 Seconds"RoboTroll this.buttonCheck.Location = new System.Drawing.Point(376, 88)RoboTroll this.buttonCheck.Name = "buttonCheck"RoboTroll this.buttonCheck.TabIndex = 4RoboTroll this.buttonCheck.Text = "Check Now"RoboTroll this.buttonCheck.Click += new System.EventHandler(this.buttonCheck_Click)RoboTro ll this.theTimer.Enabled = trueRoboTroll this.theTimer.Interval = 1000RoboTroll this.theTimer.SynchronizingObject = thisRoboTroll this.theTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnFireTimer )RoboTroll this.btnOptions.Location = new System.Drawing.Point(200, 88)RoboTroll this.btnOptions.Name = "btnOptions"RoboTroll this.btnOptions.TabIndex = 5RoboTroll this.btnOptions.Text = "Options"RoboTroll this.btnOptions.Click += new System.EventHandler(this.btnOptions_Click)RoboTrol l this.btnPost.Location = new System.Drawing.Point(288, 88)RoboTroll this.btnPost.Name = "btnPost"RoboTroll this.btnPost.TabIndex = 7RoboTroll this.btnPost.Text = "Post Now"RoboTroll this.btnPost.Click += new System.EventHandler(this.btnPost_Click)RoboTroll this.tIcon.ContextMenu = this.trayMenuRoboTroll this.tIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("tIcon. Icon")))RoboTroll this.tIcon.Text = "SlashMan"RoboTroll this.tIcon.Visible = trueRoboTroll this.tIcon.DoubleClick += new System.EventHandler(this.DblClickTrayIcon)RoboTrol l this.trayMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem1, this.menuItem3, this.menuItem2})RoboTroll this.menuItem1.DefaultItem = trueRoboTroll this.menuItem1.Index = 0RoboTroll this.menuItem1.Text = "Open..."RoboTroll this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click)RoboTroll this.menuItem3.Index = 1RoboTroll this.menuItem3.Text = "-"RoboTroll this.menuItem2.Index = 2RoboTroll this.menuItem2.Text = "Exit"RoboTroll this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click)RoboTroll this.AutoScaleBaseSize = new System.Drawing.Size(5, 13)RoboTroll this.ClientSize = new System.Drawing.Size(472, 125)RoboTroll this.Controls.AddRange(new System.Windows.Forms.Control[] { this.btnPost, this.btnOptions, this.buttonCheck, this.labelNextCheck, this.labelTime, this.label1, this.linkURL})RoboTroll this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this. Icon")))RoboTroll this.MaximizeBox = falseRoboTroll this.Name = "MainFrm"RoboTroll this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScree nRoboTroll this.Text = "SlashMan"RoboTroll this.SizeChanged += new System.EventHandler(this.SizeChang)RoboTroll ((System.ComponentModel.ISupportInitialize)(this.t heTimer)).EndInit()RoboTroll this.ResumeLayout(false)RoboTroll } #endregion [STAThread] static void Main() { Application.Run(new MainFrm())RoboTroll } private void ReadDB() { try { dirBase = System.Diagnostics.Process.GetCurrentProcess().Mai nModule.FileNameRoboTroll dirBase = dirBase.Substring(0, dirBase.LastIndexOf("\\"))RoboTroll System.IO.Directory.CreateDirectory(dirBase)RoboTr oll string mdbFile = "Provider=Microsoft.Jet.OLEDB.4.0RoboTrollData Source=" + dirBase + "\\Slashman.mdb"RoboTroll dbConn = new OleDbConnection(mdbFile)RoboTroll dbTrollsAdapter = new OleDbDataAdapter()RoboTroll OleDbCommand dbInsert = new OleDbCommand("INSERT INTO trolls (ID, Subject, Body) Values(?, ?, ?)", dbConn)RoboTroll dbInsert.Parameters.Add("ID", OleDbType.Numeric, 0, "ID")RoboTroll dbInsert.Parameters.Add("Subject", OleDbType.VarChar, 255, "Subject")RoboTroll dbInsert.Parameters.Add("Body", OleDbType.Char, 65535, "Body")RoboTroll OleDbCommand dbUpdate = new OleDbCommand("UPDATE trolls SET Subject=?, Body=? WHERE ID=?", dbConn)RoboTroll dbUpdate.Parameters.Add("Subject", OleDbType.VarChar, 255, "Subject")RoboTroll dbUpdate.Parameters.Add("Body", OleDbType.Char, 65535, "Body")RoboTroll dbUpdate.Parameters.Add("ID", OleDbType.Numeric, 0, "ID")RoboTroll OleDbCommand dbDel = new OleDbCommand("DELETE FROM trolls WHERE ID=?", dbConn)RoboTroll dbDel.Parameters.Add(new OleDbParameter("ID", OleDbType.Numeric, 0, "ID"))RoboTroll dbTrollsAdapter.InsertCommand = dbInsertRoboTroll dbTrollsAdapter.UpdateCommand = dbUpdateRoboTroll dbTrollsAdapter.DeleteCommand = dbDelRoboTroll dbTrollsAdapter.SelectCommand = new OleDbCommand("SELECT * FROM trolls", dbConn)RoboTroll dbContextAdapter = new OleDbDataAdapter()RoboTroll dbContextAdapter.SelectCommand = new OleDbCommand("SELECT * FROM Context", dbConn)RoboTroll dbConn.Open()RoboTroll trollSet = new System.Data.DataSet("trollset")RoboTroll trollTable = new DataTable("trolls")RoboTroll dbTrollsAdapter.Fill(trollTable)RoboTroll trollSet.Tables.Add(trollTable)RoboTroll if (trollTable.Rows.Count == 0) { System.Windows.Forms.MessageBox.Show("The trolls database is missing or empty.")RoboTroll throw new System.Exception("The trolls database is missing or empty.")RoboTroll } contextSet = new System.Data.DataSet("contextset")RoboTroll contextTable = new DataTable("Context")RoboTroll dbContextAdapter.Fill(contextTable)RoboTroll contextSet.Tables.Add(contextTable)RoboTroll this.Visible = trueRoboTroll this.Update()RoboTroll } finally { dbConn.Close()RoboTroll } } private bool SendMail(string from, string to, string subject, string body) { try { System.Web.Mail.MailMessage theMail = new System.Web.Mail.MailMessage()RoboTroll theMail.From = "your@email.com"RoboTroll theMail.To = toRoboTroll theMail.Subject = subjectRoboTroll theMail.Body = bodyRoboTroll theMail.BodyFormat = System.Web.Mail.MailFormat.TextRoboTroll System.Web.Mail.SmtpMail.SmtpServer = "your.server.com"RoboTroll System.Web.Mail.SmtpMail.Send(theMail)RoboTroll return trueRoboTroll } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message)Rob oTroll return falseRoboTroll } } private void UpdateForm() { this.labelTime.Text = latestTimeRoboTroll this.linkURL.Text = latestStoryDisplayRoboTroll } private string GetTaggedText(string from, string tagBegin, string tagEnd) { int begin = from.IndexOf(tagBegin)RoboTroll if (begin == -1) throw new System.Exception("tagBegin not found")RoboTroll string retstr = from.Substring(begin + tagBegin.Length)RoboTroll int end = retstr.IndexOf(tagEnd)RoboTroll if (end == -1) throw new System.Exception("tagEnd not found")RoboTroll return retstr.Substring(0, end)RoboTroll } private string StripTags(string from) { string ret = fromRoboTroll int begin = ret.IndexOf("= 0) { int end = ret.IndexOf(">", begin)RoboTroll if (end == -1) breakRoboTroll ret = ret.Remove(begin, (end-begin)+1)RoboTroll begin = ret.IndexOf("= trollTable.Rows.Count) SlashCfg.curTrollIndex = 1RoboTroll selTroll = SlashCfg.curTrollIndexRoboTroll } else { selTroll = SlashCfg.curTrollRoboTroll } if (selTroll >= trollTable.Rows.Count) { throw new System.Exception("The selected troll is greater than the number of trolls in the table.")RoboTroll } subj = trollTable.Rows[selTroll]["Subject"].ToString()Rob oTroll body = trollTable.Rows[selTroll]["Body"].ToString()RoboTr oll } if (SlashCfg.appendPostfix) { body += "
SlashCfg.SetDefaults()RoboTroll ReadDB()RoboTroll } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose()RoboTroll } } base.Dispose( disposing )RoboTroll } #region Windows Form Designer generated code private void InitializeComponent() { this.components = new System.ComponentModel.Container()RoboTroll System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MainFrm))
" + SlashCfg.appendPosttextRoboTroll } PrePro(ref subj)RoboTroll PrePro(ref body)RoboTroll } private void PostComment() { /* string xtheSubj, xtheBodyRoboTroll GetTrollData(out xtheSubj, out xtheBody)RoboTroll System.Windows.Forms.MessageBox.Show(xtheBody, xtheSubj)RoboTroll returnRoboTroll */ if (isposting) returnRoboTroll isposting = trueRoboTroll PlaySound(Application.StartupPath+"\\alert.wav", 0, 1)RoboTroll try { string theSubj, theBodyRoboTroll /* MANUAL MODE */ GetTrollData(out theSubj, out theBody)RoboTroll UpdateStatus("Reading comments page...")RoboTroll string pageText = DoHttpGet(latestURL)RoboTroll string tagSID = ""RoboTroll string SID = GetTaggedText(pageText, tagSID, tagEND)RoboTroll string CID = GetTaggedText(pageText, tagCID, tagEND)RoboTroll string PID = GetTaggedText(pageText, tagPID, tagEND)RoboTroll string replyPage = replyURL + "?"RoboTroll replyPage += "sid=" + SID + "&"RoboTroll replyPage += "pid=" + PID + "&"RoboTroll replyPage += "cid=" + CID + "&"RoboTroll replyPage += "op=Reply&mode=flat&commentsort=0&threshold=-1"Rob oTroll UpdateStatus("Requesting Reply Page...")RoboTroll pageText = DoHttpGet(replyPage)RoboTroll SID = GetTaggedText(pageText, tagSID, tagEND)RoboTroll PID = GetTaggedText(pageText, tagPID, tagEND)RoboTroll string KEY = GetTaggedText(pageText, tagKEY, tagEND)RoboTroll System.Collections.Specialized.NameValueCollection nvs = new System.Collections.Specialized.NameValueCollection ()RoboTroll nvs.Add("sid", SID)RoboTroll nvs.Add("pid", PID)RoboTroll nvs.Add("mode", "flat")RoboTroll nvs.Add("startat", "")RoboTroll nvs.Add("threshold", "-1")RoboTroll nvs.Add("commentsort", "0")RoboTroll nvs.Add("formkey", KEY)RoboTroll nvs.Add("rlogin", "1")RoboTroll nvs.Add("unickname", SlashCfg.username)RoboTroll nvs.Add("upasswd", SlashCfg.password)RoboTroll nvs.Add("op", "Submit")RoboTroll nvs.Add("posttype", "1")RoboTroll /* MANUALMODE */ UpdateStatus("Waiting 20 seconds...")RoboTroll System.Threading.Thread.Sleep(21000)RoboTroll nvs.Add("postersubj", theSubj)RoboTroll nvs.Add("postercomment", theBody)RoboTroll pageText = DoHttpPost(replyURL, nvs)RoboTroll string tagErrorResult = ""RoboTroll string tagPostResult = "FACE=\"arial,helvetica\" SIZE=\"4\" COLOR=\"#FFFFFF\"> "RoboTroll string tagPostResultEnd = ""RoboTroll string PostResult = GetTaggedText(pageText, tagPostResult, tagPostResultEnd)RoboTroll bool isOK = (pageText.IndexOf(tagErrorResult) == -1)RoboTroll if ((!isOK) && (PostResult == "Post Comment")) { try { PostResult = GetTaggedText(pageText, tagErrorResult, ".")RoboTroll } catch {} while ((PostResult.Length > 0) && ((PostResult[0] 127))) PostResult = PostResult.Substring(1)RoboTroll } if (isOK) { CID = GetTaggedText(pageText, tagCID, tagEND)RoboTroll string link = "http:} else { } isposting=falseRoboTroll } catch (System.Exception) { isposting=falseRoboTroll throwRoboTroll } UpdateStatus("Post Complete.")RoboTroll } private void TryRead() { if (trying) returnRoboTroll trying = trueRoboTroll string tagTitle = @"FACE=""arial,helvetica"" SIZE=""4"" COLOR=""#FFFFFF""> "RoboTroll string tagTitleEnd = ""RoboTroll string tagUrl = "
("RoboTroll string tagUrlEnd = "Read More..."RoboTroll UpdateStatus("Checking Now...")RoboTroll bool retryPost = falseRoboTroll try { string pagestr = DoHttpGet(mainURL)RoboTroll latestStory = StripTags(GetTaggedText(pagestr, tagTitle, tagTitleEnd))RoboTroll latestStoryDisplay = latestStoryRoboTroll latestURL = GetHref(GetTaggedText(pagestr, tagUrl, tagUrlEnd))RoboTroll latestTime = System.DateTime.Now.ToString()RoboTroll if ((lastStory.Length>0) && (latestStory != lastStory)) { PlayAlert()RoboTroll PostComment()RoboTroll } } catch (System.Exception e) { if (e.Message.IndexOf("(404)")>0) { SlashCfg.curTrollIndex =preinctrollRoboTroll retryPost = trueRoboTroll } latestStoryDisplay = e.MessageRoboTroll latestURL = "ERROR"RoboTroll latestTime = "ERROR"RoboTroll } if (retryPost == false) { lastStory = latestStoryRoboTroll nextCheck = DateTime.Now.AddSeconds(SlashCfg.checkIntervalMin + rand.Next(SlashCfg.checkIntervalMax - SlashCfg.checkIntervalMin))RoboTroll } else { nextCheck = DateTime.Now.AddSeconds(5)RoboTroll } UpdateForm()RoboTroll trying = falseRoboTroll } private void buttonCheck_Click(object sender, System.EventArgs e) { TryRead()RoboTroll } private void OnFireTimer(object sender, System.Timers.ElapsedEventArgs e) { if (trying) returnRoboTroll if (isposting) returnRoboTroll if (DateTime.Now > nextCheck) { TryRead()RoboTroll } UpdateStatus("Next Check in " + (int)((nextCheck - DateTime.Now).TotalSeconds) + " Seconds.")RoboTroll } private void NavigateLink() { try{System.Diagnostics.Process.Start(latestURL)Rob oTroll} catch {} } private void PlayAlert() { } private void linkURL_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { NavigateLink()RoboTroll } private void btnPost_Click(object sender, System.EventArgs e) { if ((latestURL == null) || (latestURL == "ERROR") || (latestURL.Length == 0)) { System.Windows.Forms.MessageBox.Show("Must get the post first! (Press Check Now)", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Stop)RoboTroll returnRoboTroll } try { PostComment()RoboTroll } catch {} } private void btnOptions_Click(object sender, System.EventArgs e) { Slashman.OptionsFrm opts = new Slashman.OptionsFrm()RoboTroll opts.trollTable = trollTableRoboTroll opts.ShowDialog(this)RoboTroll if (opts.pressedOK) { dbTrollsAdapter.Update(trollTable)RoboTroll trollTable.AcceptChanges()RoboTroll } else { trollTable.RejectChanges()RoboTroll } } private void ShowMe() { this.Visible = trueRoboTroll this.Activate()RoboTroll this.WindowState = System.Windows.Forms.FormWindowState.NormalRoboTro ll } private void HideMe() { this.Visible = falseRoboTroll } private void menuItem1_Click(object sender, System.EventArgs e) { ShowMe()RoboTroll } private void menuItem2_Click(object sender, System.EventArgs e) { this.Close()RoboTroll } private void SizeChang(object sender, System.EventArgs e) { if (this.WindowState == System.Windows.Forms.FormWindowState.Minimized) { HideMe()RoboTroll } } private void DblClickTrayIcon(object sender, System.EventArgs e) { ShowMe()RoboTroll } } }