X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Автоматизация интерактивных программ
k0ttee
k0ttee
Topic Starter сообщение 19.4.2018, 10:58; Ответить: k0ttee
Сообщение #1


Автоматизация интерактивных программ, в переводе на человеческий - не интерактивная программа, которая командует интерактивной программой.
Чтобы было понятно о чем речь...
Не интерактивная программа - это которая отработала и сдохла, интерактивная - это которая просит вводить с клавиатуры.

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

Как автоматизировать интерактивные программы

Чтобы продемонстрировать суть, напишем два скрипта (один будет спрашивать, второй отвечать). Бред сумасшедшего на уроке информатики? В теории - да. На практике - промышленное клепание кошельков криптовалюты, с последующим перекладыванием со всех в один... Чекань монету пока горячо. ;)

Шаманство ввода-вывода будет делать утилита expect. Кстати, она умеет записывать сделанные руками вводы... Так что возможно записать скрипт не написав ни единой строчки кода.
#установка Ubuntu
apt-get install expect
#установка MacOS
brew install expect


Вот, маленький пример. Файл questions.sh спрашивает, файл answerbot.sh отвечает.
Прикрепленное изображение


Вариант для ленивых

Autoexpect умеет записывать выхлоп, и то, что вы вводите.
Нужно просто запустить с ним прогу, руками проделать действия до завершения, а autoexpect все подхватит и запишет в файл script.exp

Прикрепленное изображение


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 19.4.2018, 11:12; Ответить: prolisk
Сообщение #2


(k0ttee)
expect

"исключения" ?
Как в питоне try-except.
Именно по исключениям ловишь разные варианты и "говоришь" что делать боту.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 19.4.2018, 12:58; Ответить: k0ttee
Сообщение #3


по исключениям ловишь разные варианты

Срабатывает только для точных совпадений выхлопа. Но можно облегчить себе жизнь, если целевая прога умеет выдавать меньше.

Еще не вчитывался, проделал пример... И тут же ломанулся реализовывать свой коварный план.
Там еще можно переменные подставлять и регулярку.
Сейчас размышляю над отловом и подстановкой выхлопа: хочу узнавать баланс, затем отправлять все сколько можно.

Вот коды, чтоб... Если захочется потискать, чтоб не перепечатывать с экрана. ;)

Файл questions.sh
#!/bin/bash
echo "Hello, who are you?"
read $REPLY
echo "Can I ask you some questions?"
read $REPLY
echo "What is your favorite topic?"
read $REPLY


Файл answerbot.sh
#!/usr/bin/expect -f
set timeout -1
spawn ./questions.sh
expect "Hello, who are you?\r"
send -- "Im the Cat\r"
expect "Can I ask you some questions?\r"
send -- "Yes, why not\r"
expect "What is your favorite topic?\r"
send -- "Shitcoins\r"
expect eof


Перед запуском, не забываем сделать файлы исполняемыми:
#Linux
chmod +x ./questions.sh
chmod +x ./answerbot.sh
#macOS
chmod 755 ./questions.sh
chmod 755 ./answerbot.sh


И запуск...
./answerbot.sh


Тестовый пример - компьютер будет сам с собой разговаривать. Зато очень простой код. :unsure:
Практическое применение - наклепать кошельков, собирать с кранов (теоретически будет выходить до 200 сатоши с одной капчи). :D

Немного практики

Клепатель кошельков тупо подает команду создания, затем... при любом выхлопе - командует exit
#!/usr/bin/expect -f
set timeout -1
spawn ~/Downloads/shitcoin/simplewallet --set_log 0 --password password --generate-new-wallet=test
expect {
    "*\r" { send -- "exit\r" }
}
expect eof

На выхлопе получаю 2 файла: один из них - кошелек, второй - содержит строку с публичным адресом.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 19.4.2018, 13:21; Ответить: prolisk
Сообщение #4


(k0ttee)
Срабатывает только для точных совпадений выхлопа.

я думаю что можно реализовать и неточные. (contains, who are yo* и т.п.)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 19.4.2018, 19:53; Ответить: k0ttee
Сообщение #5


Пока пытался извлекать в переменную баланс, чуть не наблевал на себя (когда перенаправлял выхлоп tee на grep).

Файл bal.exp запрашивает баланс и сразу на exit. Весь выхлоп интерактивного взаимодействия подхватывает tee, затем выделяется строка с балансом средствами grep.
#!/bin/bash
#balance=`./bal.exp`
./bal.exp | tee -a $log >(grep 'available balance' > tee_log.txt)
exit


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 23.5.2018, 22:48; Ответить: k0ttee
Сообщение #6


Как завещал Кот Ленина: практиковаться, практиковаться и еще раз практиковаться. :P

Выкатываю свою поделку, которая помогла мне клепать сотни кошельков для щиткоинов.

Ведущий файл (назвать можно generator.sh)
#!/bin/bash

name=name #шаблон имени кошелька (номер подставляет цикл)
min=01 #каким номером начать
max=10 #каким номером закончить

#цикл
for (( number=$min; number <= $max; number++ ))
do
    ./gen.exp $name $number #генерирую
    address=`cat $name$number.address` #читаю адрес
    echo "$name$number $address" >> list.txt #дописываю адрес в список

    rm $name$number.address #удаляю файл адреса
    echo ""
    echo "$name$number" #показываю текущий номер
done

И ведомый (назвать gen.exp)
#!/usr/bin/expect -f

#в первой переменной принимаю имя, во второй - номер
set varName [lindex $argv 0]
set varNumber [lindex $argv 1]

set timeout -1

spawn ~/Downloads/simplewallet --set_log 0 --password password --generate-new-wallet=$varName$varNumber

expect {
    "*\r" { send -- "exit\r" }
}
expect eof


На выхлопе получается сколько нужно кошельков, да файл list.txt с адресами.

Зачем Коту много-много кошельков? Для промышленного сбора халявных щиткоинов, разумеется. Думаете откуда у Кота задние лапы растут? Оттуда и растут. :D


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 24.5.2018, 11:24; Ответить: prolisk
Сообщение #7


(k0ttee)
Для промышленного сбора халявных щиткоинов, разумеется

собираешь там где нет капчи или...?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Можно жить на доход с партнёрских программ?
13 Santey 2225 15.3.2024, 19:43
автор: wanessa
Горячая тема (нет новых ответов) ✅ Dolphin - умная автоматизация вашей рекламы Facebook
54 Dolphin_Support 19181 27.2.2024, 18:01
автор: Dolphin_Support
Открытая тема (нет новых ответов) Тестировщик программ на BAS
Требуется
0 Mukis 938 5.5.2023, 12:22
автор: Mukis
Открытая тема (нет новых ответов) Автоматизация работы в браузере (BAS)
11 Moonsoon 7350 11.4.2023, 6:23
автор: Skyworker
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСбор баз, парсинг информации, постинг, автоматизация
Качественно и в срок
21 SEOMR 20756 22.7.2022, 15:10
автор: iodjin


 



RSS Текстовая версия Сейчас: 29.3.2024, 10:39
Дизайн