Итак, я хотел настроить мой маршрутизатор, он дерьмовый безымянный, поэтому нет возможности подключиться к консольному порту.Единственный способ будет через браузер.Нет, я уже настроил пароль и даже записал его.Оказывается, я, вероятно, написал это неправильно, так что да ...
Я попробовал каждую комбинацию и все еще безуспешно.Поскольку я не хочу переустанавливать маршрутизатор по причинам, за исключением случаев, когда мне это действительно нужно, я решил написать небольшую программу, чтобы попробовать все возможности.Конечно, я не могу быть обеспокоен фактическим перебором, так как выбранный мной пароль был довольно надежным.Поэтому вместо этого я решил заставить эту программу написать словарь на основе пароля, который я записал.Это означало бы, заменить «a» на «A» или «@» и т. Д.
Я написал небольшой концептуальный код, но действительно застрял в части рекурсии, где пароли фактически сохраняются вfile.
Поэтому я спрашиваю, может ли кто-нибудь поделиться каким-нибудь алгоритмом fo, который бы облегчил это.
Мой подход заключается в следующем:
-Создать список массивов символов-для каждого символа ввода создайте массив с несколькими возможностями для этого символа.(скажем, символ «a», создайте массив символов со всеми упомянутыми выше возможностями, сохраните этот массив символов в списке, переберите все возможности и сохраните каждый из них в текстовом файле
-useHydra или похожий на грубую силу маршрутизатор.
был бы очень признателен за помощь, позаботьтесь, ребята
позаботьтесь, ребята
using System;
using System.Collections.Generic;
using System.Collections;
using System.IO;
namespace strGen
{
class Program
{
static List<char[]> ls { get; set; }
static string Path { get; set; }
static string input { get; set; }
static char[] inputChars { get; set; }
static void Main(string[] args)
{
Console.Write("Enter tip: ");
input = Console.ReadLine();
Console.Write("Enter path: ");
Path = Console.ReadLine();
inputChars = input.ToCharArray();
MakeList(inputChars);
}
/// <summary>
/// makes list of all possible characters, for every character in a character array
/// </summary>
/// <param name="inputChars"></param>
static void MakeList(char[] inputChars)
{
ls = new List<char[]>();
foreach (char c in inputChars)
{
char cU;
char cL;
char[] tmp;
if (char.IsLetter(c))
{
if (c == 'a' | c == 'A')
{
tmp = new char[3];
if (char.IsUpper(c))
{
cL = char.ToLower(c);
cU = c;
}
else
{
cL = c;
cU = char.ToUpper(c);
}
tmp[0] = cL;
tmp[1] = cU;
tmp[2] = '@';
}
else if (c == 's' | c == 'S')
{
tmp = new char[3];
if (char.IsUpper(c))
{
cL = char.ToLower(c);
cU = c;
}
else
{
cL = c;
cU = char.ToUpper(c);
}
tmp[0] = cL;
tmp[1] = cU;
tmp[2] = '5';
}
else
{
tmp = new char[2];
if (char.IsUpper(c))
{
cL = char.ToLower(c);
cU = c;
}
else
{
cL = c;
cU = char.ToUpper(c);
}
tmp[0] = cL;
tmp[1] = cU;
}
}
else if (char.IsDigit(c))
{
if (c == '1')
{
tmp = new char[2];
tmp[0] = c;
tmp[1] = '!';
}
else
{
tmp = new char[1];
tmp[0] = c;
}
}
else if (c == '!')
{
tmp = new char[2];
tmp[0] = c;
tmp[1] = '1';
}
else
{
tmp = new char[1];
tmp[0] = c;
}
ls.Add(tmp);
}
}
static void Append(string str)
{
File.AppendAllText(Path, str + "\\r \\n");
}
static void Calc(string str, int index)
{
for(int i = 0; i<ls[index].Length;i++)
{
if (index < ls.Count)
{
}
}
}
}
}