Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: vitaliy on December 21, 2017, 05:11:38 PM
-
Помогите плиз.
Пример на программе word.
Ставим пароль на ворд при входе будет появляться маленькое окно для ввода пароля.
КАК НАПИСАТЬ АЛГОРИТМ ЧТОБЫ ПРИ КАЖДОМ ВХОДЕ в ворд Clickermann ПЕРЕБИРАЛ ЦИФРЫ ОТ 0 ДО 999???
Нужен взломать промышленный контроллер, китайцы на контроллер поставили пароль.
Помогите пожалуйста все остальное написано.
-
FOR($i=0,$i<1000) // от 0 до 999
KEYSTRING($i) // набираем полученное число
WAITMS(50)
// здесь команды после набора
END_CYC
HALT
-
Не работает :-[
Объясните пожалуйста почему? пока я не сошел с ума.
Вот что я написал
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
-
ну а что не так? Ошибок в коде нет. Цикл FOR сам наращивает указанную переменную пока условие не станет неверным, после чего выполнение пойдет дальше цикла. $i в начале будет равно 0, на следующем круге цикла 1 и тд. Функция KEYSTRING печатает символы которые в данный момент находятся в переменной $i
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 // Стоп
-
Вот для теста открой блокнот, укажи в скрипте координату окошка. Скрипт будет печатать числа каждый раз с новой строки.
LCLICK(272,30) // Кликаем по окошку блокнота (укажи координаты)
WAITMS(50)
FOR($i=0, $i < 99)
KEYSTRING($i)
WAITMS(50)
KEYPRESS(#ENTER)
WAITMS(50)
END_CYC
HALT // Стоп
-
а может там нужени пароль вида "0036047", и еще и количество символов разнится?
-
в тесте он работает все нормально но в автомате нет
нашел на форуме вот это
$_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
Все работает цифры перебирает. Вот индикация перебора была бы. Вообще было бы круто что бы видеть на данный момент какие вводятся цифры, а то постоянно звездочки переключает. Можете помочь?
-
В твоем коде лишняя команда снимка экрана GETSCREEN и ELSE END_IF
А вот это зачем?
INC($_num)
IF($_num/10=INT($_num/10))
INC($_num)
END_IF
В этом случаи 10 20 30 и тд будут пропускаться.
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
-
Ваш скрипт прогоняется только один раз и потом висит.
Можно ли в программе видеть какая цифра щас подбирается? А то в окне ввода пароля одни точки.
-
Ваш скрипт прогоняется только один раз и потом висит.
С чего бы это? Какая у тебя версия кликера? На данный момент стабильный релиз 4.12.001
Можно ли в программе видеть какая цифра щас подбирается? А то в окне ввода пароля одни точки.
Я для чего в последнем варианте запись в лог прикрутил? Вывод информации возможен только в лог.
Также на основной форме кликера, внизу отображается последняя строка лога можешь смотреть там.
-
Все супер! спасибо большое работает как надо.
Прогнал все числа от 0 до 9999 но пароль не подобрал
Пароль видимо забит от 0000 до 1000
А прога начинает считать от 0, а получается должна от 0000...0001 и т.д.
Можете помочь? плиз...
-
Пароль видимо забит от 0000 до 1000
А прога начинает считать от 0, а получается должна от 0000...0001 и т.д.
Можете помочь? плиз...
а я же говорил .... 8)
а может там нужени пароль вида "0036047", и еще и количество символов разнится?
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
-
//всеровно непонятно зачем вот это
Да выкинуть к чёрту.
Накопал чужую, частную задачу, в которой было нужно пропускать десятки и посчитал это золотой пулей
Спасибо большое вроде работает, пустил в работу посмотрим дальше что будет. А еще вопрос можно ли исключить из подбора числа с нулями? типа 110 120 130... 210 220 230... и т.д.
-
Да уже выкинул
IF($_num/10=INT($_num/10)) //всеровно непонятно зачем вот это
INC($_num)
А если пароль в мое отсутствие подберется,кликер вить продолжить дальше перебирать пароли.
Как сделать так что бы если надпись error смениться другой, кликер остановился?
-
Кликер может определять наличие окон по заголовкам. Нужно после ввода пароля ждать окно Error. Если оно не появится то видимо пароль подошел.
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
-
$pass = $_num
WHILE(STRLEN($pass) < 4) //количество символов в пороле
$pass = STRCONCAT ("0",$pass)
END_CYC
постоянно четыре 0000-я забивает не переключается 0001,0002 :(
-
$pass = $_num
WHILE(STRLEN($pass) < 4) //количество символов в пороле
$pass = STRCONCAT ("0",$pass)
END_CYC
постоянно четыре 0000-я забивает не переключается 0001,0002 :(
все верно, в этом кусочке кода $_num = 0, и она не наращивается. для этого в вышеуказанном скрипте Oravenа этот цикл помещен в цикл FOR($_num=0,$_num<10000), тут то и наращивается переменная $_num от 0 до 10000.
или тебя смущает что именно 4 нуля? если так, то смени тут WHILE(STRLEN($pass) < 4) четверку на нужное тебе количество.
-
$pass = $_num
WHILE(STRLEN($pass) < 4) //количество символов в пороле
$pass = STRCONCAT ("0",$pass)
END_CYC
постоянно четыре 0000-я забивает не переключается 0001,0002 :(
все верно, в этом кусочке кода $_num = 0, и она не наращивается. для этого в вышеуказанном скрипте Oravenа этот цикл помещен в цикл FOR($_num=0,$_num<10000), тут то и наращивается переменная $_num от 0 до 10000.
или тебя смущает что именно 4 нуля? если так, то смени тут WHILE(STRLEN($pass) < 4) четверку на нужное тебе количество.
да с нулями все нормально можно хоть сколько угодно их выбирать. НО ПЕРЕБОР НЕ ПРОИСХОДИТЬ ТОЛЬКО ОДНИ НУЛИ ЗАБИВАЕТ КРАЙНЯЯ ПРАВАЯ ЦИФРА НЕ ПЕРЕКЛЮЧАЕТСЯ 0001, 0002, 0003 это не происходит. Почему?
-
(https://i.imgur.com/Zyz16OK.png)
убрал лишние клики и прочее.
или ты все же пытаешься выжать наращивание из этого?
$pass = $_num
WHILE(STRLEN($pass) < 4) //количество символов в пороле
$pass = STRCONCAT ("0",$pass)
END_CYC
яж тебе написал, что $_num в этом кусочке не наращивается, она всегда равна нулю. тут либо после цикла увеличиваешь значение $_num, либо в цикл for это все, как на скрине выше.
-
Я нашел ошибку у себя KEYSTRING($_num) не поменял. Спасибо! что уделяете мне время я вить ток учусь, классная программа.
-
А буквенный подбор можно сделать?
-
Тогда уж надо программу прекрывать раз она на все способна. Я всеволишь спросил мелочь
-
как по мне, любой бот - это уже злой умысел. да тут походу в каждой теме злой умысел, а в этой всегото пустяковый подбор пароля.
вот накидал для пароля длиной в 4 символа . включает в себя цифры и буквы латинского алфавита в нижнем регистре. нужные символы можно добавить или убрать. количество символов в пароле также можно изменить добавлением или исключением цикла. вероятно есть более простой и универсальный алгоритм, я ничего лучшего не придумал. можно погуглить.... но лень.
STRSEPARATE("0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,g,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z",",",$arr)// все возможные символы, которые присутствуют в пароле.
LOGSHOW (1, 500,500)
LOGCLEAR
//примиер для пароля в 4 символа, от "0000" до "zzzz"
FOR($num4=0,$num4<ARRSIZE ($arr))
FOR($num3=0,$num3<ARRSIZE ($arr))
FOR($num2=0,$num2<ARRSIZE ($arr))
FOR($num1=0,$num1<ARRSIZE ($arr))
$pass = STRCONCAT ($arr[$num4],$arr[$num3],$arr[$num2],$arr[$num1])
LOGWRITE($pass)
waitms(100)
END_CYC
END_CYC
END_CYC
END_CYC
HALT
-
Это тоже устроит, спасибо! Добрый человечек! :)
-
Добавим универсальности по количеству разрядов без изменения размеров кода
STRSEPARATE("0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,g,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z",",",$arr) // все возможные символы, которые присутствуют в пароле.
$razr = 4 // количество разрядов
LOGSHOW(1, 500,500)
LOGCLEAR
//пример для пароля в n символов, пример: от "0000" до "zzzz"
$as = ARRSIZE($arr)
$variants = POW($as, $razr)
FOR($num=0, $num < $variants)
$numt = $num
$pass = ""
FOR($r=$razr-1, $r > -1, -1)
$st = POW($as, $r)
$ind = INT($numt/$st)
$numt = $numt - ($st*$ind)
$pass = STRCONCAT($pass, $arr[$ind])
END_CYC
LOGWRITE($pass)
//waitms(50)
END_CYC
HALT
-
Тоже неплохо, но почему-то вводит буквы на русском языке?
-
Это в любом из вариантов будет.
Если используешь для ввода KEYSTRING, язык нужно задавать целевому окну и окну кликера. В твоём случае - английский.
Потому, что KEYSTRING не вводит строки, а жмёт клавиши на клавиатуре.
Проще вводить через буфер обмена (или через привязку, но не советую).
-
Раскладку на клавиатуре поменял и все норм.
-
Добрый день.
Вопрос коду, какая функция отвечает за ввод цифр именно в то окно в которое мне необходимо. Как привязать это окно?
и почему перебор цифр в логе происходит быстрее чем в окне ввода ???