GeForce NOW: Open-source обход кика за AFK и разоблачение 0x00 NULL

Сегодня господин новорег 0x00 NULL предложил решение проблемы выбрасывания из игры в GeForce Now спустя 15 минут простоя. Однако, ни предоставлять исходники, ни объяснять принцип работы своего творения, он по какой-то натянутой причине не захотел, предлагая поверить в безопасность его программы на слово, подавая это как нечто эксклюзивное и прорывное. И это при не очень хорошей репутации у антивирусов и сомнительном поведении программы.

Более того, активное пропихивание его группы ВК как в посте, так и в самой программе (принудительный редирект при каждом запуске) окончательно отбивает всякое желание пользоваться его продуктом интеллектуального труда.

Всё это сподвигло меня предложить вам более прозрачный способ решения данной проблемы.

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

Благодаря наводке от Vladimir Holmston, выяснилось, что всё что делает программа от 0x00 NULL при взаимодействии с GFN, это отсылает в окно лаунчера клавиши F13 и, возможно, IME, которые не существуют в физическом виде в подавляющем большинстве клавиатур.

Коды и значения клавиш можно посмотреть <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fwin32%2Finputdev%2Fvirtual-key-codes&postId=664684" rel="nofollow noreferrer noopener" target="_blank">здесь</a>.
Коды и значения клавиш можно посмотреть здесь.

Это объясняет всю "магию" того, почему программа не мешает игровому процессу - на эти клавиши никто не назначает никаких действий.

Проверка кейлоггером это подтвердила, а также показала, что ПО тупо спамит F13 каждую секунду - ровно 10 нажатий за 10 секунд, а также не проверяет отсутствие активности пользователя - кнопки нажимаются всегда, даже во время игрового процесса.

Но ЗОЧЕМ так часто, если GFN требует проявлять активность лишь раз в 15 минут?

GeForce NOW: Open-source обход кика за AFK и разоблачение 0x00 NULL

Также это дало основания полагать, что у GFN нет никаких умных проверок на активность - ни на движение мыши, ни на одинаковые промежутки между нажатиями клавиш и т.п, что упрощает задачу.

Исходя из этого, наиболее близкое, но прозрачное решение можно получить таким образом:

1. Ставим AutoHotKey (для тех кто в танке: статья на Вики, исходники на Гите)

2. Копируем в блокнот:

loop ; зацикливание скрипта { sleep 60000 ; пауза перед началом цикла 60000 миллисекунд = 1 минута if (A_TimeIdle >= 300000 and WinActive("ahk_exe GeForceNOW.exe")) ; проверка активности пользователя в течение 300000 миллисекунд = 5 минут и проверка активного окна GeForceNOW { SendInput {vk7C} ; отправка клавиши F13 (0x7C) sleep 500 ; пауза 500 миллисекунд = 0.5 секунд SendInput {vk1C} ; отправка клавиши IME convert (0x1C) } }

3. Сохраняем в формате .ahk
4. Запускаем получившийся файл. По желанию добавляем в автозагрузку

Результат

Интерфейс максимально простой - его нет. Он нам на*уй не нужон, интерфейс ваш. Вам не нужно выбирать процесс игры запущенной в GFN - всё определяется автоматически. Просто либо добавляете программу в автозагрузку, либо запускаете ее вручную.

При отсутствии вашей активности за ПК в течение 5 минут, если не трогаете клаву и мышь (спасибо Elendiar за подсказку), а также при наличии активного окна GeForce NOW, скрипт будет раз в 1 минуту нажимать клавишу F13 и на всякий случай одну из IME.

Когда вы играете, используете ПК, или если окно GeForce NOW неактивно, то никакие клавиши нажиматься не будут.

Частоту нажатия фейковых клавиш, а также таймер отсутствия активности вы можете регулировать по желанию в значениях Sleep и A_TimeIdle (см. комментарии в коде). Но я не заметил никаких проблем и при текущих значениях. По моим замерам, по умолчанию из игры выбрасывает через 15 минут бездействия. С активным скриптом игра продержалась 30 минут, дальше тестировать не стал.

Итого мы имеем 6 строчек кода, все команды ясны и прозрачны - обычный кликер, и не надо изобретать велосипед.

А что там у нашего товарища?

UI класс со всеми функциями занимает ~200 строк кода. Код библиотеки занимает ~40 строк кода. Додумайтесь как реализовать подобное и выкладывайте пожалуйста в открытый доступ свои сурсы.

Я придумал способ которым могу обходить кик за афк, зачем мне делать этот способ общедоступным ?

Не совсем обычный кликер, данный способ эмулирования активности пользователя никак не влияет на комфортную игру

Правильно воспользоваться API так чтобы GFN подумал, что ты реальный человек - это нечто другое, чем просто тупое использование какой-то функции. Там нужна логика и прочее.

GeForce NOW: Open-source обход кика за AFK и разоблачение 0x00 NULL

Если данный вариант пофиксят, тупо запретив использование несуществующих клавиш, или добавят каких-то дополнительных проверок, то есть запасное, менее изящное, но как мне кажется, более надежное решение - его вряд-ли можно как-то запретить:

loop ; зацикливание скрипта { Random, rand, 60000, 120000 Sleep %rand% if (A_TimeIdle >= 300000 and WinActive("ahk_exe GeForceNOW.exe")) { SendInput {W down} Gosub, RandomKeyPress Sleep %rand% SendInput {W up} SendInput {S down} Sleep %rand% SendInput {S up} Gosub, RandomMousePosition MouseMove, %rand1%, %rand2%, %rand3%, R Gosub, RandomMousePosition MouseMove, -%rand1%, -%rand2%, %rand3%, R } } RandomKeyPress: Random, rand, 1000, 2000 return RandomMousePosition: Random, rand1, 10, 50 Random, rand2, 10, 50 Random, rand3, 10, 50 return

Также как и в первом варианте, скрипт будет ожидать отсутствии вашей активности за ПК в течение 5 минут, и наличие активного окна GeForce NOW, с той лишь разницей, что по истечении этого времени, вместо F13 он будет рандомно каждые 1-2 минуты нажимать клавиши W, S с рандомной продолжительностью и двигать мышкой на рандомное расстояние и с рандомной скоростью, что в теории должно казаться более человечным поведением для GFN. В этом случае вы будете видеть как ваш персонаж "дергается" при неактивности.

145145
53 комментария

Не ну это конец. Судя по тому, что говорил автор оригинального фикса, сейчас произойдут 2 вещи (еще до того, как я допишу свой коммент).

Во-первых, ГФН сразу выкатит фикс.
Во-вторых, у тебя украдут код. Он явно пойдет в основу новой операционной системы. Убийцы виндоус. Ну или вроде того.

63
Ответить

школьники уже бегут перепродавать код 

25
Ответить

Комментарий недоступен

22
Ответить

Комментарий недоступен

18
Ответить

Комментарий недоступен

21
Ответить

Комментарий недоступен

6
Ответить

Было утром, вроде

Ответить