Как сделать маленький переборщик паролей?

Обсуждение программ nnCron и nnCron LITE

Как сделать маленький переборщик паролей?

Postby Givan » Wed, 06 Jul 2005, 17:01

Просьба помочь в моей проблеме.
Забыл пароль к программе к которой не создан переборщик паролей.
Требуется создать его самому. Примерно помню те символы которые набирал в окно ввода пароля. Всего 9 или 10 символов. Думаю за полгода методом перебора его подберу.
Как можно:
1) Сгенирировать список возможных значений из 10 произвольных символов - переменных?
2) Как считывать последовательно переменные из сгенеривованного списка, например в Notepade до тех пор пока не найдется пароль?
Это все сложно, хотелось бы узнать можно ли с помощью nnCron осуществить такое?
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby Givan » Wed, 06 Jul 2005, 20:16

Попробовал подобрать пароль к PGP-диску.
Почитал форум и хелп, вот кое-что получилось:
#( za
NoActive
VARIABLE first
Action:
START-APP: C:\111.pgd
PAUSE: 1000
WIN-ACTIVE: "Enter Passphrase"
IF
BEGIN
PAUSE: 1000
SEND-KEYS: "%first @%"
WIN-CLICK: "Enter Passphrase" "&OK
first @ 1 + first !
PAUSE: 2000
\ until first < 13
first @ 13 >
UNTIL
WIN-ACTIVE: "Enter Passphrase"
THEN
)#
Заданный пароль 12 подобрался.
Просьба посоветовать как можно улучшить кронтаб?

Однако есть вопросы еще:
1)Как задать перебор с большого числа, например с 9987654320?
Если я ставлю большое число вместо 13 у меня ошибку дает.
2)Как можно одновременно с числом увеличивающимся на единицу добавлять определенную букву, например, "a", т.е. чтобы было например так:
...
456a
457a
...
34569a
34570a
...
Т.е. как задать это в цикле?
3)Как можно вести лог, чтобы в случае остановки перебора по какой-либо причине узнать на каком выражении произошла остановка?
Пароль надо к PGP диску, сам пароль состоит из 9-10 цифр и на конце пароля одна латинская буква.
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby roman78 » Sat, 09 Jul 2005, 16:50

по поводк больших чисел - крон (или форт) имеет ограничение то ли 65тыс. то ли поболее...
roman78
 
Posts: 57
Joined: Sat, 06 Nov 2004, 20:52

Postby Givan » Sat, 09 Jul 2005, 19:54

roman78 wrote:по поводк больших чисел - крон (или форт) имеет ограничение то ли 65тыс. то ли поболее...

Имеется ввиду при задании в цикле, или в присвоении значения переменной?
Возможно я ошибаюсь, но мне кажется, что для присвоения значения переменной такого ограничения нет.
В своих опытах я ставил миллионные значения и все работало.
Большая просьба помочь в моей проблеме.
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby Tez » Sun, 10 Jul 2005, 10:53

Code: Select all
\ d1 d2 - вместе одно двойное число
\   a u - путь
\ Если путь бла-бла-бла, то слово в конце добавит 1 и 2 (бла-бла-бла1), т.е. сохраняет оно по двум путям с отличием в последнем символе (1 или 2), соответcтвенно оба пути должны быть.
: 2VAR-TO-REG-DWORD { d1 d2 a u -- }
  a u S" 1" S+ d1 REG-DWORD
  a u S" 2" S+ d2 REG-DWORD
;
\ Если путь бла-бла-бла, то слово в конце добавит 1 и 2 (бла-бла-бла1), т.е. сохраняет оно по двум путям с отличием в последнем символе (1 или 2), соответтвенно оба пути должны быть.
\ a u - путь (см. примечание у предыдущего слова)
\ d - двойное число
: 2VAR-FROM-REG-DWORD  { a u -- d }
  0 0 SP@   a u S" 2" S+ GET-REG
  SP@ CELL+ a u S" 1" S+ GET-REG
