Показать сообщение отдельно
Непрочитано 21.12.2015, 03:09   #13
Аватар для Evengard
Пользователь

Автор темы (Топик Стартер) Re: Выключаем GameGuard на любой версии клиента любого региона

Хехе. Я обошёл очень творчески это (речь про альтернативную версию, если честно основную я уже даже не обновляю и не проверяю - там всё просто, там загрузчик предварительно подгружает ДЛЛку, благодаря загрузчику её код оказывается "над" WL). Дело всё в том, что WL действительно уже блочит перезапись экзекьютейбл секций при подгрузке ДЛЛки - а значит уже не вариант.

Я придумал извращенский вариант. Дело всё в том, что ГеймГвард - это отдельный процесс. Самое интересное, что процесс ГеймГварда не защищён никаким WL. Поэтому ДЛЛка... Работает из самого ГеймГварда. Цепляется к процессу самого ГеймГварда. Дело в том, что клиент ждёт ответа от ГеймГварда - либо по пайпу, либо экзит код нужный. ДЛЛка перехватывает управление у ГеймГварда раньше чем тот успеет создать пайп (или умереть), поэтому мы можем сделать спокойно своё чёрное дело. Мы ищем процесс, который запустил ГеймГвард (мы же ведь сидим в адресном пространстве ГеймГварда, для нас это найти не проблема же), и с помощью WriteProcessMemory патчим всё без того, чтобы WL нам мешался - мы в другом процессе, WL не может нам ничего сделать. После чего мы аккуратно убиваем ГеймГвард нужным Экзит Кодом, клиент получает нужный ему экзит код - к этому времени он уже пропатчен - радостно продолжает прогрузку - и вуаля!

На самом деле скорее всего аналогичный вариант можно применить и для любого другого таргета защищённого ВЛом - просто создаём второй экзешник, нам сам ВЛ даст запустить второй экзешник же ведь, проблемы то с этим нету - и из него уже всё патчим на лету.
Evengard вне форума Отправить сообщение для Evengard с помощью Skype™ Ответить с цитированием
Сказали спасибо: