Архив блога VadoZ

Сообщения с тегами ‘моды’

Делаем мод для XRumer-а. Часть 4-я, последняя

4th Декабрь, 2008

Пришло время обучить Xrumer находить и заполнять форму подачи объявления.
Смотрим по какому URL находится форма - add.php , отлично, добавляем в xurl соответствующее правило:

AddLinkRule([
0,'add.php'
],URL_TONEWPOST);

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

Смотрим исходный код формы:
<form action="add.php?event=add" enctype="multipart/form-data" method="post"><strong>Добавление объявления</strong> Категория: <select class="maxiinput" name="rubrika"> <option style="color: #CD8181;" value="0|||||">Работа и бизнес</option> <option value="71|72|Разное|Прочие мелочи|"> -   Прочие мелочи</option> </select><input name="stime" type="hidden" value="1228399684" /> Тема объявления:<span style="color: #ff0000;">*</span> (не более 60 символов) <input class="maxiinput" maxlength="60" name="zag" /> Текст объявления: <textarea class="maxiinput" style="height: 200px; width: 300px;" name="msg"></textarea> Тип объявления:<span style="color: #ff0000;">*</span> <input name="type" type="radio" value="П" /><strong><span style="color: #ee2200;">П</span></strong>редложение <input name="type" type="radio" value="С" /><strong><span style="color: #1414cd;">С</span></strong>прос Ваше имя: <input name="name" type="hidden" value="testnik" /><strong>testnik</strong> Срок хранения объявления: <select style="FONT-SIZE: 13px" name="days"> <option value="7">7 дней</option> <option value="14">14 дней</option> <option value="30">30 дней</option> <option value="60">60 дней</option> <option value="90">90 дней</option></select><input class="longok" type="submit" value="Сохранить" /> </form>

Как видим нам нужно заполнить следующие поля:
rubrika - выбор рубрики
zag - тема обьявления
msg - текст обьявления
type - тип обьявления
days - срок хранения обьявления
Поле rubrika мы игнорируем – это обычный SELECT и Хрумер сам будет пытаться выбрать значение соответствующее списку приоритетных разделов проекта.
Срок хранения имеет смысл сделать максимально возможным – 90 дней (нужно передать значение 90), а тип объявления – предложение (нужно передать значение П).
Открываем xas.txt и добавляем в него следующие строки:

#type
П
#days
90
#zag
SUBJ1
#msg
MESSAGE

Все! Мод готов!
Если лень идти пошагово - можно скачать готовый мод .

З.Ы.
Следует заметить, что мы получили очень сырой мод. В чем его сырость – не думаю, что админы спят и видят, чтоб на их досках паслись исключительно боты, соответственно всеми доступными им средствами будут бороться с нами – менять урлы, добавлять поля и т.д. Поэтому чтоб получить полноценный мод нужно провести еще довольно таки большую работу по анализу имеющихся досок, но мне этим занимается некогда…

Пара советов для желающих довести данный мод до ума:
1) Соберите большую базу, прогоните по ней тестовый проект с включенной системой самообучения – так Вы отловите неизвестные программе поля.
2) При прогоне включайте подробные отчеты – так Вы отловите ресурсы с измененной структурой ссылок.
Что делать с полученным добром Вы уже знаете ;)
Удачи!

XRumer ,

Делаем мод для XRumer-а. Часть 3-я обучаем Хрумер логиниться в досках

3rd Декабрь, 2008

Обучаем Хрумер логиниться в досках.

Привет всем, кто с нами. Продолжаем нашу повесть про обучение Xrumer-a.
Сейчас мы научим логиниться в досках. Сразу скажу, что обычно это не нужно – Xrumer прекрасно поддерживает сессии и большинство досок считает вас залогонеными сразу после регистрации, но, как говорится, случаи бывают разные.
Первым делом обучим XRumer отличать ресурсы где мы уже залогонены, от ресурсов где нам предстоит войти под своим именем. Запускаем любимы браузер, идем в любую доску и логинимся там ручками… Сделали? Что изменилось? Правильно, появилась надпись «Ваш Профиль» - чем не флаг для XRumer-а? Смотрим как эта надпись выглядит в HTML виде и добавляем ее к списку маркеров флага LOGGEDIN (надеюсь Вы еще не забыли, что список флагов состояний программы находится в xmessages.txt). Для версии 5.02 должно получится так:

#<strong>Logged in as:;>Log Out</a>;act=Login&CODE=03;loged in;&action=logout;?action=logout;?logout=true;Ваша регистрация закончена.;вы вошли как:;registration is now complete;you may now begin posting using your new username and password;Ваша регистрация теперь завершена.;Спасибо, Вы зарегистрировались и авторизованы;logout.php;Регистрация завершена. Вход и переадресация...;Вы зашли как <b>;hello, dear <b>;Вы зашли под логином: ;>You are logged on as<br>;>0 messages</a>, 0 are new.<br;index.php?action=logout;>You may now begin posting using your new UserName and Password.<;/ubb/my_profile.;Your registration is complete and you are now logged in;>logout</a>;>log out [ ;>Вы вошли как <A href="javascript://";<p class="home"><b>Вошли как:;<a href="log_off_user.asp";>Ваш Профиль<
LOGGEDIN

Теперь научим XRumer находить форму входа. Форма во всех рассматриваемых досках находится по адресу tools.php?event=login , следовательно нам нужно прописать в файле xurl.txt правило, согласно которому хрумер будет перемещаться на страницу логина.
Добавляем в xurl.txt следующие строки:

AddLinkRule([
0,'tools.php?event=login'
],URL_TOLOGIN);

Следующий этап – заполнение и отправка формы регистрации.
Смотрим HTML код формы:

<form action="tools.php?event=regenter" method="post">
<strong>Вход в систему</strong>
Имя:<input class="miniinput" name="myname" />
Пароль:<input class="miniinput" name="mypassword" type="password" />
<input class="longok" type="submit" value="Войти" />
</form>

Как видим XRumeru нужно заполнить всего 2 поля: myname и mypassword. Добавляем эти поля в файл xas.txt, не забывая, что Хрумер учитывает и вхождение слов в поля.
В итоге xas.txt примет такой вид:

#!mail;email
EMAIL
#url
HOMEPAGE
#login;myname
NICKNAME
#!password
PASSWORD
#gorod;icq;phone;company;about

#rules
1

Может возникнуть вопрос – куда делось поле mypassword? А никуда не делось – Хрумер увидит , что описанное нами в xas.txt имя password входит в mypassword и прекрасно его заполнит.
Проверяем что у нас получилось – включаем режим «Рассылка от ранее зарегистрированного пользователя» и нажимаем кнопочку Тест. Тут нас ожидает неприятный сюрприз - Хрумер грязно выругался фразой “Result: не нашлось формы для отправки; “. Проверяем содержимое папки Debug - видим, что Хрумер таки заходил на страницу логина, но форму чего-то незаполнил… Уж не знаю с чем это связано, но сдается мне именно с этим связаны крики о плохом пробиве в режиме «Рассылка от ранее зарегистрированного пользователя» . Анализ ситуации привел меня к весьма неутешительному выводу – хрумер хочет найти полноценную форму с сабжектом и textarea, и ему абсолютно посрать на то, что мы тут должны всего-то залогониться… У нас нет особого выбора кроме как сказать ему, что на данной страничке эти поля не является жизненно необходимыми. Открываем файл флагов состояний (xmessages.txt) и добавляем признак формы логина (например строку name=mypassword) для флагов FORCE_TEXTAREA и FORCE_SUBJECT.
Получатся такие 2 строки:

#name=mypassword
FORCE_TEXTAREA
#name=mypassword
FORCE_SUBJECT

Перезапускаем XRumer и снова нажимаем кнопочку Тест.
Изучаем папку Debug и радуемся полученному результату.

З.Ы.
не забудьте по окончании теста снять галочку «Рассылка от ранее зарегистрированного пользователя», а то завтра на форуме Ботмастера будет куча гневных постов из разряда “пробив гавно” :-)

XRumer ,

Делаем мод для XRumer-а. Часть 2-я регистрация в ресурсах.

30th Ноябрь, 2008

Пришло время обучить XRumer регистрации в досках. Тут не все так просто. Сначала нам нужно объяснить ему, что ОБЯЗАТЕЛЬНО нужно регистрироваться иначе он будет пытаться постить анонимно… разумеется в настройках XRumer-а есть галочка «Обязательная регистрация + постинг»,

но мы не ищем легких путей :).

Давайте найдем признак, который сможет подсказать XRumer-у, что нужно обязательно зарегистрироваться. Что такое есть уникальное в движке, что может служить признаком? Да что угодно! Хоть кусок ссылки на страницу регистрации! Так и запишем!

Открываем файл xmessages.txt , находим в нем строку REGANYWAY и в конец предыдущей строки добавляем ;event=reg
Для XRumer-а это будет служить подсказкой, что первым делом надо завести тут аккаунт.
Отлично, теперь надо обьяснить ему что для регистрации аккаунта нужно перейти по ссылке tools.php?event=login . За логику перемещения XRumer-а по сайтам отвечает файл xurl.txt, читаем справку:


Синтаксис

AddLinkRule([область_поиска,'строка', необязательный_параметр_логики,
...
], метка_ссылки);

Где:
область поиска - цифровое значение, задающее, где именно производится поиск строки: 0 - ссылка в нижнем регистре, 1 - ссылка как есть в
HTML-коде, 2 - ссылка вместе с анкором в нижнем регистре
строка - строчка, которая должна входить в область поиска, чтобы данное правило выполнялось
необязательный_параметр_логики - здесь может быть прописан или не прописан false; если прописан false, это значит, что строка наоборот НЕ
должна присутствовать в области поиска
метка ссылки - это метка, которой будет помечена данная ссылка если заданное правило выполняется:
URL_TONEWPOST - ссылка на создание нового сообщения / топика
URL_TOREGISTRATION - ссылка на регистрацию


И согласно синтаксису описанному в справке добавляем в него правило:

AddLinkRule([
0,'tools.php?event=reg'
],URL_TOREGISTRATION);

Важный момент – XRumer зверь своенравный и есть у него одна черта не описанная в справке – первое правило файла xurl.txt он игнорирует. Поэтому стоит первым правилом поставить какую-то пустышку, например

AddLinkRule([0,'action=logout'
],'');

Тогда на данном этапе наш xurl.txt примет вид:

AddLinkRule([0,'action=logout'
],'');
AddLinkRule([
0,'tools.php?event=reg'
],URL_TOREGISTRATION);

Следующий этап – обучение полям формы регистрации. Тут все очень просто – смотрим на форму
на страничке http://board.baxonet.com/tools.php?event=reg и понимаем, что нам нужно заполнить поля:

Имя
Пароль
E-mail
Поставить галочку «С правилами ознакомлен»
Ну и конечно-же URL

Остальные по желанию.
Смотрим html код странички , точнее фрагмент отвечающий за вывод формы:

<form action="tools.php?event=reguser" method="post"> <strong>Регистрация</strong> Имя:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="25" name="login" /> Пароль:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="25" name="password" type="password" /> E-mail:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="40" name="email" /> Город:<input class="maxiinput" maxlength="60" name="gorod" /> URL:<input class="maxiinput" maxlength="40" name="url" /> ICQ:<input class="maxiinput" maxlength="15" name="icq" /> Телефон:<input class="maxiinput" maxlength="20" name="phone" /> Организация:<input class="maxiinput" maxlength="50" name="company" /> Коротко о себе:<textarea class="maxiinput" name="about"></textarea> <input name="rules" type="checkbox" />С <strong><a href="tools.php?event=about">правилами</a></strong> ознакомлен <input class="longok" type="submit" value="Зарегистрироваться" /> </form>

Обнаруживаем, что
Имени соответствует поле - login
Паролю - password
E-mail-у - email
галочке «С правилами ознакомлен» - rules
URL – url

Важно! Мы видим, что кроме вышеперечисленных полей есть еще и поля gorod, icq, phone, company, about – нам они не нужны, но если XRumer не будет знать как их заполнять, то форму он не заполнит и не отправит. Поэтому важно собрать все поля из формы, а в файле ассоциаций присвоим им пустое значение.

Все поля собраны, открываем справку по файлу ассоциаций xas.txt:


Синтаксис

#имя_поля1;имя_поля2;…
присваиваемое_значение

Где “имя_поля” - это имя поля формы в HTML (например, в

<input name="login" />

- имя поля это login), а “присваиваемое_значение” - то значение,
которым должны заполяться данные поля:

NICKNAME - никнейм пользователя
PASSWORD - пароль
MESSAGE - текст отправляемого сообщения
EMAIL - адрес электронной почты
SUBJ1 - заголовок топика
HOMEPAGE - домашняя страница
любое другое значение - значение, указанное пользователем


Прописываем правила в соответствии с синтаксисом:

#!mail;email
EMAIL
#url
HOMEPAGE
#login
NICKNAME
#password
PASSWORD
#gorod;icq;phone;company;about

#rules
1

