Примеры:
CHECK4CARRIER(#NOCARRIER)
CHECK4CARRIER(5)
CHECK4CARRIER(ON)
CHECK4CARRIER(OFF)
CHECK4OUTPUT(NUMBER)
Это будет выполнено подобно нижеописанной функции ALARM: Если выходной
сигнал (OUTPUT) модема обнаружен, то переходы будут осуществляться
непосредственно к указанной маркировке. Вы можете также передать управление
к *NOCARRIER, *START и *END. Также возможно отключить проверку на OFF, то
есть заблокировать указанную проверку выходного сигнала.
Например:
CHECK4CARRIER(#NOCARRIER)
CHECK4CARRIER(5)
CHECK4CARRIER(OFF)
DIAL
Набор номера PHONE_NR. Если с системой нет соединения, то сначала в
модем будет послана команда: "Повесить трубку!".
Например: DIAL
HANGUP
Поднять и опустить трубку.
Например: HANGUP
WAIT4STRING(NUMBER,STRING,NUMBER,
COMMAND,STRING)
В представленном здесь языке скриптов это самая важная команда. После
ее выполнения выходной сигнал модема будет находиться в состоянии ожидания.
В этот момент должна начаться загрузка специального слова. Если стыковка
осуществлена, то скрипт продолжается, если -- нет, то после таймаута в модем
будет отправлена заданная последовательность, затем -- вновь таймаут и,
наконец, идет выполнение команды.
Важно: Сначала команда WAIT4STRING проверяет текущую строку с
представленным словом. Синтаксис: WAIT4STRING(a,b,c,d,e).
a
Определить таймаут в диапазоне от 0 до 255 секунд. Ноль соответствует
неограниченному ожиданию, то есть ждать до тех пор пока не наступит так
называемый TOTAL TIMEOUT (скрипт переходит в секцию #NOCARRIER в том случае,
если данные не поступают из модема в течение пяти минут). Если ничего не
получено, то последовательность в потоке данных распознается снова, или в
какой-то момент несущая частота объявляется потерянной.
b
Последовательность данных, которая будет послана в модем после
таймаута.
c
Частота отказов или количество общего времени, в течение которого может
выполняться фатальная команда. Диапазон: от 0 до 255 (0=никогда, 1=первый
раз).
d
Выполнение специальной фатальной команды. Это могут быть любые команды,
исключая: ALARM, WAIT4STRING и IF.
e
Последовательность данных для ожидания. Данные чувствительны к
регистру.
Например: WAIT4STRING(15,^M,2,GOTO(1),ogin:)
В этом примере происходит ожидание последовательности ogin: в течение
15 секунд. Если стыковка не получилась, а каретка возвращается в модем (^M),
то команда снова ждет 15 секунд, пока вновь не наладится стыковка с
последовательностью данных ogin:.
Как только истекут следующие 15 секунд, вызывается фатальная команда,
что означает переход к GOTO с меткой под номером 1.
LOG_SESSION_ON
Начиная с этого пункта, все данные поступающие из модема записываются в
файл регистрации.
Например: LOG_SESSION_ON
LOG_SESSION_OFF
Если содержимое экрана записано в файл регистрации, то к этому пункту
больше не будет обращений.
Например: LOG_SESSION_OFF
SEND(STRING)
Команда SEND передает последовательность данных в модем. Через эту
команду вы можете пересылать в модем переменные со знаком $. В конец
последовательности передается возврат каретки. Если последовательность
данных не задана, то сразу осуществляется переход на возврат каретки.
Например:
SEND(echo Hacked you system Time: $TIME - Date:
$DATE > HACKED.TXT)
В данном примере команда SEND посылает в модем следующую строку:
echo HAcked your system Time: 23:00 - Date: 24-12-95 > HACKED.TXT
SEND_()
Эта команда аналогична вышеописанной, но она не посылает в модем символ
возврата каретки ^M. Ее можно использовать, если вам нужно загрузить в модем
только один символ или командный режим +++.
Примеры:
SEND_(n)
SEND_(+++)
SEND_NEXT_DIC(NUMBER)
Например: SEND_NEXT_DIC(1)
SEND_DIC(NUMBER)
Переслать текущий словарь в модем.
Например: SEND_DIC(1)
NEXT_DIC(NUMBER)
Переместиться на слово, соответствующее аргументу NUMBER.
Например: NEXT_DIC(1)
SEND_NEXT_BRUTE(NUMBER)
Используя Brute Force Generator, сгенерировать следующую допустимую
последовательность и переслать ее в модем.
Например: SEND_NEXT_BRUTE(1)
SEND_BRUTE(NUMBER)
Переслать в модем текущую последовательность допустимых данных из
словаря Brute Force Generator.
Например: SEND_BRUTE(1)
NEXT_BRUTE(NUMBER)
Сгенерировать следующую допустимую последовательность данных из словаря
Brute Force Generator.
Например: NEXT_BRUTE(1)
IF VARIABLE OPERATOR STRING THEN COMMAND
Команда IF первой версии этой программы не очень гибкая. Синтаксис этой
команды следующий:
IF THEN
Означает равносильность при аргументе =, больше или меньше при
аргументах < или > соответственно и переменную содержащую любую
последовательность слов при аргументе ~. Переменные и последовательности
должны быть дискретными переменными.
Эта команда выполнится в том случае, если будет соблюдено условие TRUE.
Чтобы ее использовать, просмотрите список команд для оператора WAIT4STRING.
Например:
IF STRING~ogin THEN GOTO(3)
То есть, если текущая строка (STRING) содержит дискретную (~)
последовательность данных ogin, то идти (GOTO) к маркеру с номером 3.
EXECUTE(STRING)
Выполнить DOS-программу, а затем запустить скрипт. Вы должны включить
переменные в выполняему строку. Вы также должны выполнить соответствующие
внутренние команды MS DOS. Помните, что перед переменной может стоять знак $
с возможными пробелами позади и впереди самого знака.
Важно: Если вы хотите запустить программу в то время, когда по вашему
скрипту осуществлено соединение, то вы должны использовать драйвер fossil. В
противном случае ваш компьютер зависнет. Поэтому запустите X00.EXE E 2 перед
выполнением программы Login Hacker.
Важно: Чтобы ваша программа не была повреждена, предварительно
сохраните ее в каталоге отличном от исходного.
Примеры:
EXECUTE(C:\SB\VPLAY C:\SB\VOC\HACKED.VOC)
EXECUTE(COPY $LOGFILE C:\HACKED)
ALARM(STRING,COMMAND)
Опасно! Нажимать на спусковой крючок! Если на удаленном компьютере
сработала система защиты, то вы будете активны до тех пор, пока не
выполнится эта команда.
STRING
Последовательность, для которой осуществляется поиск данных с их
последующей передачей в модем.
COMMAND
Эта команда будет выполнена после стыковки. Чтобы ее использовать,
просмотрите листинг команд для WAIT4STRING. Примените эту команду в том
случае, например, если вы взломали BBS, а сисоп вас раскусил и задает глупые
вопросы. После этой команды вы автоматически прервете соединение и
остановите выполнение скрипта.
Например:
ALARM(chat,GOTO(#END))
SET VARIABLE=STRING
Этой командой вы определяете переменную в секции #START или #NOCARRIER.
Если переменная является статической переменной, то вы должны это отметить.
Вы должны устанавливать только следующие переменные: STRING, DIAL_TRIED,
LOGIN_TRIED, S_TMP и D_TMP.
Например:
SET D_TMP=3
Определить статическую переменную D_TMP в качестве 3.
INC(DIGIT_VARIABLE)
Увеличить число указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после дополнения не находится в указанном
диапазоне.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например: INC(D_TMP)
DEC(DIGIT_VARIABLE)
Уменьшить чило указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после вычитания не будет находиться вне
указанного диапазона.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например:
DEC(D_TMP)
WAIT(NUMBER)
Ожидать до тех пор, пока идут секунды, определенные аргументом NUMBER.
Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535.
Например: WAIT(10) (десять секунд)
WAIT_(NUMBER)
Ожидать до тех пор, пока идут миллисекунды, определенные аргументом
NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до
65535.
Например: WAIT(500) (полсекунды)
BEEP
Создает сигнал, похожий на легкий звук бибикалки!
Переменные и управляющие символы
Речь идет о переменных, которые могут быть использованы в командах
SEND() или LOG(). Как уже отмечалось, закачка переменных в модем или файл
регистрации определяется символом $ (доллара), поставленным перед
соответствующей переменной, и пробелами. Вы можете использовать #DEFINE
любые специфические переменные. Вам их нужно только определить.
STRING
Символы пересылаются из модема в последнюю строку.
STRING2
Последние 250 символов отправляются из модема.
DIAL_TRIED
Фактические попытки набора номера.
LOGIN_TRIED
Фактические попытки получить имя и пароль.
TIME
Действительное время в часах и минутах (двоеточие пропускается).
Например, TIME=1505 означает 15:05.
DATE
Текущая дата в формате MMDD. Например, DATE=503 означает 3 мая.
DIC(1)
Текущий загруженный словарь 1.
BRUTE(2)
Текущая строка словаря Brute Force Generator 2.
S_TMP
Переменная строка. Вы можете ее использовать, как вам нравится.
D_TMP
Переменная для цифр. Вы можете ее использовать, как вам нравится.
В командах IF и SET вы можете использовать исключительно вышеописанные
переменные. Переменные из #DEFINE исключаются. Только статические переменные
и константы приемлемы для IF! Не нужно также использовать знак $ перед
переменной. Этот знак допустим только в командах SEND, LOG и WAIT4STRING.
Например:
IF TIME>1215 THEN GOTO #END
(отсоединиться после 12:15).
LOG($DIC(3))
SEND($S_TMP)
Теперь относительно спецсимволов. Вы можете записывать любые
управляющие символы вместе с командами LOG, SEND или WAIT4STRING через знак
^ (шапочка). Это означает, что вы можете ввести, например, ^M или написать
^^ ... окей?, или использовать любые конструкции от ^A до ^Z плюс ^[ ^\ ^] и
^^.
Например:
SEND_(^D)
#DEFINE
<определения>
#NOCARRIER
<некоторые команды>
#START
<ваш алгоритм>
#END
Сообщения об ошибках
Если в процессе компиляции вы получаете сообщение об ошибке, то
помните, что в вашем распоряжении имеется файл .BAK. Просмотрите и
внимательно изучите содержимое этого файла.
При компилировании скрипта может всплыть только два сообщения об
ошибке:
WARNING
Вы что-то не так скомпилировали. Компилятор в любом случае создаст
скрипт, который может запуститься без всяких проблем. Это сообщение,
например, может быть выдано, если невозможно найти указанный словарь.
Возможно, что вы не полностью подготовили копию.
ERROR
Это критическая ошибка. В какой-то момент компилятор прервал
необходимую процедуру завершения. Для исправления этой ошибки проверьте файл
с расширением .BAK и ваш исходный файл.
Пример стандартного скрипта
#DEFINE