// 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(); } }
// 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("'")) // Fix ' in title { sanitizedName = sanitizedName.Replace("'", "'"); } 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); } } }