вторник, 16 апреля 2013 г.

Антиспам и Joomla форумы


Всем Привет! Очередная статья размещена в рамках 4-го конкурса, проводимого разработчиками BotmasterLabs. Эта статья посвящена специальному режиму тематической рассылки в XRumer-е "Антиспам". Очень большой плюс этой системы – это бесмертные тематические сообщения в чужих топиках. Есть, конечно же, и минус – это зависимость в мощном компьютере и высокоскоростном интернет-канале. Это, конечно же, не сверхъестественная трудность в наше время, и она без проблем решается.
Главаня проблема, с которой сталкивается пользователь Хрумера перед тем как воспользоваться системой “Антиспам”, это незаспамленные форумы. Откуда их взять?! Это главный вопрос, который мучает. В этой статье я и хотел бы ответить на этот вопрос. Незаспамленные форумы – это форумы, куда еще не вступала нога Хрумера. Т.е. это форумы, которые в данный момент не поддерживаются Хрумером. Внимание! Тут хочу сделать пояснение: после каждого крупного апдейта XRumer становится способен пробивать тысячи трастовых, незаспамленных форумов на стандартных движках, но я решил пойти нестандартным путём - не дожидаться такого апдейта, а обучить программу какому-то движку, где вообще ещё не ступала нога хрумовода. Такие форумные движки существуют, и это не секрет. Речь пойдет о форум-компонентах для движка Joomla. С несколькими Хрумер уже знаком – это FireBoard и Kunena. Есть и другие компоненты. Я приведу в пример следующие: Ninjaboard, Joobb и Discussions. Нам нужно собрать базу этих движков с помощью Hrefer, сделать модификацию Xrumer и научить систему “Antispam” работать с этими движками.
Переходим к парсингу. В папке “Templates” создаем файл joomlaforum_addwords.txt и вставляем туда следующие запросы для парсинга:
inurl:com_ninjaboard
inurl:com_joobb
inurl:com_discussions
В этой же папке создаем файл joomlaforum.txt и вставляем туда следующие фильтры:
option=com_joobb
option,com_joobb
option=com_ninjaboard
option,com_ninjaboard
option=com_discussions
option,com_discussions
Открываем Hrefer и переходим в настройки парсинга:
В блоке “Duplicates filtering” поставьте галочку напротив "Enable filtering of duplicated links by hostnames". В блоке “Duplicates filtering method” выберите "By hostnames". В блоке “Query ordering” выберите "Words + Additive Words". Т.к. при парсинге будет применяться оператор inurl, то в качестве поисковой системы используйте Google. Способ парсинга без прокси и с операторами я уже подробно описывал в первой статье.
После парсинга переходим к регистрации аккаунтов. Обучать Хрумер регистрироваться на движке Joomla ненужно, т.к. Хрумер с этим хорошо справляется. Трудности заключаются в том, что админы удаляют из шаблона ссылки на регистрацию. А без них Хрумер не доберется до формы регистрации и не сможет зарегистрировать аккаунт. В третьей статье этот вопрос уже подымался. Я там указал как можно добиться более высокой пробиваемости движка Joomla, но не разжевал, поэтому может до кого-то и не доперло. Сейчас опишу все в подробностях.
Открываем Xrumer. Переходим: Настройки – Настройки инструментов.
В блоке “Пост-обработка ссылок” снимаем галочку напротив “Приводить ссылки форумов к индексу” и устанавливаем галочку напротив “Обрезать ссылки до ?”. Затем переходим: Инструменты – “Пост-обработка ссылок” и выбираем нашу собранную базу.
Далее нам понадобится еще один инструмент Хрумера. Переходим: Инструменты – Конвертер ссылок.
В блоке “Выбор шаблонов” создаем шаблон: “{url}{keyword}” (без ковычек). В блоке “Выбор Анкора” выбираем “Перебор всех анкоров из списка для каждой ссылки”.  В блоке “Метод генерации” ставим галочку напротив “В столбец” и выбираем “Стандартная генерация”. В блоке “Список ссылок” вставляем нашу собранную базу после пост-обработки. В блоке “Список анкоров” вставляем список из стандартных страниц регистрации на Joomla. Приведу список из 4 типов страниц:
?option=com_user&view=register
?option=com_users&view=registration
?option=com_comprofiler&task=registers
?option=com_registration&task=register
Если вы знаете еще стандартные типы страниц регистрации для Joomla, то напишите пожалуйста в комментарии. Далее жмем кнопку “Сгенерировать”. Переходим в блок “Результат” и жмем кнопку:  “Скопировать содержимое в буфер”. Создаем в папке “Links” текстовый документ с именем regsort.txt (к примеру) и вставляем в него содержимое из буфера.
Теперь нам надо файл regsort.txt прочекать на ответ сервера. Для этого нам понадобится программа HttpAnswer.
Запускаем программу. Задаем в качестве исходного файла наш regsort.txt и жмем “Старт”. После чека базы нам понадобятся файлы 2хх.txt и 3хх.txt. Берем содержимое этих файлов и вставляем в новый текстовый файл register.txt, который создаем в папке “Links”. В итоге в получившемся файле могут быть дубликаты. В Хрумере переходим: Инструменты – “Удалить повторные ссылки” и выбираем наш файл register.txt. Все! Наша база для регистрации готова.
Теперь надо обучить Хрумер работать с движками. Приведу пример на движке Joobb.  Открываем инструмент ModCreator.
В адресной строке инструмента вводим страницу аутентификации на движке JooBB http://www.agrochem.co.ke/index.php?option=com_joocm&view=login&Itemid=0 и жмем зеленую стрелочку. Теперь обучаем Хрумер новым полям. Кликаем правой кнопкой мышки по полю “User Name” и выбираем: Set FieldNICKNAME. Затем жмем кнопку “Добавить” (с зеленым крестиком). Аналогичную процедуру производим и с полем Password. В блоке "Результат" жмем "Сохранить". Далее переходим во вкладку xmessages.txt. Нам надо указать правила для Хрумера при аутентификации. Начнем с ошибки. Вводим ненастоящий логин и пароль и пытаемся залогиниться.
Перед нами появилось сообщение “Username and password do not match or you do not have an account yet”. Вот его то мы и будем использовать. В блоке “Обучение” напротив “Признак” вставляем “ Username and password do not match or you do not have an account yet ” (без кавычек), а напротив “Значение” из выпадающего списка выбираем “LOGIN_FAILED”. Жмем "Добавить".
Теперь перейдем к успешной аутентификации. Вводим правильные логин с паролем и пытаемся залогиниться. После аутентификации нужно заглянуть в html-код страницы. Для этого делаем правый клик мышки и выбираем View HTML-code.
Ищем ссылку выхода из аккаунта (логаут). В блоке “Обучение” напротив “Признак” вставляем “joocmlogout” (без кавычек), а напротив “Значение” из выпадающего списка выбираем “LOGGEDIN”.
Жмем "Добавить". Затем в блоке "Результат" жмем "Сохранить". Теперь гуляем по форуму и ищем форму для ответа в топик. Возвращаемся назад во вкладку xas.txt. Нам нужно обучить Хрумер новым полям при постинге сообщения.
Кликаем правой кнопкой мышки по полю “HUMAN VERIFICATION” и выбираем: Set Field – SECRETCODE. Затем жмем кнопку “Добавить” (с зеленым крестиком).
Еще нам нужно обучить Xrumer скачивать изображение каптчи. Поэтому открываем HTML-код страницы (правый клик мышки и выбираем View HTML-code).
На скриншоте видна ссылка на изображение каптчи. Поэтому в файл default.mask.txt из папки “ DeCaptcha” вставляем следующее:
[Include] [inLink]image.php[/]
          [inForm]name="captcha_code"[/]
