好的,所以我一直在环顾四周,但在任何地方都找不到答案。
我希望我的程序做的是每次运行它时,任务管理器中显示的名称都是随机的。
有一个名为“Liberation”的程序,当你运行它时,它会将进程名称更改为一些随机字符,如 AeB4B3wf52.tmp 之类的。我不确定它是用什么编码的,所以这可能是问题所在。
这在 C# 中可能吗?
编辑:我做了一个草率的工作,我创建了一个单独的程序,它将检查是否有一个名为“pb.dat”的文件,它将它复制到临时文件夹,将其重命名为“randomchars.tmp”并运行它.
如果有人感兴趣,请代码:
private void Form1_Load(object sender, EventArgs e)
{
try
{
if (!Directory.Exists(Environment.CurrentDirectory + @"\temp")) // Create a temp directory.
Directory.CreateDirectory(Environment.CurrentDirectory + @"\temp");
DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + @"\temp");
foreach (FileInfo f in di.GetFiles()) // Cleaning old .tmp files
{
if (f.Name.EndsWith(".tmp"))
f.Delete();
}
string charList = "abcdefghijklmnopqrstuvwxyz1234567890";
char[] trueList = charList.ToCharArray();
string newProcName = "";
for (int i = 0; i < 8; i++) // Build the random name
newProcName += trueList[r.Next(0, charList.Length)];
newProcName += ".tmp";
if (File.Exists(Environment.CurrentDirectory + @"\pb.dat")) // Just renaming and running.
{
File.Copy(Environment.CurrentDirectory + @"\pb.dat", Environment.CurrentDirectory + @"\temp\" + newProcName);
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = Environment.CurrentDirectory + @"\temp\" + newProcName;
p.UseShellExecute = false;
Process.Start(p);
}
}
catch (Exception ex)
{
MessageBox.Show("I caught an exception! This is a bad thing...\n\n" + ex.ToString(), "Exception caught!");
}
Environment.Exit(-1); // Close this program anyway.
}