![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
Oleg_Ci |
|
||||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Здравствуйте.
Идея есть, написать бота для скандинавских аукционов. Есть цель создать сайт на тематику этих аукционов, этого бота там выложу, может продать получиться. Если кто-то ещё не в курсе что такое “скандинавский аукцион” делаю небольшое пояснение. В интернете появились сайты на которых товары продаются следующим образом, выкладывается товар с нулевой стоимостью, есть таймер отсчитывающий секунды до нуля, есть кнопка с надписью “Сделать Ставку”, если кто-нибудь нажимает на эту кнопку (делает ставку), тогда таймер увеличивается на какое-то количество секунд, а стоимость этого товара повышается, на 25 копеек или на 10 коп. (стоимость ставки от 5 до 10 рублей), если уменьшающийся таймер достиг нуля, тогда сделавший последнюю ставку забирает товар по стоимости которая набежала за период “торгов”(обычно не более 10-20% от реальной стоимости). Суть сего действия в том чтобы часами (днями) сидеть и нажимать кнопку ”сделать ставку”, и чтоб после тебя никто не нажал, тогда таймер достигнет нуля, и ты (последний нажавший) заберешь товар “по дешёвке” (Конечно не считая количества слитых денег на ставки). Проигравшим вроде отдают часть денег, помойму 75%(или 50%). Я в цифрах могу ошибаться. Сейчас я имею следующие результаты: Пишу бота на С++ MFC. Создал проект с классом представления производным от CHtmlView, получил указатели на элементы (кнопку “сделать ставку”, строки с логином и суммой) такого вида
Читаю(element->get_innerText(..)) логины, суммы, вычисляю время нажатия на кнопку, перемещаю указатель на кнопку для нажатия или фокус ввода на кнопку делаю для эмуляции нажатия клавиши Enter, “нажимаю” на кнопку при помощи api-функций
Бот работает (нажимает на кнопку делая ставки). В общем я пытался идти от javascript языка и таких конструкций:
Вопросы у меня такие: 1) сервер аукциона думает что я подключаюсь через IExplorer ? 2) главное, как могут моего бота обнаружить? Мне кажется, обнаружить, можно только через “язык JavaScript”, например написать функцию которая за поведением мыши наблюдать будет (перемещения указателя). Интересно также ваше мнение о том, как правильно писать подобных ботов надо (чтоб необнаружили на сервере). (И ещё один вопрос не в раздел С++ но может здесь кто знает - есть также бот написанный на JavaScript, как его засечь можно?) |
||||||
|
|||||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
смотря, какой MFC генерирует HTTP POST запрос ![]()
код JS выполняется на клиентской стороне единственный способ его свзяи с сервером - генерация POST запросов т. к код не закрыт, то его всегда можно "вскрыть" и дальше эмулировать нужные действия
боты обычно палятся на IP при большой (нетипичной для юзера-человека) активности и "неправильным" (опять таки, нетипичным для обычного браузера) полям HTTP запроса ps. я бы использовал cURL -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Проверил свои браузеры и бота, вот таким штуками
ничего подозрительного, у бота и IExplorer всё одинаково показывает. Как проверить HTTP POST запрос ненашол. К сожалению, я этот язык незнаю. ![]() |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
возьми какой-нибудь сниффер и посмотри исходящий пакет, который генерирует MFC это не язык, а библиотека google отменили? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
||||
|
||||
Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
При помощи сниффера HttpAnalyzerStdV3 (методы - Get, Post) проверял Бота, Opera, IExrlorer подключившись к аукциону.
Бот и IExplorer везде одинаковые у них параметры, только 1 параметр - Cookie-PHPSessId разные. Значит сервер считает моего бота браузером IExrlorer. ![]() Спасибки за подсказки. Добавлено через 6 минут и 16 секунд ![]()
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
тыкать на кнопки имхо далеко неправильный способ, на что вам уже указывали.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Господин jonie правильно написал что не лучший способ тыкать на кнопки
ИМХО Лучше обрабатывать данные минуя браузер,скопировать запрос проанализированный снифером(за исключением кукиксов или сессий)и отослать на сервер,тем самым мы исключаем запуск проверочного кода Java на стороне клиента(код вычисление бот или не бот тыкнул на кнопку). Это сообщение отредактировал(а) Comm - 22.2.2009, 12:00 -------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Comm бред написал. Начиная от слов "или сессий" до конца, исключая собственно слово "отослать".
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
jonie, у меня есть опыт программирования подобных ботов..если мы с вами разошлись во мнениях это не значит что я бред написал.. если у вас есть другой более хороший способ,опишите его а не цитируйте кто и на что кому то указывал. ИМХО.
-------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
1) java для подобных вещей используется крайней редко, используют всеже чаще JavaScript, и уж конечно java и javasctipt вооообще разные вещи, а те кто их "путает" мягко говоря некомпетентны;
2) определить кто нажал клавишу (при коде что выше) нельзя ну никак; 3) понятие сессия вам, вероятно, не очень знакомо. по обыкнокению она хранится на сервере и привязывается к клиенту по кукам; 4) куки слать надо - иначе ваша сессия будут потеряна. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: нет Всего: 30 |
Я тут разбирался с cURL и вот чего получилось (правда к vs C++ прикрутить несмог, так-то на PHP).
Вот так программа может “нажать на кнопку” (простейший вариант):
Аналогично читает данные посылаемые с сервера (Кто куда нажал). Проверял на gagen.ru Непонял зачем программа добавляе к URL случайное значение (javascript:Math.random())(“…htm?r=0.11509138081176307”). Кстати можно “нажимать на кнопку” введя в браузере подобную строку: "http://www.gagen.ru/bid.php?auction=183226&r=0.653980322524627&h="
Это сообщение отредактировал(а) Oleg_Ci - 23.2.2009, 17:21 |
||||
|
|||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Под словом "Куки" я понимаю информацию оставленную сервером на клиентском компьютере.
Под словом "Сессия" я понимаю некоторый промежуток времени в котором Авторизация не нужна. Именно с помощью скриптов Java можно вычислить реальный ай пи адрес конечного пользователя вне зависимости от того подключен ли он через прокси. Поэтому я и предположил что с помощью Java можно узнать ,искусственно или нет была нажата та или иная кнопка. Это сообщение отредактировал(а) Comm - 23.2.2009, 17:53 -------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Comm а давайте будем разговаривать, когда вы узнаете отличия Java от JavaScript и будете применять полученные знания? с помощью javascript вы мои ip адреса не узнаете.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Как вариант,прочитать ключ найстройки из реестра. -------------------- =))))) ![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
код в студию как вы это сделаете.
усложнение (задание 2): у меня freeeBSD вообще, удачи! -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Artemon |
|
||||||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
С чего это вдруг ? Вот пожалуйста:
Вы что думаете JavaScript может работать с реестром, вы ошибаетесь! Если используется анонимный прокси сервер + ваше собственное приложение (не браузер), то сервер никогда не определит идет запрос с браузера или из программы бота. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
||||||
|
|||||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
вот у меня чего пишет мой FF3 :
Это сообщение отредактировал(а) jonie - 24.2.2009, 13:11 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
Comm |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Ну я просто предположил =)
Полностью с вами согласен(Если собственное приложение не обрабатывает ни ActiveX ни каких бы то небыло сценариев) P.S. Я ещё где то читал про черный список прокси серверов,и то что перед использованием прокси нужно обязательно посмотреть в этом списке про используемый прокси сервер.(Не знаю в тему это или нет) Это сообщение отредактировал(а) Comm - 24.2.2009, 13:30 -------------------- =))))) ![]() |
||||
|
|||||
Artemon |
|
||||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
Про JavaScript инфу нашел здесь: http://forums.asp.net/p/1276422/2432905.aspx#2432905
Попробовал последний пример из приведенной ссылки - в IE действительно показывает IP локальной машины, а тот пример что приведен мной выше - это Java, а не JavaScript (сначала я его принял за JS).
К чему это вы вообще, ведь понятно, что речь шла про винду, но даже там к реестру из JS не обратиться, поэтому тема реестра сразу отсеивается.
Как правило такую инфу предоставляют только за деньги, но возможно что-то и бесплатное есть. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
вот мой результат в IE7 (win xp + все обновления (сами качаются с ms update)):
Artemon я всеже не соглашусь что это java. это помесь "непойми чего непойми с чем", и работать это будет у может быть 1-5% юзеров и только в осле и только если у них уровень безопасности искуственно понижен и только если юзер разрешит. Кроме того, это не даст вам мой ip (лично на моей машине 3-и сетевых карты и 4-е VPN интерфейса, дак еще все NAT-тится...).. попробуй "угадай" называется. в общем это не метод. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
Попробуй вот этот код в IE:
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
никогда не нажимаю кнопки вроде "разрешить активное содержимое? оно может повредить вашему компьютеру" )). Опять же это JScript, а не JavaScript. Я прекрасно знаю про activex в jscript, собственно вчера только игрался с IS2009....
однако, хватит спорить. вернемся к истокам:
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Это сообщение отредактировал(а) nerezus - 25.2.2009, 12:38 |
|||
|
||||
Comm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 269 Регистрация: 31.8.2007 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
Про ай пи адрес это просто пример для обозначения возможностей. Я думаю что с помощью Java/JavaScript можно написать проверочный скрипт (Кто или что нажало кнопку) ИМХО -------------------- =))))) ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |