Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Генерация комбинаций

Ответить
Настройки темы
[решено] Генерация комбинаций

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Скажите пожалуйста, можно ли средствами автоита сгенереровать .тхт документ с всеми возможными комбинациями клавиатуры от 6 до 20 символов, на каждой новой строчке новая комбинация?

-------
Хочу научиться писать драйвера на с++


Отправлено: 21:43, 23-01-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата morgan1991:
можно ли средствами автоита сгенереровать .тхт документ с всеми возможными комбинациями клавиатуры от 6 до 20 символов »
Можно. Но как понимать «возможными комбинациями клавиатуры от 6 до 20 символов»? Можно пример подобной комбинации?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:56, 23-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Цитата Creat0R:
Можно пример подобной комбинации? »
;ijd;gjj
;jnx;dgnh
jdjjdkgkkrtjh
kdjfngjj
лорир
жлдовар
54524енкнеан5

Обсалютно любые комбинации, на обоих языках.

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:35, 23-01-2009 | #3


Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


Можно попробовать так.
Код: Выделить весь код
HotKeySet("{esc}","es")
$file=FileOpen("comb.txt",1)
Dim $alph[61]
$alph[0]="a"
$alph[1]="b"
$alph[2]="c"
$alph[3]="d"
$alph[4]="e"
$alph[5]="f"
$alph[6]="g"
$alph[7]="h"
$alph[8]="i"
$alph[9]="j"
$alph[10]="k"
$alph[11]="l"
$alph[12]="m"
$alph[13]="n"
$alph[14]="o"
$alph[15]="p"
$alph[16]="q"
$alph[17]="r"
$alph[18]="s"
$alph[19]="t"
$alph[20]="u"
$alph[21]="v"
$alph[22]="w"
$alph[23]="x"
$alph[24]="y"
$alph[25]="z"
$alph[26]="а"
$alph[27]="б"
$alph[28]="в"
$alph[29]="г"
$alph[30]="д"
$alph[31]="е"
$alph[32]="ё"
$alph[33]="ж"
$alph[34]="з"
$alph[35]="и"
$alph[36]="й"
$alph[37]="к"
$alph[38]="л"
$alph[39]="м"
$alph[40]="н"
$alph[41]="о"
$alph[42]="п"
$alph[43]="р"
$alph[44]="с"
$alph[45]="т"
$alph[46]="у"
$alph[47]="ф"
$alph[48]="х"
$alph[49]="ц"
$alph[50]="ч"
$alph[51]="ш"
$alph[52]="щ"
$alph[53]="ъ"
$alph[54]="ы"
$alph[55]="ь"
$alph[56]="э"
$alph[57]="ю"
$alph[58]="я"
$alph[59]=" "
$alph[60]=""


;#cs
For $i1=60 to 0 Step -1
	;#include<thread2.au3>
	For $i2=60 to 0 Step -1
		For $i3=60 to 0 Step -1
			For $i4=60 to 0 Step -1
				For $i5=60 to 0 Step -1
					For $i6=60 to 0 Step -1
						For $i7=60 to 0 Step -1
							For $i8=60 to 0 Step -1
								For $i9=60 to 0 Step -1
									For $i10=60 to 0 Step -1
										FileWrite($file,$alph[$i1]&$alph[$i2]&$alph[$i3]&$alph[$i4]&$alph[$i5]&$alph[$i6]&$alph[$i7]&$alph[$i8]&$alph[$i9]&$alph[$i10]&@CRLF)
									Next
								Next
							Next
						Next
					Next
				Next
			Next
		Next
	Next
Next
MsgBox(0,$br,$co)
;#ce

Func es()
	if MsgBox(4,"","Выходим?")=6 Then Exit
EndFunc
это образец, немного доработай для своих нужд, набор символов подкорректируй...
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:01, 24-01-2009 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Спасибо

-------
Хочу научиться писать драйвера на с++


Отправлено: 00:37, 24-01-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата 266903582:
Можно попробовать так »
Сорри, не удержался.

Это долго...

Для начала вот функция гинерирующая строку от 6 до 20 случайных символов:

Код: Выделить весь код
$sRandomString = _StringGetRandomString(6, 20)

MsgBox(64, "Result", $sRandomString)

