PDA

Просмотр полной версии : WMCollector - сборщик WM бонусов


0rs
27.10.2009, 19:39
WMCollector
Сборщик WMR, WMZ, WMB бонусов с различных сайтов, которые их предоставляют.
Не стоит думать что при помощи этого можно разбогатеть, скорее поднять BL, хотя это тоже сомнительно (пока тестировал получил около 50 бонусов, а BL все 0).

Возможности

Поддержка плагинов.
Работа через http или socks прокси (Библиотека для работы с http (http://kaimi.ru/2009/08/библиотека-для-работы-с-http/)).
Распознавание капчи через Cap OCR System (http://cap-cap.ru/), antigate.com (библиотека для антикапчи (http://kaimi.ru/2009/05/anticaptcha-assembler/)) или вручную.
Возможность работы в автоматическом режиме (с параметром auto) - можно поставить в планировщик на ежедневное выполнение.

Многопоточности нет, и трудно представить как она будет выглядеть при использовании плагинов, но думаю она пока и не нужна.
Скачать можно тут: Бинарники (http://narod.ru/disk/14528878000/WMCollector-bin.rar) Исходники (http://narod.ru/disk/14528909000/WMCollector-src.rar) Плагины (http://narod.ru/disk/14783299000/plugins-050909.zip)

Код самой программы, описывать не надо - он достаточно хорошо комментирован. Более подробно следует остановиться на написании плагинов.

Создание плагинов
Понадобятся:

SharedTypes.pas и исходники плагина wmcasher (в качестве примера)
Delphi или другой компилятор
Браузер (я использовал Opera)
Перехватчик HTTP запросов (HTTPLook (http://narod.ru/disk/15049410000/HTTPlook.zip) или плагин к фаерфоксу)

Запускаем 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 именем, соответствующим их значению. Более подробное описание можно посмотреть на официальном сайте (http://cap-cap.ru/) или в кэше гугла (http://209.85.129.132/search?q=cache:RTn5VqGvhtcJ:cap-cap.ru/%3Fpage%3Ddoc/cap+http://cap-cap.ru/%3Fpage%3Ddoc/cap&cd=1&hl=ru&ct=clnk&gl=ru).

AKYLA
27.10.2009, 20:40
Спасибо за исходник, так как правильно было замечено, на этом не разбогатеешь )) но исходники пригодятся :)

Dmitriik750
27.10.2009, 21:55
дамс... миллионы ты на этом не заработаешь)

0rs
27.10.2009, 22:20
Но и не потеряешь ничего

Myload
30.10.2009, 21:18
скачать не могу :(
перезалейте плизз!!!:)
с меня ++;)

0rs
31.10.2009, 11:55
Исходники (http://ifolder.ru/14763749)
Бинарники (http://ifolder.ru/14763733)

0rs
05.11.2009, 11:12
Добавил плагины:

http://spasibo.kz/ (1 WMR бонус 1 раз в день)
http://telemon.ru/ (1 WMR бонус 1 раз в день)
Старый скрипт от miniwm.ru (2 WMR бонуса 1 раз в день)

Обновил плагин для wmcasher.
В архиве (http://narod.ru/disk/14783299000/plugins-050909.zip) бинарники и исходники.