Перейти к содержимому
Форум журнала практической электроники «Датагор»
Набор для вскрытия электроники WOSAI 11 In 1
Сумка для инструментов 12"-14"-16", очень прочная 600D
Магнитный браслет мастера. Биты, гайки, саморезы, гвозди перестали теряться
Набор резаков, метал. ручка, цанга
Увлажнитель и очиститель воздуха. Когда шпарят батареи
Беспроводной звонок, 32 мелодии!
Набор термоусадок разного калибра, 385шт.
AAM2302 (DHT22) цифровой датчик влажности и температуры
Касса резисторов 0.25Вт, 64 номинала, всего 1280шт.
Водозащищённые навороченные мужские часы SANDA-G
Детские/стариковские GPS-часы-антипотеряшки и телефон
600шт., 3 цвета, 15 типов терминалов под обжим 22~12AWG

Гость химик

Автонажималка для Online MMORPG. Клонирование VID, PID клавиатуры

Рекомендованные сообщения

Гость химик

Добрый день. Уже долгое время играю в одну Online MMORPG игру. Для облегчения игры сделал себе игровой бот на основе USB HID клавиатуры на ATmega8. Пару месяцев назад возникла проблема, начала срабатывать система защиты игры. Я считал, что вычислили по тому как клавиатура работала циклично с одинаковым таймингом между нажатиями. Переделал код устройства, добавил несколько режимов работы. Но меня начали снова вычислять. Дело оказалось в том, что система защиты видит нажатие клавиш - но не может определить что за устройство это сделало.

Это идентификатор моего устройства:

post-2789-0-37437000-1456477207_thumb.jpg

Кроме VID & PID что еще нужно сменить, чтобы устройство определялось как заводская клавиатура? Например такая

post-2789-0-53348700-1456477335_thumb.jpg

Вот исходник - HIDKeys.2013-06-04.rar

В файле usbconfig.h подправил VID и PID

#define  USB_CFG_VENDOR_ID	   0x4F, 0x1C
#define  USB_CFG_DEVICE_ID	   0x26, 0x00

Но устройство в диспетчере так и отображается со старыми идентификаторами. Пересмотрел все файлы, так и не нашел где еще записан старый идентификатор. Исходник найден был в сети интернет, я лишь изменил условия нажатий клавиш со статического на динамическое так как мне нужно.

Изменено пользователем химик

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сергей, если под "отображается со старыми идентификаторами" вы имели в виду, что VID и PID не изменились, то это значит, что изменение констант в usbconfig.h не приводит к изменению VID и PID в дескрипторах. Смотрите исходник, как формируются дескрипторы.

 

Если вы про название клавиатуры (модель и т.п.), то это передаётся в строковых дескрипторах. В вашей прошивке это может быть вообще не реализовано. Про дескрипторы смотрите на usb.org, hid-устройства. Может, найдёте, где в вашей прошивке изменить/добавить.

 

Насчёт "система защиты ... не может определить что за устройство это сделало" - так в Windows-системе штатно допускается несколько клавиатур, и работают они через общий стек. Я не знаю, как программа может определить, от какого устройства пришёл код клавиши.

А вот определить, сколько в системе клавиатур - легко. Может на это защита и реагирует? Отключить штатную и оставить только свою на ATmega8 не пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость химик

Николай, наверное я неправильно понял проблему.

Вот записи в логе, после которых происходит закрытие клиента.

2016-02-25 22:46:17.544 [Main host thread] DEBUG Qt  - srcGameExecutorExecutorExecutableFileClient.cpp 265 GGS::GameExecutor::Executor::ExecutableFileClient::handleActivated with exit code 3765269347 real result 1
2016-02-25 22:46:17.549 [Main host thread] ERROR Qt  - srcGameExecutorExecutorExecutableFile_p.cpp 258 GGS::GameExecutor::Executor::ExecutableFilePrivate::launcherFinished with error code 1
2016-02-25 22:46:23.451 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperAlertHandlersTrackerNotificationHandler.cpp 19 GGS::Libtorrent::AlertHandlers::TrackerNotificationHandler::operator () TrackerNotificationHandler tracker_announce_alert:  live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) sending announce (started)
2016-02-25 22:46:23.451 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperAlertHandlersTrackerNotificationHandler.cpp 19 GGS::Libtorrent::AlertHandlers::TrackerNotificationHandler::operator () TrackerNotificationHandler tracker_announce_alert:  live (https://retracker.local/announce) sending announce (started)
2016-02-25 22:46:23.452 [Main host thread] ERROR Qt  - srcLibtorrentWrapperAlertHandlersErrorNotificationHandler.cpp 24 GGS::Libtorrent::AlertHandlers::ErrorNotificationHandler::operator () listen_failed_alert: status  -1  times in a row  4  message  live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) (-1) ???? ???? ?????????? "" (4)
2016-02-25 22:46:23.463 [Main host thread] ERROR Qt  - unhandled_alert category:  17 struct libtorrent::tracker_error_alert  msg:  "live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) (-1) Этот хост неизвестен "" (4)"
2016-02-25 22:46:24.325 [Main host thread] DEBUG Qt  - srcMarketingMarketingTarget.cpp 244 GGS::Marketing::MarketingTarget::sendRequest Marketing  2660
2016-02-25 22:46:25.747 [Main host thread] ERROR Qt  - srcLibtorrentWrapperAlertHandlersErrorNotificationHandler.cpp 24 GGS::Libtorrent::AlertHandlers::ErrorNotificationHandler::operator () listen_failed_alert: status  -1  times in a row  4  message  live (https://retracker.local/announce) (-1) ???? ???? ?????????? "" (4)
2016-02-25 22:46:25.749 [Main host thread] ERROR Qt  - unhandled_alert category:  17 struct libtorrent::tracker_error_alert  msg:  "live (https://retracker.local/announce) (-1) Этот хост неизвестен "" (4)"
2016-02-25 22:46:36.616 [Main host thread] DEBUG Qt  - srcGameDownloaderGameDownloadService.cpp 82 GGS::GameDownloader::GameDownloadService::start "300003010000000000"
2016-02-25 22:46:36.616 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 68 GGS::GameDownloader::StateMachine::start Start  "300003010000000000" GGS::GameDownloader::Behavior::PreHookBehavior
2016-02-25 22:46:36.777 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::UninstallBehavior
2016-02-25 22:46:36.777 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::BindiffBehavior
2016-02-25 22:46:36.778 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::CompressorBehavior
2016-02-25 22:46:36.926 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::CreateFastResumeBehavior
2016-02-25 22:46:36.927 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::OnlyCheckUpdateBehavior
2016-02-25 22:46:37.138 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::TorrentDownloadBehavior
2016-02-25 22:46:37.141 [Thread (pooled)] DEBUG Qt  - srcLibtorrentWrapperWrapperInternal.cpp 134 GGS::Libtorrent::WrapperInternal::start start  "300003010000000000"  background  false  reload require   false
2016-02-25 22:46:37.144 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::ExtractorBehavior
2016-02-25 22:46:37.146 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::PostHookBehavior
2016-02-25 22:46:37.150 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 147 GGS::GameDownloader::StateMachine::internalNext Call  "300003010000000000" GGS::GameDownloader::Behavior::FinishBehavior
2016-02-25 22:46:37.152 [Main host thread] DEBUG Qt  - srcGameDownloaderStateMachine.cpp 106 GGS::GameDownloader::StateMachine::internalFinished Finished  "300003010000000000" GGS::GameDownloader::Behavior::FinishBehavior
2016-02-25 22:46:37.745 [Main host thread] DEBUG Qt  - srcMarketingMarketingTarget.cpp 244 GGS::Marketing::MarketingTarget::sendRequest Marketing  37
2016-02-25 22:46:47.221 [Main host thread] DEBUG Qt  - srcGameExecutorExecutorExecutableFileClient.cpp 85 GGS::GameExecutor::Executor::ExecutableFileClient::startProcess Start  "E:/BS/live/client/client.exe" "E:/BS/live/"
2016-02-25 22:46:55.392 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperAlertHandlersTrackerNotificationHandler.cpp 19 GGS::Libtorrent::AlertHandlers::TrackerNotificationHandler::operator () TrackerNotificationHandler tracker_announce_alert:  live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) sending announce (stopped)
2016-02-25 22:46:55.392 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperAlertHandlersTrackerNotificationHandler.cpp 19 GGS::Libtorrent::AlertHandlers::TrackerNotificationHandler::operator () TrackerNotificationHandler tracker_announce_alert:  live (https://retracker.local/announce) sending announce (stopped)
2016-02-25 22:46:55.392 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperWrapperInternal.cpp 621 GGS::Libtorrent::WrapperInternal::torrentPausedAlert torrentPausedAlert "300003010000000000" false
2016-02-25 22:46:55.398 [Main host thread] ERROR Qt  - srcLibtorrentWrapperAlertHandlersErrorNotificationHandler.cpp 24 GGS::Libtorrent::AlertHandlers::ErrorNotificationHandler::operator () listen_failed_alert: status  -1  times in a row  5  message  live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) (-1) ???? ???? ?????????? "" (5)
2016-02-25 22:46:55.399 [Main host thread] ERROR Qt  - unhandled_alert category:  17 struct libtorrent::tracker_error_alert  msg:  "live (udp://bt.gamenet.ru:6969/?userId=400023000043033300&hash=0b4ced0cd81cc4b580a11fe74fd16392a17117f2) (-1) Этот хост неизвестен "" (5)"
2016-02-25 22:46:55.399 [Main host thread] DEBUG Qt  - srcLibtorrentWrapperAlertHandlersStorageNotificationHandler.cpp 23 GGS::Libtorrent::AlertHandlers::StorageNotificationHandler::operator () StorageNotificationHandler: live resume data generated
2016-02-25 22:46:56.332 [Main host thread] DEBUG Qt  - srcMarketingMarketingTarget.cpp 244 GGS::Marketing::MarketingTarget::sendRequest Marketing  2662
2016-02-25 22:46:57.708 [Main host thread] ERROR Qt  - srcLibtorrentWrapperAlertHandlersErrorNotificationHandler.cpp 24 GGS::Libtorrent::AlertHandlers::ErrorNotificationHandler::operator () listen_failed_alert: status  -1  times in a row  5  message  live (https://retracker.local/announce) (-1) ???? ???? ?????????? "" (5)
2016-02-25 22:46:57.737 [Main host thread] ERROR Qt  - unhandled_alert category:  17 struct libtorrent::tracker_error_alert  msg:  "live (https://retracker.local/announce) (-1) Этот хост неизвестен "" (5)"
2016-02-26 00:46:47.254 [Main host thread] DEBUG Qt  - srcGameExecutorExecutorExecutableFileClient.cpp 265 GGS::GameExecutor::Executor::ExecutableFileClient::handleActivated with exit code 0 real result 0
2016-02-26 00:46:47.459 [Main host thread] DEBUG Qt  - srcGameExecutorExecutorExecutableFileClient.cpp 265 GGS::GameExecutor::Executor::ExecutableFileClient::handleActivated with exit code 0 real result 0

Надпись - этот хост неизвестен. Я посчитал что лаунчер пытался определить клавиатуру но не смог.

 

ЗЫ: Счас вгляделся в текст (хоть я там ничего и не понял :smile: ) но похоже что дело не в клавиатуре, я хост с hid перепутал... И возможно проблема не в моей клавиатуре. Пока что повоюю с сапортом.

Изменено пользователем химик

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
... сделал себе игровой бот на основе USB HID клавиатуры на ATmega8 ...
Сергей, просвети, а что это такое и для чего служит, что оно облегчает? Может мне тоже нужно, а я не знаю :smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость химик

:smile: Игорь, игра в стиле фентази. Во время боя и при прохождении подземелий, чтобы миллион раз не клацать по клавишам со скилами, за меня это делает этот эмулятор клавиатуры. Клавиши 1,2,3,4 нажимаються циклично раз в секунду; раз в 10 сек нажимаеться клавиша 8; клавиша 9 раз в 30 сек; клавиша 0 раз в 90 сек. Второй режим клавиша 1 раз в секунду нажимаеться постоянно и клавиши 8,9,0 как и в предидущем режиме. И третий режим - кнопка 5 раз в 32 минуты (ставлю на ночь руду копать, доп зароботок).

 

Я вот немного вник в текст хост файла, и есть подозрения, что защита игры срабатывает не от моего бота. Скорей всего пакеты с данными проходят через чей то левый сервер. Это и вызывает подозрения у защиты. Я не параноик но кроме СБУ это больше ни кому не надо. Так как провайдер украинский.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, я в свое время тоже играл, но до такого не доходил :smile:

Я использовал программные средства, типа автокликеров для клавиатуры. Можно было записывать макросы клавиш и вешать на горячии клавиши.

Я вот то о чем, не проще будет использовать программную реализацию бота?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость химик

Хм, я в свое время тоже играл, но до такого не доходил :idea:

Я использовал программные средства, типа автокликеров для клавиатуры. Можно было записывать макросы клавиш и вешать на горячии клавиши.

Я вот то о чем, не проще будет использовать программную реализацию бота?

За програмную реализацию можно и акаунта лишиться :smile: . При запуске подобного ПО игра зарываеться и бан автоматом на 7 дней. Второй раз на месяц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

За програмную реализацию можно и акаунта лишиться :idea: .

Ну наверно да, тогда не стоит мучатся. Раньше за такое бан не давали, но раньше и трава была зеленее)

