Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
WMCollector - сборщик WM бонусов |

27.10.2009, 19:39
|
|
Познающий
Регистрация: 30.12.2008
Сообщений: 64
Провел на форуме: 647156
Репутация:
76
|
|
WMCollector - сборщик WM бонусов
WMCollector
Сборщик WMR, WMZ, WMB бонусов с различных сайтов, которые их предоставляют.
Не стоит думать что при помощи этого можно разбогатеть, скорее поднять BL, хотя это тоже сомнительно (пока тестировал получил около 50 бонусов, а BL все 0).
Возможности- Поддержка плагинов.
- Работа через http или socks прокси (Библиотека для работы с http).
- Распознавание капчи через Cap OCR System, antigate.com (библиотека для антикапчи) или вручную.
- Возможность работы в автоматическом режиме (с параметром auto) - можно поставить в планировщик на ежедневное выполнение.
Многопоточности нет, и трудно представить как она будет выглядеть при использовании плагинов, но думаю она пока и не нужна.
Скачать можно тут: Бинарники Исходники Плагины
Код самой программы, описывать не надо - он достаточно хорошо комментирован. Более подробно следует остановиться на написании плагинов.
Создание плагинов
Понадобятся: - SharedTypes.pas и исходники плагина wmcasher (в качестве примера)
- Delphi или другой компилятор
- Браузер (я использовал Opera)
- Перехватчик HTTP запросов (HTTPLook или плагин к фаерфоксу)
Запускаем HTTPLook и браузер, переходим по адресу http://wmcasher.ru/. Затем находим форму получения бонуса, кликаем по капче правой кнопкой мыши и в свойствах видим ее адрес:
Код:
http://wmcasher.ru/captcha/?background_color=255,249,188
Посмотрим как же происходит получение капчи. Для этого нажимаем кнопку Start в HTTPLook, предварительно очистив кукисы (в Опере Инструменты\Быстрые настройки\Настройки для сайта\Cookies). Переходим по ссылке с капчей и смотрим что нам показывает HTTPLook.
Запрос браузера:
Код:
GET /captcha/?background_color=255,249,188 HTTP/1.1
...
Ответ сервера:
Код:
HTTP/1.1 200 OK
...
Set-Cookie: PHPSESSID=2ha93qjdiq3n260hcvq4nquor3; path=/
...
Content-Type: image/png
141 bytes skipped. Reason: The content type is not captured.
В ответе сервера видно, что кроме самой картинки мы получаем еще и куки с идентификатором сессии. Именно при помощи него происходит проверка правильности введенной капчи.
Теперь заполняем поля формы и нажимаем кнопку получить бонус. Смотрим что происходит в HTTPLook:
Запрос:
Код:
GET /wmcbonus.js?bonuspurse=R123456789012&keystring=4100 HTTP/1.1
...
Referer: http://wmcasher.ru/
Cookie: PHPSESSID=2ha93qjdiq3n260hcvq4nquor3
...
Ответ:
Код:
HTTP/1.1 200 OK
...
alert('Вы можете получить WMR бонус c этого сайта только один раз в сутки!');
...
Как видно, введенные параметры: кошелек и капча передаются в GET запросе. Кроме того браузер отправляет полученный ранее куки. В качестве Referer передается адрес страницы на которой находится форма. Таким образом алгоритм получения бонуса выглядит следующим образом: - Получаем капчу и куки вместе с ней.
- Распознаем капчу.
- Посылаем в GET запросе на сервер свой кошелек и код капчи.
Теперь реализуем этот алгоритм в виде плагина
Код:
library wmcasher;
uses
Windows,
SharedTypes in '..\SharedTypes.pas';
const
mname = 'http://wmcasher.ru/ (10 WMR бонусов 1 раз в день)';
var
ModuleInfo: TModuleInfo;
MF: TMainFunc;
stop: Boolean;
// Функция инициализации плагина вызывается при его загрузке основной программой
function Initialize(MainFunc: TMainFunc): TModuleInfo; stdcall;
begin
// В качестве параметра мы получаем адреса функций,
//которые предоставляет основная программа
MF := MainFunc;
// Возвращаемые значения - описание плагина
ModuleInfo.Info := mname;
// и тип кошелька для которого он работает
ModuleInfo.wmType := mtWMR;
Result := ModuleInfo;
end;
// Вызывается при нажатии кнопки Start
// Здесть нужно реализовывать алгоритм получения бонуса
procedure Run(const wm: PChar); stdcall;
const
// Мы можем получать бонусы не только с самого http://wmcasher.ru/
// но и с других сайтов, на которых установлена их форма (http://wmcasher.ru/bonus)
// я напарсил из поисковой системы около 200 таких сайтов,
// но получение бонусов ограничено только 10-15 в день
referers: array [0..9] of PChar = (
'http://xrates.ru/wiki/bonus',
'http://yamafuji.ucoz.ru/index/fajlobmenniki/0-21',
'http://yanina.org.ua/2.htm',
'http://zarabotai-babki.at.ua/index/0-32',
'http://zarabotajlegko.ucoz.ru/forum/0-0-0-36',
'http://zarabotat-dengu.narod.ru/bonusu_halyava.html',
'http://zarabotay777.ucoz.ru/index/0-4',
'http://zarabotok.dn.ua/bonus-1.php',
'http://zarabotok-vseti.ucoz.ru/gb',
'http://zhelezyaka.at.ua/news/4'
);
var
http: array[0..MAX_HTTP_SIZE] of Char;
capsize: Integer;
cap: array[0..MAX_CAPTCHA_SIZE] of Char;
cookies: array[0..MAX_COOKIES_SIZE] of Char;
i:Integer;
begin
stop := False;
// Получаем бонус для каждого сайта из массива referers
for i := 0 to Length(referers)-1 do
begin
// Выходим при нажатии кнопки Stop
if stop then Exit;
// Предварительно очищаем куки
ZeroMemory(@cookies, MAX_COOKIES_SIZE);
// Заносим в лог с какого сайта бонус
MF.AddLog(PChar('wmcasher: ' + referers[i]));
// Получаем капчу
// В HTTPreq передаются полный URL, реферер, буфер для записи куки,
// параметр POST запроса или nil если GET запрос
// адрес для записи результата, необходимость получения куки
// если False, то в параметр cookies будет записан куки присланный сервером,
// в противном случае cookies будет использован только при отправке запроса
capsize := MF.HTTPreq('http://wmcasher.ru/captcha/', referers[i], cookies, nil, @http, False);
if capsize > 0 then
begin
// Обнуляем память для приема результата распознования
ZeroMemory(@cap,MAX_CAPTCHA_SIZE);
// Распознаем капчу
// В качестве параметров передаются указатель на капчу, ее размер,
// формат рисунка, профиль для автоматического распознования cap.exe
// если капча распознается вручную передается nil
// буфер для результата распознавания
if MF.CapResp(@http, capsize, itPNG, 'wmcasher.ini', cap) then
begin
// Отправляем запрос с номером кошелька и кодом капчи
MF.HTTPreq(PChar('http://wmcasher.ru/wmcbonus.js?bonuspurse=R' + wm + '&keystring=' + cap), referers[i], cookies, nil, @http, True);
// Выводим в логе ответ сервера
MF.AddLog(PChar('wmcasher: ' + http));
end;
end else MF.AddLog(PChar('wmcasher: ' + 'Ошибка получения капчи'));
end;
end;
// Вызывается при нажатии на кнопку Stop
procedure Terminate; stdcall;
begin
stop := True;
end;
exports
Initialize name 'Initialize',
Run name 'Run',
Terminate name 'Terminate';
begin
end.
Распознавание капчи
В программе предусмотрена возможность распознавания капчи 3 способами: вручную, при помощи китайцев с antigate.com и программой Cap OCR System. Рассмотрим более подробно последний способ. Чтобы им можно было воспользоваться плагин должен в качестве параметра функции CapResp передать имя файла с профилем распознования. В комплекте с программой идет подробно комментированный пример wmcasher.ini. Настроек там куча (можно даже настроить на распознование кошек с рапидшары), но для простой капчи достаточно указать всего 2:
Код:
;Имя каталога с литерами
CatalogLetters=wmcasher_l
;Количество ожидаемых символов
Letters=4
Теперь нужно создать каталог для литер, накачать различых вариантов капч, разрезать на символы (в случае wmcasher.ru цифры от 0 до 10) и сохранить их в формате bmp c именем, соответствующим их значению. Более подробное описание можно посмотреть на официальном сайте или в кэше гугла.
Последний раз редактировалось 0rs; 14.11.2009 в 13:40..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|