|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Генерация комбинаций |
|
||||
|
|
[решено] Генерация комбинаций
|
|
Старожил Сообщения: 398 |
Скажите пожалуйста, можно ли средствами автоита сгенереровать .тхт документ с всеми возможными комбинациями клавиатуры от 6 до 20 символов, на каждой новой строчке новая комбинация?
|
|
|
------- Отправлено: 21:43, 23-01-2009 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
|
|
|
------- Отправлено: 21:56, 23-01-2009 | #2 |
|
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Creat0R:
;jnx;dgnh jdjjdkgkkrtjh kdjfngjj лорир жлдовар 54524енкнеан5 Обсалютно любые комбинации, на обоих языках. |
|
|
------- Отправлено: 23:35, 23-01-2009 | #3 |
|
Пользователь Сообщения: 67
|
Профиль | Отправить 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 |
|
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо
|
|
|
------- Отправлено: 00:37, 24-01-2009 | #5 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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
|
|
|
------- Отправлено: 01:39, 24-01-2009 | #6 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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
|
|
------- Отправлено: 02:11, 24-01-2009 | #7 |
|
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
P. S. если на ночь оставить, то до 15-ти символов может добраться ![]() |
|
|
------- Отправлено: 12:11, 24-01-2009 | #8 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата 266903582:
![]() Вот тут остаётся важный вопрос, возможно ли запустить заданное число (в переменной) рекурсивных циклов, т.е один выполняется в другом? Тогда можно было бы сделать функцию, и дать возможность указать число символов для гинерации (или подбора, если делать для перебора паролей). Примерно вот так (это в теле последнего цикла): Где $sChars это текущая сгинерированная строка... |
|
|
------- Отправлено: 13:26, 24-01-2009 | #9 |
|
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата Creat0R:
|
||
|
------- Последний раз редактировалось 266903582, 24-01-2009 в 14:31. Отправлено: 14:01, 24-01-2009 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] генерация 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 | |
|