Перейти к содержанию

Автонажималка для 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
Ссылка на комментарий
Поделиться на другие сайты

Оффтоп:

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

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

 

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

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

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

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

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

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

  • 4 месяца спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...