Author Topic: Clickermann подбор пароля для WORD  (Read 7323 times)

0 Members and 1 Guest are viewing this topic.

vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Clickermann подбор пароля для WORD
« on: December 21, 2017, 05:11:38 PM »
Помогите плиз.
Пример на программе word.
Ставим пароль на ворд при входе будет появляться маленькое окно для ввода пароля.
КАК НАПИСАТЬ АЛГОРИТМ ЧТОБЫ ПРИ КАЖДОМ ВХОДЕ в ворд Clickermann ПЕРЕБИРАЛ ЦИФРЫ ОТ 0 ДО 999???
Нужен взломать промышленный  контроллер, китайцы на контроллер поставили пароль.
Помогите пожалуйста все остальное написано.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #1 on: December 21, 2017, 05:51:03 PM »
Code: (clickermann) [Select]
FOR($i=0,$i<1000) // от 0 до 999
   KEYSTRING($i) // набираем полученное число
   WAITMS(50)
   // здесь команды после набора
END_CYC
HALT

vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #2 on: December 22, 2017, 08:49:55 AM »
Не работает  :-[
Объясните пожалуйста почему? пока я не сошел с ума.
Вот что я написал
DBLCLICK(272,30)
WAIT(2)
FOR($i=0, $i < 99999)
   KEYSTRING($i)
   WAITMS(200)
   WAIT(1)
   LCLICK(789,260)
   WAIT(1)
   LCLICK(595,395)
END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #3 on: December 22, 2017, 11:03:25 AM »
ну а что не так? Ошибок в коде нет. Цикл FOR сам наращивает указанную переменную пока условие не станет неверным, после чего выполнение пойдет дальше цикла. $i в начале будет равно 0, на следующем круге цикла 1 и тд. Функция KEYSTRING печатает символы которые в данный момент находятся в переменной $i


Code: (clickermann) [Select]
DBLCLICK(272,30)
WAIT(2)
FOR($i=0, $i < 99999)
   KEYSTRING($i)
   WAIT(1)
   LCLICK(789,260)
   WAIT(1)
   LCLICK(595,395)
   WAITMS(200)
END_CYC

HALT // Стоп



Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #4 on: December 22, 2017, 11:07:38 AM »
Вот для теста открой блокнот, укажи в скрипте координату окошка. Скрипт будет печатать числа каждый раз с новой строки.

Code: (clickermann) [Select]
LCLICK(272,30) // Кликаем по окошку блокнота (укажи координаты)
WAITMS(50)
FOR($i=0, $i < 99)
   KEYSTRING($i)
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(50)
END_CYC

HALT // Стоп

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #5 on: December 22, 2017, 11:30:18 AM »
а может там нужени пароль вида "0036047", и еще и количество символов разнится?

vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #6 on: December 22, 2017, 04:57:38 PM »
 в тесте он работает все нормально но в  автомате нет
нашел на форуме вот это
$_num=9997
WHILE($_num<9999)
DBLCLICK(720,49)
   GETSCREEN
    WAIT(3)
   KEYSTRING($_num) 
   WAIT(5)
   LCLICK(1277,125)
   WAIT(2)
   LCLICK(702,397)
   WAIT(1)
   INC($_num)
   IF($_num/10=INT($_num/10))
      INC($_num)
   END_IF
ELSE
END_IF
END_CYC

Все работает цифры перебирает. Вот индикация перебора была бы.  Вообще было   бы круто что бы видеть на данный момент какие вводятся цифры, а то постоянно звездочки переключает. Можете помочь?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #7 on: December 22, 2017, 05:36:22 PM »
В твоем коде лишняя команда снимка экрана GETSCREEN и ELSE END_IF
А вот это зачем?
Code: (clickermann) [Select]
   INC($_num)
   IF($_num/10=INT($_num/10))
      INC($_num)
   END_IF

В этом случаи 10 20 30 и тд будут пропускаться.

Code: (clickermann) [Select]
LOGSHOW (1, 50,50) // открываем лог в координате 50,50
FOR($_num=0,$_num<10000)
   LOGCLEAR // Очищаем лог
   LOGWRITE($_num) // Выводим в лог текущее число
   DBLCLICK(720,49)
   WAIT(3)
   KEYSTRING($_num)
   WAIT(5)
   LCLICK(1277,125)
   WAIT(2)
   LCLICK(702,397)
   WAIT(1)
   IF($_num/10=INT($_num/10))
      INC($_num)
   END_IF
END_CYC

HALT
« Last Edit: December 22, 2017, 09:18:16 PM by Oraven »

vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #8 on: December 22, 2017, 06:27:54 PM »
Ваш скрипт прогоняется только один раз и потом висит.
Можно ли в программе видеть какая цифра щас подбирается? А то в окне ввода пароля одни точки.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #9 on: December 22, 2017, 09:17:57 PM »
Ваш скрипт прогоняется только один раз и потом висит.

С чего бы это? Какая у тебя версия кликера? На данный момент стабильный релиз 4.12.001

Можно ли в программе видеть какая цифра щас подбирается? А то в окне ввода пароля одни точки.

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

vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #10 on: December 22, 2017, 10:34:36 PM »
Все супер! спасибо большое работает как надо.
Прогнал все числа от 0 до 9999 но пароль не подобрал
Пароль видимо забит от 0000 до 1000
А прога начинает считать от 0, а получается должна от 0000...0001 и т.д.
Можете помочь? плиз...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #11 on: December 23, 2017, 12:07:31 AM »
Пароль видимо забит от 0000 до 1000
А прога начинает считать от 0, а получается должна от 0000...0001 и т.д.
Можете помочь? плиз...
а я же говорил ....  8)
а может там нужени пароль вида "0036047", и еще и количество символов разнится?