;
2VARIABLE Dcounter
 VARIABLE Lcounter
CREATE buffer 12 ALLOT
Action:
S" path\Dcounter" 2VAR-FROM-REG-DWORD Dcounter 2!
Lcounter GET-REG: "path\Lcounter" \ переменную надо создать, причем первоначальное значение должно быть 65
BEGIN
   Dcounter 2@ <# # # # # # # # # # #> buffer PLACE \ каждое # - 1 символ, сейчас 9
   Lcounter @ buffer COUNT + 1+ C! \ дописываем в конец строки букву
   buffer C@ 1+ buffer C! \ увеличиваем счётчик строки
   
   buffer COUNT SEND-KEYS
   WIN-CLICK: "Enter Passphrase" "&OK
   200 PAUSE \ настроить!, это главная пауза
   
   Lcounter @ 90 =
   IF
      97 Lcounter !
   ELSE
      Lcounter @ 122 =
      IF
         65 Lcounter !
         Dcounter 2@ 1. D+ Dcounter 2!
      ELSE
         Lcounter 1+!
      THEN
   THEN
   
   \ Условие прекращения перебора
   WIN-ACTIVE: "Enter Passphrase"
   NOT
UNTIL
Dcounter 2@ S" path\Dcounter" 2VAR-TO-REG-DWORD
S" path\Lcounter" Lcounter @ REG-DWORD
Предварительно надо создать три переменных в реестре Windows.
- path\Lcounter (первоначальное значение 65 (ASCII код))
- path\Dcounter1
- path\Dcounter2
Соответственно, везде в коде изменить path на твой.
Этот код перебирает только 9 цифр, для 10 добавь ещё одно "#" в "<# # # # # # # # # # #>".
Скорость работы зависит от реакции проги на неверный пароль и от скорости этой реакции (время до готовности к приёму следующего пароля).
Ещё советую поиграться с SEND-KEYS-DELAY.
Управлять диапазоном перебора удобнее всего через реестр.

OFF-TOPIC:
roman78
по поводк больших чисел - крон (или форт) имеет ограничение то ли 65тыс. то ли поболее...

Для справки, обычные ± 2 147 483 648 (32-bit).
Есть ещё двойные (см. хелп крона) 64-bit, ± 9 223 372 036 854 775 808
Tez
 
Posts: 205
Joined: Mon, 23 Aug 2004, 09:17
Location: Moscow

Postby Givan » Sun, 10 Jul 2005, 16:24

Tez, большое спасибо!
Прекрасный код с пояснениями и примечаниями.
Мне бы, наверное, и за всю свою жизнь такой код не написать. :D
Сейчас буду пробывать. О результатах напишу позже.
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby Givan » Tue, 12 Jul 2005, 17:30

Возникли сложности:
1)При попытке перевести в кронтаб из чистого ФОРТа, выдает ошибку на следующей строке: "0 0 SP@ a u S" 2" S+ GET-REG"
2)Мне непонятно что за числа используются:
65 взято как любое произвольное число? Причем тут ASCII код, в нем же нет отдельно "65" или надо вводить последовательно ASCII код для "6" и "5"?
Откуда берутся числа 90, 97, 122, как они выбираются?
3)"Этот код перебирает только 9 цифр, для 10 добавь ещё одно "#" в "<# # # # # # # # # # #>"." - так здесь # одиннадцать штук, почему?
4)Что я сделал не так? Все команды я нашел по справочникам, разбираюсь понемногу, но чувствую, мне тяжеловато будет составить один кронтаб. Просьба в этом помочь. Ключи в реестре создал и подставил в кронтаб.

#( task
: 2VAR-TO-REG-DWORD { d1 d2 a u -- }
a u S" 1" S+ d1 REG-DWORD
a u S" 2" S+ d2 REG-DWORD
;
: 2VAR-FROM-REG-DWORD { a u -- d }
0 0 SP@ a u S" 2" S+ GET-REG
SP@ CELL+ a u S" 1" S+ GET-REG
;
2VARIABLE Dcounter
VARIABLE Lcounter
CREATE buffer 12 ALLOT
Action:
S" HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter" 2VAR-FROM-REG-DWORD Dcounter 2!
Lcounter GET-REG: "HKEY_LOCAL_MACHINE\SOFTWARE\test\Lcounter"
BEGIN
Dcounter 2@ <# # # # # # # # # # #> buffer PLACE
Lcounter @ buffer COUNT + 1+ C!
buffer C@ 1+ buffer C!
buffer COUNT SEND-KEYS
WIN-CLICK: "Enter Passphrase" "&OK
200 PAUSE \ настроить!, это главная пауза
Lcounter @ 90 =
IF
97 Lcounter !
ELSE
Lcounter @ 122 =
IF
65 Lcounter !
Dcounter 2@ 1. D+ Dcounter 2!
ELSE
Lcounter 1+!
THEN
THEN
WIN-ACTIVE: "Enter Passphrase"
NOT
UNTIL
Dcounter 2@ S" HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter" 2VAR-TO-REG-DWORD
S" HKEY_LOCAL_MACHINE\SOFTWARE\test\Lcounter" Lcounter @ REG-DWORD
)#
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby Tez » Wed, 13 Jul 2005, 10:01

1)При попытке перевести в кронтаб из чистого ФОРТа, выдает ошибку на следующей строке: "0 0 SP@ a u S" 2" S+ GET-REG"

Я вставил всю задачу, которую ты привёл, к себе в кронтаб. Никаких ошибок при компиляции.
Может у тебя включено ограничение синтаксиса? Проверь переменную SyntaxRestriction в nncron.ini.

2)Мне непонятно что за числа используются:
65 взято как любое произвольное число? Причем тут ASCII код, в нем же нет отдельно "65" или надо вводить последовательно ASCII код для "6" и "5"?
Откуда берутся числа 90, 97, 122, как они выбираются?


Приплыли. Почитай где-нибудь про кодировку текста. Google задействуй там… поищи, в общем. (У Броуди вроде есть, сделай поиск по ASCII.)
Я только скажу, что для корректной работы задачи тебе вводить там ничего не нужно.

3)"Этот код перебирает только 9 цифр, для 10 добавь ещё одно "#" в "<# # # # # # # # # # #>"." - так здесь # одиннадцать штук, почему?

Про <# #> в хелпе должно быть, где не помню. Вообще, если ты ещё не знал, слова в форте разделяются пробелами, т.е. # и #> совсем разные вещи. Кстати, об этом написано в хелпе: “Работа с программой”. Советую почитать.

ЗЫ
Твоя задача будет срабатывать каждую минуту.
Tez
 
Posts: 205
Joined: Mon, 23 Aug 2004, 09:17
Location: Moscow

Postby Givan » Wed, 13 Jul 2005, 17:19

Да, конечно я знаю что слова в форте разделяются пробелами и если есть пробел между словами, то форт считает, что это два отдельных слова.

Tez, спасибо, ошибок теперь не пишет, но ведь перебора не происходит - не работает почему то.
1)У меня идет вывод данных в окне запроса пароля:
0000000002 и так далее ...00000000020000000002...

Причину нашел: "# -преобразование одной цифры и помещение ее в выходную символьную строку. # доставляет цифру в ЛЮБОМ СЛУЧАЕ - если вы подали этому слову на вход неверное цифровое значение, то и в этом случае вы получите нуль для каждого #"
Но не понимаю, почему у меня так происходит.
Создавал в реестре и строковый параметр, и двоичный параметр, и параметр DWORD c отчаяния - происходит то же самое.
Значения в параметры не вводил, следуя указаниям выше.

2)ASCII Код в Л. Броуди нашел, прочитал. Как я понял в кронтабе предусмотрена возможность использования A-Z a-z
Но мне весь алфавит не нужен (столько символов не надо) мне нужна только одна конкретная маленькая буква m на конце цифровых символов.
Как можно управлять диапазоном перебора через реестр? Может здесь собака зарыта? :)

3)Про форматный вывод числа <#...#> все понял.
Ежеминутное срабатывание задачи не проблема (NoActive)
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41

Postby Tez » Thu, 14 Jul 2005, 12:04

Tez, спасибо, ошибок теперь не пишет, но ведь перебора не происходит - не работает почему то.
1)У меня идет вывод данных в окне запроса пароля:
0000000002 и так далее ...00000000020000000002...

Причину нашел: <…>


Насчёт «причины», эт ты не в ту сторону поплыл.
Я этот код, перед тем как тебе дать, пробовал с выводом на консоль – работает, 100%! Дело может быть в твоём:
Code: Select all
WIN-CLICK: "Enter Passphrase" "&OK
1. Нет последней закрывающей кавычки.
2. Может банально WIN-CLICK не работает именно с этим окошком. (Хотя, ты вроде говорил, что работает, значит см. §1.)
3. А может, всё можно ускорить? Убери на фиг этот WIN-CLICK и вставь после строки
Code: Select all
buffer C@ 1+ buffer C!
строку:
Code: Select all
S” {ENTER}” buffer +PLACE
И “12 ALLOT” увеличь до “19 ALLOT”.

Создавал в реестре и строковый параметр, и двоичный параметр, и параметр DWORD c отчаяния - происходит то же самое.

Нет. Тебе нужен только тип DWORD, для Dcounter, в количестве двух переменных.Т.е.:
HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter1
HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter2

Но мне весь алфавит не нужен (столько символов не надо) мне нужна только одна конкретная маленькая буква m на конце цифровых символов.

Вот с этого и нужно было начинать. :(
Вот код с одной буквой «m» (ну и заодно с Enter вместо send-keys):
Code: Select all
 #( task
NoActive
: 2VAR-TO-REG-DWORD { d1 d2 a u -- }
a u S" 1" S+ d1 REG-DWORD
a u S" 2" S+ d2 REG-DWORD
;
: 2VAR-FROM-REG-DWORD { a u -- d }
0 0 SP@ a u S" 2" S+ GET-REG
SP@ CELL+ a u S" 1" S+ GET-REG
;
2VARIABLE Dcounter
CREATE buffer 19 ALLOT
Action:
S" HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter" 2VAR-FROM-REG-DWORD Dcounter 2!
Lcounter GET-REG: "HKEY_LOCAL_MACHINE\SOFTWARE\test\Lcounter"
BEGIN
Dcounter 2@ <# # # # # # # # # # #> buffer PLACE
S" m{ENTER}" buffer +PLACE
buffer COUNT SEND-KEYS
200 PAUSE \ настроить!, это главная пауза
Dcounter 2@ 1. D+ Dcounter 2!
WIN-ACTIVE: "Enter Passphrase"
NOT
UNTIL
Dcounter 2@ S" HKEY_LOCAL_MACHINE\SOFTWARE\test\Dcounter" 2VAR-TO-REG-DWORD
)#
Tez
 
Posts: 205
Joined: Mon, 23 Aug 2004, 09:17
Location: Moscow

Postby Givan » Wed, 20 Jul 2005, 10:35

Tez, спасибо за твои советы. Программа-переборщик работает.
Правда мне пришлось вернуть WIN-CLICK: "Enter Passphrase" "&OK"
Без этой строки не работало.
Однако скорость перебора с данной строкой очень низкая: 42 комбинации в минуту.
Чтобы работало быстрее у меня не получается, т.е. чтобы обработка шла только через буфер.
Нашел в интернете программу для перебора паролей для PGP дисков со скоростью примерно 1000 комбинаций в минуту. Как они добились такой скорости перебора (быстрее я не нашел) для меня загадка, но меня это устраивает. Пару лет конечно потребуется, чтобы перебрать все комбинации, но того это стоит.
Givan
 
Posts: 7
Joined: Wed, 06 Jul 2005, 15:41


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests

cron