[/]
Теперь переходим во вкладку xmessages.txt. Нам нужно указать хрумеру на неправельную каптчу. Для этого заполняем поля Subject и Message, вводим неправельную каптчу.
Перед нами появилось сообщение “The CAPTCHA code do not match”. Вот его то мы и будем использовать. В блоке “Обучение” напротив “Признак” вставляем “The CAPTCHA code do not match” (без кавычек), а напротив “Значение” из выпадающего списка выбираем “PICTOTRY”. Жмем "Добавить". Затем в блоке "Результат" жмем "Сохранить".
Теперь открываем файл xurl.txt и вставляем в него:
{Joobb}
AddLinkRule([0,'option=com_joobb',
0,'view=login'
           ],URL_TOLOGIN);
AddLinkRule([0,'option=com_joocm',
0,'view=login'
           ],URL_TOLOGIN);
AddLinkRule([0,'option=com_joobb',
             0,'view=forum',
             0,'forum='],URL_TOVIEW);
AddLinkRule([0,'option=com_joobb',
             0,'view=topic',
             0,'topic='],URL_TO_VIEWTOPIC);
AddLinkRule([0,'option=com_joobb',
             0,'view=edittopic'
           ],URL_TONEWPOST);
AddLinkRule([0,'option=com_joobb',
             0,'view=editpost'
            ],URL_TOREPLY);
