Author Topic: Разработать сценарий перебора пин кода от 0000 до 9999 для определения верного  (Read 3872 times)

0 Members and 1 Guest are viewing this topic.

snt_IVAN

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Добрый день, нужно написать простой сценарий в Clickermann. Суть в следующем, перебор пин кода от 0000 до 9999 в окне desktop программы windows с целью определения верного пинкода доступа к оборудованию. Если введен не верный пин код, оборудование перезагружается в течении 15 секунд и появляется снова окно ввода пинкода. Если введён верно, то появляется другое окно настройки блока.  Пин код должен сохраниться.  Контакты skype: nemec3333 почта: gammershmidt@gmail.com
« Last Edit: May 24, 2018, 10:10:31 AM by snt_IVAN »

Anton

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
#name "@перебор pin"

LCLICK(1152,297)  //активируем окно перебора
TOCLIP ("0") //Вставляем в буфер обмена начальное число
WAITMS(100)
KEYDOWN (#CTRL) // вставляем Ctrl+V из буфера обмена
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
LCLICK(1317,550)  // жмём ок или KEYPRESS(#ENTER)
FOR($a=0, $a < 9999) // начинаем цикл (с кол-вом циклов) перебора
getscreen
if_pixel_in(1212,360,1214,362,14211322)// пиксель отрицательного события
   waitms(100)
   LCLICK(1161,294)  // активируем окно перебора
   KEYDOWN (#CTRL) // выделяем Ctrl+а
   WAITMS (100)
   KEYDOWN (#A)
   WAITMS (100)
   KEYUP (#A)
   KEYUP (#CTRL)
   waitms(100)
   KEYDOWN (#CTRL) // вырезаем Ctrl+X, помещая в буфер обмена
   WAITMS (100)
   KEYDOWN (#X)
   WAITMS (100)
   KEYUP (#X)
   KEYUP (#CTRL)
   LCLICK(1138,306)  // активируем окно перебора
   $str= FROMCLIP ()// переносим из буфера системы в буфер кликермана
   waitms(100)
   INC ($str)
   TOCLIP($str)
   print($str)// в логе сохранится последний, тоесть верный пароль
   KEYDOWN (#CTRL) // вставляем Ctrl+V
   WAITMS (100)
   KEYDOWN (#V)
   WAITMS (100)
   KEYUP (#V)
   KEYUP (#CTRL)
   LCLICK(1317,550) //жмём ок или KEYPRESS(#ENTER)
   else // если отрицательного события не случилось - останавливаем выполнение сценария
   halt
end_if
end_cyc

Anton

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Да уж... 4 цифры... Это пока не в моих силах. Будем стараться. Для себя писал, с моей задачей справилась программа. Может кому мой вариант пригодится.

AMaksim

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Давно что-то подобное для себя писал. В принципе совсем немного надо доработать, чтоб под Вашу задачу запилить...

Code: [Select]
FOR($var3=0, $var3 < 10)
FOR($var2=0, $var2 < 10)
FOR($var1=0, $var1 < 10)
FOR($var=0, $var < 10)
LOGWRITE ($var3,$var2,$var1,$var)

WAITMS(100)
LCLICK(1211,133)

WAITMS(50)
LCLICK(907,337)
WAITMS(50)

KEYPRESS(#$var3)
KEYPRESS(#$var2)
KEYPRESS(#$var1)
KEYPRESS(#$var)

WAITMS(50)
LCLICK(888,339
WAITMS(700)
LCLICK(950,337)
LOGCLEAR

END_CYC
END_CYC
END_CYC
END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Давно что-то подобное для себя писал. В принципе совсем немного надо доработать, чтоб под Вашу задачу запилить...

Code: [Select]
FOR($var3=0, $var3 < 10)
FOR($var2=0, $var2 < 10)
FOR($var1=0, $var1 < 10)
FOR($var=0, $var < 10)
LOGWRITE ($var3,$var2,$var1,$var)

WAITMS(100)
LCLICK(1211,133)

WAITMS(50)
LCLICK(907,337)
WAITMS(50)

KEYPRESS(#$var3)
KEYPRESS(#$var2)
KEYPRESS(#$var1)
KEYPRESS(#$var)

WAITMS(50)
LCLICK(888,339
WAITMS(700)
LCLICK(950,337)
LOGCLEAR

END_CYC
END_CYC
END_CYC
END_CYC

Нельзя пихать переменные куда тебе захочется. "KEYPRESS(#$var3)"
Для печатания символов в кликере есть KEYSTRING

Code: (clickermann) [Select]
FOR($_num=0,$_num<10000) // 0-9999
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пароле
      $pass = STRCONCAT ("0",$pass) // добавляем нули вначале
   END_CYC
   LOGCLEAR
   LOGWRITE($pass) // Выводим в лог текущее число
   
   KEYSTRING($pass) // печатаем число
   WAITMS(500)
   
END_CYC
halt
« Last Edit: January 14, 2019, 11:08:31 AM by Oraven »

AMaksim

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
    Спасибо за комментарий. Насчет нельзя пихать - согласен. Пихать нужно с осторожностью. В данном конкретном случае Кликер позволяет реализовать правильно такой синтаксис "KEYPRESS(#$var3)".
   Но вот с Вашим кодом проблема. Он не будет работать. Да, согласен, в лог он выводит правильно. Но вы же преобразуете число в строку, добавляя нули в начале. А значит требуемую задачу код не решит. Вы б хоть проверили коды (мой и свой), прежде чем писать.

Давно что-то подобное для себя писал. В принципе совсем немного надо доработать, чтоб под Вашу задачу запилить...

Code: [Select]
FOR($var3=0, $var3 < 10)
FOR($var2=0, $var2 < 10)
FOR($var1=0, $var1 < 10)
FOR($var=0, $var < 10)
LOGWRITE ($var3,$var2,$var1,$var)

WAITMS(100)
LCLICK(1211,133)

WAITMS(50)
LCLICK(907,337)
WAITMS(50)

KEYPRESS(#$var3)
KEYPRESS(#$var2)
KEYPRESS(#$var1)
KEYPRESS(#$var)

WAITMS(50)
LCLICK(888,339
WAITMS(700)
LCLICK(950,337)
LOGCLEAR

END_CYC
END_CYC
END_CYC
END_CYC

Нельзя пихать переменные куда тебе захочется. "KEYPRESS(#$var3)"
Для печатания символов в кликере есть KEYPRESS

Code: (clickermann) [Select]
FOR($_num=0,$_num<10000) // 0-9999
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пароле
      $pass = STRCONCAT ("0",$pass) // добавляем нули вначале
   END_CYC
   LOGCLEAR
   LOGWRITE($pass) // Выводим в лог текущее число
   
   KEYPRESS($pass) // печатаем число
   WAITMS(500)
   
END_CYC
halt
Давно что-то подобное для себя писал. В принципе совсем немного надо доработать, чтоб под Вашу задачу запилить...

Code: [Select]
FOR($var3=0, $var3 < 10)
FOR($var2=0, $var2 < 10)
FOR($var1=0, $var1 < 10)
FOR($var=0, $var < 10)
LOGWRITE ($var3,$var2,$var1,$var)

WAITMS(100)
LCLICK(1211,133)

WAITMS(50)
LCLICK(907,337)
WAITMS(50)

KEYPRESS(#$var3)
KEYPRESS(#$var2)
KEYPRESS(#$var1)
KEYPRESS(#$var)

WAITMS(50)
LCLICK(888,339
WAITMS(700)
LCLICK(950,337)
LOGCLEAR

END_CYC
END_CYC
END_CYC
END_CYC

Нельзя пихать переменные куда тебе захочется. "KEYPRESS(#$var3)"
Для печатания символов в кликере есть KEYPRESS

Code: (clickermann) [Select]
FOR($_num=0,$_num<10000) // 0-9999
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пароле
      $pass = STRCONCAT ("0",$pass) // добавляем нули вначале
   END_CYC
   LOGCLEAR
   LOGWRITE($pass) // Выводим в лог текущее число
   
   KEYPRESS($pass) // печатаем число
   WAITMS(500)
   
END_CYC
halt

AMaksim

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Хотя нет. Ваш код тоже рабочий. Просто вместо "KEYPRESS($pass)" нужно использовать "KEYSTRING($pass)".

Давно что-то подобное для себя писал. В принципе совсем немного надо доработать, чтоб под Вашу задачу запилить...

Code: [Select]
FOR($var3=0, $var3 < 10)
FOR($var2=0, $var2 < 10)
FOR($var1=0, $var1 < 10)
FOR($var=0, $var < 10)
LOGWRITE ($var3,$var2,$var1,$var)

WAITMS(100)
LCLICK(1211,133)

WAITMS(50)
LCLICK(907,337)
WAITMS(50)

KEYPRESS(#$var3)
KEYPRESS(#$var2)
KEYPRESS(#$var1)
KEYPRESS(#$var)

WAITMS(50)
LCLICK(888,339
WAITMS(700)
LCLICK(950,337)
LOGCLEAR

END_CYC
END_CYC
END_CYC
END_CYC

Нельзя пихать переменные куда тебе захочется. "KEYPRESS(#$var3)"
Для печатания символов в кликере есть KEYPRESS

Code: (clickermann) [Select]
FOR($_num=0,$_num<10000) // 0-9999
   $pass = $_num
   WHILE(STRLEN($pass) < 4) //количество символов в пароле
      $pass = STRCONCAT ("0",$pass) // добавляем нули вначале
   END_CYC
   LOGCLEAR
   LOGWRITE($pass) // Выводим в лог текущее число
   
   KEYPRESS($pass) // печатаем число
   WAITMS(500)
   
END_CYC
halt

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Да конечно же речь идет о KEYSTRING, просто не то скопировал.
Исправлено.