Зато дадут приз за хитроумное приспособление. Как в фильме:

Билет № 9, прием. - Что-что вы сказали? - Что? - Какой прием? - Я сказал не прием, а при нем. Билет № 9, а при нем задача. :smile:

Изменено пользователем Allroy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оффтоп:

Сергей, разве игра не должна быть интересной, чтобы в неё хотелось самому поиграть? А то когда за вас бот играет, в чем смысл?

Есть игры с сюжетом, с интересными персонажами, с красивой музыкой, с захватывающими перестрелками и т.д. А ходить и бить (да ещё это бот делает) одних и тех же мобов день за днем, неделя за неделей, месяц за месяцем, год за годом... не маразм?

 

Если что, никого не хочу обидеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В "игры не играю" категорически (кроме преферанса) и когда читал тему, суть не понимал, точнее: "в эту сторону даже не думал..."

Теперь, после комментария Сергея (yamazaki) , дошло... А в чём "интерес" так и не понял :smile: ?

Изменено пользователем titpol

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это как наркотик, зависимость в прямом плане. По сути смысл: "п***ми мерется, у кого больше". Я на этой гадости года полтора сидел, в итоге пустая трата времени и денег....

Никого не хотел обидеть это мое ИМХО.

Хотя я компьютерные игры очень люблю, играю регулярно, но в игры не ОНЛАЙН!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость xenobios

Очень неплохо данное решение реализовано в продукте usb2kbd на основе микроконтроллера Atmel AT MEGA8.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

︽ Наверх страницы ︽
×