AddLinkRule([0,'option=com_joocm',
             0,'view=editprofile'
            ],URL_TO_EDITPROFILE);
AddLinkRule([0,'option=com_joocm',
             0,'view=editprofile'
            ],URL_TO_EDITPROFILE2);
AddLinkRule([0,'option=com_joocm',
             0,'view=editsettings'
            ],URL_TO_EDITPROFILE3);
AddLinkRule([0,'option=com_joocm',
             0,'view=avatar'
            ],URL_TO_EDITAVATAR);
AddLinkRule([0,'option=com_joocm',
             0,'view=profile',
     0,'id='],URL_TO_VIEWPROFILE);
AddLinkRule([0,'option=com_joobb',
             0,'view=editprofile'
            ],URL_TO_EDITPROFILE);
AddLinkRule([0,'option=com_joobb',
             0,'view=editprofile'
            ],URL_TO_EDITPROFILE2);
AddLinkRule([0,'option=com_joobb',
             0,'view=editsettings'
            ],URL_TO_EDITPROFILE3);
AddLinkRule([0,'option=com_joobb',
             0,'view=avatar'
            ],URL_TO_EDITAVATAR);
AddLinkRule([0,'option=com_joobb',
             0,'view=profile',
0,'id='],URL_TO_VIEWPROFILE);
AddLinkRule([0,'option,com_joobb',
0,'view,login'
           ],URL_TOLOGIN);
AddLinkRule([0,'option,com_joocm',
0,'view,login'
           ],URL_TOLOGIN);
AddLinkRule([0,'option,com_joobb',
             0,'view,forum',
             0,'forum,'],URL_TOVIEW);
AddLinkRule([0,'option,com_joobb',
             0,'view,topic',
             0,'topic,'],URL_TO_VIEWTOPIC);
AddLinkRule([0,'option,com_joobb',
             0,'view,edittopic'
           ],URL_TONEWPOST);
AddLinkRule([0,'option,com_joobb',
             0,'view,editpost'
            ],URL_TOREPLY);
AddLinkRule([0,'option,com_joocm',
             0,'view,editprofile'
            ],URL_TO_EDITPROFILE);
AddLinkRule([0,'option,com_joocm',
             0,'view,editprofile'
            ],URL_TO_EDITPROFILE2);
AddLinkRule([0,'option,com_joocm',
             0,'view,editsettings'
            ],URL_TO_EDITPROFILE3);
AddLinkRule([0,'option,com_joocm',
             0,'view,avatar'
            ],URL_TO_EDITAVATAR);
AddLinkRule([0,'option,com_joocm',
             0,'view,profile',
     0,'id,'],URL_TO_VIEWPROFILE);
AddLinkRule([0,'option,com_joobb',
             0,'view,editprofile'
            ],URL_TO_EDITPROFILE);
AddLinkRule([0,'option,com_joobb',
             0,'view,editprofile'
            ],URL_TO_EDITPROFILE2);
AddLinkRule([0,'option,com_joobb',
             0,'view,editsettings'
            ],URL_TO_EDITPROFILE3);
AddLinkRule([0,'option,com_joobb',
             0,'view,avatar'
            ],URL_TO_EDITAVATAR);
AddLinkRule([0,'option,com_joobb',
             0,'view,profile',
     0,'id,'],URL_TO_VIEWPROFILE);