Пояснений, пожалуй, требуют только последние строки. Поле rules у нас фактически чекбокс и приличный браузер должен отослать 1 если этот чекбокс отмечен, соответственно мы прописываем 1 в строке «присваиваемое_значение». Поля gorod, icq, phone, company, about мы решили не заполнять, соответственно оставляем там пустую строку (но заполнить их абсолютно не проблема, кому понадобится - может сделать в рамках закрепления пройденного материала).
Ну и отдельное ВНИМАНИЕ на поле email! Все заметили, что там появилось упоминание !mail ? Это фича XRumer-а , хотя она там и не нужна (по логике), но без нее ничего работать не будет… не пытайтесь это понять, просто запомните !mail; ставить надо полюбому.

Пришло время проверить чему мы там наобучали XRumer.
Создадим простейший тестовый проект – что-то типа этого:

Запускаем хрумер, в поле урла для тестирования вводим http://board.baxonet.com, жмем на кнопку Тест, закрываем хрумер.

Идем в папку Debug ищем там файл вида LAST GET idх.htm , просматриваем его в браузере, если видим надпись типа «Вы успешно зарегистрированы.» , значит все сделали правильно. Если не видим такой надписи – значит где-то допустили ошибку – проверяйте содержимое измененных файлов.
Теперь нам нужно объяснить Хрумеру , что наличие строки «Вы успешно зарегистрированы.» является 100 процентным признаком успешной регистрации. Для начала посмотрим наш файл в виде html - обнаруживаем, что для машины наш признак будет выглядеть так:

>, Вы успешно зарегистрированы. <

Теперь добавляем этот признак в файл xmessages.txt , для этого находим в нем строку
REGISTERED
И к строке находящейся над REGISTERED добавляем

;>, Вы успешно зарегистрированы. <

Все, Хрумер обучен регистрации на досках WR-Board.

Правда просто?

XRumer , ,

Делаем мод для XRumer-а. Часть 1-я подготовка.

29th Ноябрь, 2008

Очень интересным представляется обучить XRumer работать с новыми ресурсами – меньше людей, которые работают с ними, соответственно менее параноидальные админы
и т.д. и т.п. В принципе основы обучения расписаны в справке, но ИМХО намного проще будет разбираться с обучением имея перед глазами наглядный пример.

Давайте обучим XRumer постингу в доски объявлений – этож просто ультра ду - и бэк на шару и какой-никакой трафик.
Мод делать будем для досок на базе WR-Board.
Итак, начнем-с!

Первым делом собираем базу досок. Для этой грязной цели будем использовать парсер Hrefer идущий в комплекте с XRumer-ом. Для начала нам нужно создать 2 файлика - wr_addwords.txt и wr.txt . Помещаем их в папку Templates Hrefer-а. Файлик wr.txt оставляем пустым, а вот в wr_addwords.txt добавляем следующие строки:

"Powered by" "WR-Board"
Доска объявлений "Powered by" "WR-Board"
Доска объявлений  "WR-Board"

Естественно можно и даже нужно добавить своих признаков :).
Запускаем Hrefer, на закладке Search Engines options & Template в выпадающем списке Template выбираем wr, в выпадающем списке SE for parsing выбираем нужную поисковую систему.

Идем в Options, ставим галку на Disable filtering by Template.

Все, настроили, жмем Start parsing. Спустя какое-то время имеем базу досок объявлений на базе WR-Board. Самое время заняться обучением XRumer-а.

Есть 2 пути, по которым можно пойти обучая XRumer:
1) Обучить его через систему самообучения.
2) Обучить через ручную правку внутренних файлов программы.

Лично мне ближе 2-й вариант. Почему? Все очень просто – автор XRumer-а позиционирует его как инструмент для постинга в форумы, соответственно все базовые настройки заточены именно под это. В результате даже после самообучения хрумер может убежать с нашей доски на более приятный ему форум и вместо бэка и посетителей мы получим абузу :). Вам оно надо? Мне тоже нет, так что будем править файлы.
Первым делом удаляем нахуй просто удаляем содержимое файлов xurl.txt и xas.txt (надеюсь сюда зашли грамотные люди и о том, что для такого гиблого дела лучше завести отдельную копию файлов XRumer-а им говорить не нужно, благо на одной машине можно иметь хоть 100 копий XRumer-а в разных папках). Удалили? Теперь нам придется самостоятельно наполнить их правилами для XRumer-а. Откроем в браузере любую из собранных досок, например http://board.baxonet.com/ , что должен с ней сделать XRumer ?
1) Зарегистрироватся.
2) Залогониться.
3) Отправить обьявление в нужную рубрику.

Так по пунктам и пойдем. Следите за публикациями!

Желающие могут приобрести XRumer по моей ссылке. Посильную помощь в освоении этого инструмента гарантирую.


Продолжение читайте на следующих страницах:

XRumer