Code: (clickermann) [Select]
LOGSHOW (1, 50,50) // открываем лог в координате 50,50
FOR($_num=0,$_num<10000)
   LOGCLEAR // Очищаем лог
   
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пороле
      $pass = STRCONCAT ("0",$pass)
   END_CYC
   
   LOGWRITE($pass) // Выводим в лог текущее число
   DBLCLICK(720,49)
   WAIT(3)
   KEYSTRING($pass)
   WAIT(5)
   LCLICK(1277,125)
   WAIT(2)
   LCLICK(702,397)
   WAIT(1)
   IF($_num/10=INT($_num/10)) //всеровно непонятно зачем вот это
      INC($_num)
   END_IF
END_CYC
halt

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #12 on: December 25, 2017, 08:58:26 AM »
//всеровно непонятно зачем вот это
Да выкинуть к чёрту.
Накопал чужую, частную задачу, в которой было нужно пропускать десятки и посчитал это золотой пулей

Спасибо большое вроде работает, пустил в работу посмотрим дальше что будет. А еще вопрос можно ли исключить из подбора числа с нулями? типа 110 120 130... 210 220 230... и т.д.


vitaliy

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #13 on: December 25, 2017, 10:20:28 AM »
Да уже выкинул
IF($_num/10=INT($_num/10)) //всеровно непонятно зачем вот это
      INC($_num)
 
А если пароль в мое отсутствие подберется,кликер вить продолжить дальше перебирать пароли.
Как сделать так что бы если надпись error  смениться другой, кликер остановился?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann подбор пароля для WORD
« Reply #14 on: December 25, 2017, 12:07:27 PM »
Кликер может определять наличие окон по заголовкам. Нужно после ввода пароля ждать окно Error. Если оно не появится то видимо пароль подошел.
Code: (clickermann) [Select]
LOGSHOW (1, 50,50) // открываем лог в координате 50,50
FOR($_num=0,$_num<10000)
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пороле
      $pass = STRCONCAT ("0",$pass)
   END_CYC
   
   DBLCLICK(720,49)
   WAIT(3)
   
   LOGCLEAR // Очищаем лог
   LOGWRITE($pass) // Выводим в лог текущее число
   KEYSTRING($pass)
   WAITMS(50)
   LCLICK(1277,125)
   WAITMS(50)
   
   $time = $_time_t + 5 // таймер на 5 секунд
   WHILE($time > $_time_t) // Ждем окно с заголовком Error 5 секунд
      IF(WNDFIND("Error",1) > 0) // Если найдено
         WAITMS(100)
         LCLICK(702,397)
         WAIT(1)
         $time = 0
      END_IF
      WAITMS(50)
   END_CYC
   IF($time ! 0) // Если за 5 сек окно не появилось
      HALT // Стоп
   END_IF
   
END_CYC
HALT