Теперь нам нужно обучить систему “Антиспам” работать с Joobb. Чтобы система гуляла по форумам и собирала топики, мы уже внесли изменения в xurl.txt. Это были URL_TOVIEW и URL_TO_VIEWTOPIC. Теперь открываем файл xpostmask.ini из папки “Antispam”. Вносим в конец файла следующий блок:
<p class="jbPost">[...]</p>
<p class="jbPost jbMarginRight[---]">[...]</p>
Откуда взять этот блок? Нужно заглянуть в html-код любого топика на движке Joobb и взять теги окружающие текст сообщения.
[---] – пропуск (skip), [...] – тело сообщения (get). С обучением закончили, переходим не посредственно к процессу регистрации и постинга.
Начнем с настроек. Переходим: Настройки – Скорость и Пробиваемость.
В блоке “Экспресс-настройка” переводим бегунок в “Выше пробиваемость”. В блоке ”Прецизионная настройка” устанавливаем галочки напротив: “Делать повторные попытки при таймаутах” и “Включить обработку фреймов”. В блоке “Опции распознавания пиктокода” устанавливаем галочку напротив “Включить распознавание ReCaptcha”. Выберите “Полуручной режим.
Переходим: Настройки – Дополнительные настройки.
В блоке “Рассылка” устанавливаем галочки напротив “Только регистрация (без постинга текста)”, “Входить под текущим аккаунтом, если логин занят”, “Если не работает BB-код – трансформировать его в HTML”.
Переходим: Настройки – Активация профайлов по e-mail.
Выбираем “Автоматический фоновый режим”, в блоках “Периодичность проверки почты” и “Макс. длительность сессии скачивания” устанавливаем нужное вам количество минут, а также устанавливаем галочки напротив “До-скачивать письма по завершении рассылки” и “Скачивать все письма, без фильтрации по заголовку”.
Затем создаем проект. Придумываем свой ник, заполняем поля домашней страницы, аськи, города и страны.
BBcode в подписи поддерживают только два движка (Joobb и Ninjaboard), поэтому следует гонять разные проекты по разным движкам. Авторегистрируем почту. В поле “Темы” используем макрос #title, т.к. мы будет производится ответ в топик. В теле сообщения используем спец-макрос для ситемы “Антиспам” – это [words]. Проект готов!
Выбираем нашу базу register.txt, устанавливаем количество потоков и жмем старт.
После регистрации нужно произвести сбор информации. Для этого нужно отключить режимы регистрации и активации почты, а также включить систему “Антиспам” в режим сбора информации.
В блоке “Режим работы” выбираем “Сбор информации для ответов”.
Далее выбираем стандартный шаблон “Template” и нашу собранную базу Хрефером. Переименуем ее в harvest.txt. Устанавливаем количество потоков и Стартуем. Вся информация будет складироваться в файл nodes.txt. Стоит учитывать тот факт, что минимальный размер этого файла должен быть не менее 100 Мб, а лучше, чтобы он был намного массивнее.
Регистрация и сбор информации уже произведены. Переходим к финишной работе системы “Антиспам”. Переходим настройки – Дополнительные настройки.
Установите галочки напротив “Рассылка от ранее зарегистрированного пользователя”, “Редактировать профиль после регистрации” и “Закачивать аватар при редактировании профиля”.
Затем переходим: Настройки – система “Антиспам”.
В блоке “Параметры подбора ответов” напротив “Мин. уровень тематичности” устанавливаем 65%, напротив “Макс. порог схожести” устанавливаем 40%, напротив “Мин. количество слов в ответе” устанавливаем 20, напротив “ Макс. количество слов в ответе ” устанавливаем 300.
В блоке “Режим работы” выбираем “Рассылка тематичных ответов”. А также здесь устанавливаем галочки напротив “Внедрять ссылку из проекта под ключевые слова” и “Использовать нейтральные фразы”.
Выбираем наш проект “JoomlaForum” и базу harvest.txt. Устанавливаем количество потоков меньше, чем при регистрации и сборе информации. Жмем “Старт”.

В качестве аватарок можно использовать qr-код и тем самым еще и через аватарку увеличить количество трафика на ваш сайт. Сейчас существует большое количество онлайн сервисов для генерирования qr-кода. Просто вводите адрес вашего сайта и генерируете qr-код. А в подписи делаете намек на qr-код. Тем самым мы продвигаем наш белый проект в подписи, в сообщении и в аватарке. Таким же образом можно за место ссылки на сайт использовать ссылки на партнерки или же продовать ссылки в своих подписях.
Большая просьба к любителям aka “в начале сообщения пачка порно картинок, а в конце список из 100 порно-кейвордов” – не губите эту тему прямым постингом. Оставьте немного места в сети для белых оптимизаторов. К статье прилагаю архив со всем нужным. Всем Спасибо!