Пример #1
0
        // Get online payloads
        private static void GetOnlinePayloads()
        {
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                // Retrieve website page source
                string pageSource = Main.Client.DownloadString(PayloadsUrl);

                // Break Payloads Page into list
                string tempPageSource = WebsiteScraper.GetBetween(pageSource, "<ul>", "</ul>");

                // Count number of items in list
                OnlinePayloadCount = Regex.Matches(tempPageSource, "<li>").Cast <Match>().Count();
            }
        }
Пример #2
0
        // Download Payloads
        private static void Download()
        {
            //Load Wiki-Payload Page
            string pageSource = Main.Client.DownloadString(PayloadsUrl);
            var    payloads   = new List <Payload>();
            var    list       = new List <string>();

            // Each link on Wiki-Payload Page
            foreach (Payload payload in Parse(pageSource))
            {
                Payload tempPayload = payload;

                // Only save /wiki/Payload--- links
                if (!payload.Link.Contains("hak5darren/USB-Rubber-Ducky/wiki/Payload---"))
                {
                    continue;
                }

                //Clean up payload name
                var sanitizedName = "";
                if (sanitizedName.Contains("Payload - ")) // Remove Payload - from title
                {
                    string replace = sanitizedName.Replace("Payload - ", "");
                }
                sanitizedName = payload.Name.Replace("/", " ").Replace("-", " ");
                sanitizedName = sanitizedName.SanitizeForFile().Replace("Payload   ", "");
                if (sanitizedName.Contains("&#39;")) // Fix ' in title
                {
                    sanitizedName = sanitizedName.Replace("&#39;", "'");
                }
                sanitizedName = Regex.Replace(sanitizedName, @"(^\w)|(\s\w)", m => m.Value.ToUpper());
                // Capitalize each word in title
                if (sanitizedName.StartsWith(" ")) // Remove first char if string starts with a space
                {
                    sanitizedName = sanitizedName.Remove(0, 1);
                }

                try
                {
                    // Assign path
                    string path = PayloadsDirectory + sanitizedName + PayloadExtension;
                    if (File.Exists(path))
                    {
                        tempPayload.Code = File.ReadAllText(path); // Read payload file
                    }
                    else
                    {
                        // Cleanup payload code
                        tempPayload.Code = WebsiteScraper.ExtractPayloadCode(payload);
                        tempPayload.Code = tempPayload.Code.Replace("\n", "\r\n");

                        // Check if payload has empty code
                        if (tempPayload.Code.Length != 0)
                        {
                            File.WriteAllText(path, tempPayload.Code);
                        }
                    }

                    // Download Completed!
                    IsUpdateAvailable = false;
                }
                catch (Exception ex)
                {
                    ShowErrorMessage("Unable to download file/s.", ex.Message);
                }
            }
        }