Func _StringGetRandomString($iMin=1, $iMax=1)
    If $iMax < $iMin Then Return SetError(1, 0, 0)

    Local $iRandom
    Local $sRet_Str = ''

    For $i = 1 To Random($iMin, $iMax, 1)
        $sRet_Str &= Chr(Random(33, 255, 1))
    Next

    Return $sRet_Str
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 01:39, 24-01-2009 | #6


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вообщем задача не на скорую руку, вот пример используя функцию выше, у меня на P4 ушло около 30'ти секунд! на гинерацию всех(?) вариантов от 6 до 7, т.ч можете представить сколько уйдёт на 6-20:

Код: Выделить весь код
$sFile_Content = ""

$iMin_Number = 6
$iMax_Number = 20

$iVars_Count = 0

;Подсчитываем возможное число вариантов для значении 6 - 20.
For $i = $iMin_Number To $iMax_Number
    $iVars_Count += _NumberVarsCount($i)
    ConsoleWrite($iVars_Count & @CRLF)
Next

;Проходимся столько раз (сколько есть вариантов у 6-20) в цикле и получаем случайные строки содержащие от 6-ти до 20-ти символов.
For $i = 1 To $iVars_Count
    $sRandomString = _StringGetRandomString($iMin_Number, $iMax_Number)

    While StringInStr($sFile_Content, $sRandomString & @CRLF)
        $sRandomString = _StringGetRandomString($iMin_Number, $iMax_Number)
    WEnd

    $sFile_Content &= $sRandomString & @CRLF
Next

FileWrite("File.txt", $sFile_Content)

Func _StringGetRandomString($iMin=1, $iMax=1)
    If $iMax < $iMin Then Return SetError(1, 0, 0)

    Local $iRandom
    Local $sRet_Str = ''

    For $i = 1 To Random($iMin, $iMax, 1)
        $sRet_Str &= Chr(Random(33, 255, 1))
    Next

    Return $sRet_Str
EndFunc

Func _NumberVarsCount($Number)
    If Not IsNumber($Number) Then Return SetError(1, 0, $Number)
    If $Number > 65 Then Return SetError(2, 0, -1)

    Local $iCnt, $iNumber = 1

    For $iCnt = 1 To $Number-1
        $iNumber *= ($iCnt+1)
    Next

    Return SetError(0, 0, $iNumber)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:11, 24-01-2009 | #7


Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Сорри, не удержался.
Это долго... »
Я просто переделал выдранный кусок переборщика паролей (лет 5 назад писал на сях) и переписал на автоите. Самому катать мощный брутофорс сейчас практически нет смысла...
P. S. если на ночь оставить, то до 15-ти символов может добраться

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 12:11, 24-01-2009 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата 266903582:
если на ночь оставить, то до 15-ти символов может добраться »
Не доберётся вроде, в примере ведь только 10 циклов

Вот тут остаётся важный вопрос, возможно ли запустить заданное число (в переменной) рекурсивных циклов, т.е один выполняется в другом? Тогда можно было бы сделать функцию, и дать возможность указать число символов для гинерации (или подбора, если делать для перебора паролей).

Примерно вот так (это в теле последнего цикла):

Код: Выделить весь код
For $j = 1 To $iMax_Pass_Chars
    $sChars &= $aAlpha_Chars[Eval("i" & $j)]
Next
Где $sChars это текущая сгинерированная строка...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:26, 24-01-2009 | #9


Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Не доберётся вроде, в примере ведь только 10 циклов »
По тому, что мне лень было добавлять большее количество уровней, а из примера видно как расширить возможности и общий принцип работы ясен...
Цитата Creat0R:
Вот тут остаётся важный вопрос, возможно ли запустить заданное число (в переменной) рекурсивных циклов »
Когда я последний раз думал об этом, то остановился на мысли о постоянно растущих объемах передаваемых и возвращаемых промежуточных параметров, что значительно снизит производительность перебора (+ ограничение глубины 5099 вызовами). По идее рекурсия будет малоэффективна, но на досуге можно подумать еще...

-------
Информация для размышления
Такому в вузах не научат


Последний раз редактировалось 266903582, 24-01-2009 в 14:31.


Отправлено: 14:01, 24-01-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Генерация комбинаций

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] генерация fileinstall morgan1991 AutoIt 3 30-03-2009 18:53
[решено] JavaScript. Генерация html-кода. System Failure Вебмастеру 3 20-07-2007 15:28
генерация новых ключей для ikey rivera Защита компьютерных систем 0 19-01-2006 09:49
Генерация кода <a>. Perl. benya Вебмастеру 1 18-08-2005 19:54
*Решено* | Задача по комбинаторике. Генератор комбинаций Surround Программирование и базы данных 14 18-02-2005 02:16




 
Переход