Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Blade & Soul (https://forum.zone-game.info/forumdisplay.php?f=183)
-   -   Выключаем GameGuard на любой версии клиента любого региона (https://forum.zone-game.info/showthread.php?t=38896)

Evengard 20.12.2015 14:03

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Работает со всеми версиями европейского клиента, всех CBT. Я даже не менял код, чтобы оно работало.

MetaWind 20.12.2015 18:14

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Руки не доходили написать инжект, пока не перестал ровно восстанавливать ИАТ скрипт LCF'a на збт-5.
Только сел писать, а тут такой подарок.
Огромное человеческое спасибо.

Цитата:

Сообщение от Evengard (Сообщение 404091)
Работает со всеми версиями европейского клиента, всех CBT. Я даже не менял код, чтобы оно работало.

У меня почти все утилиты как не странно, работают в оригинальном виде, хотя последний раз менял код еще во время выхода клиента 2.0+ кореи. Не менял даже сигнатуры поиска методов крипта (хотя на корее пару раз приходилось искать заново)

З.Ы мои потуги заканчивались фейлом, так и не понял в чем секрет, при загрузке моей прокси с самого начала ВЛ был уже на месте...в подобном у меня опыта ноль :(

Evengard 21.12.2015 03:09

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

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

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

Evengard 05.04.2016 16:36

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Обновил альтернативную под последний апдейт геймгварда - по сути ничего не изменилось, они просто перекомпилировали либу, из-за чего сигнатура чекания на существование ГГ не находилась.

Ссылки те же.

Поскольку "неальтернативную" я даже не обновляю, то ссылки на неё убил все.

Exile03 05.04.2016 18:24

Re: Выключаем GameGuard на любой версии клиента любого региона
 
http://www.mediafire.com/download/x3...alternative.7z

Evengard 05.04.2016 19:22

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Ага, спасибо, и её обновил.

vigorian 05.04.2016 19:50

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Большое спасибо, проверил на евро все работает, пригодится.

Evengard 12.04.2016 23:38

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Большое обновление!

Дело в том, что покопавшись я обнаружил в новом геймгварде ещё некий спавнящийся тред, который делает что-то противно-геймгвардовское. Пришлось его убивать. Вдобавок на некоторых системах version.dll не подгружался, потому пришлось срочно выдумывать замену.

Поскольку так просто туда было не подобраться, теперь патч состоит из трёх файлов - cryptsp.dll, winmm.dll и winmmhelper.exe. Все три файла надо закинуть в папку bin. winmmhelper.exe лучше не запускать - возможно неведомо что, ибо он начинает сканировать процесс родительского процесса на сигнатуры БнСа. Скорее всего конечно он просто вылетит с ошибкой, но кто знает...

!!!НЕ ЗАБУДЬТЕ УДАЛИТЬ СТАРЫЙ VERSION.DLL!!! Иначе возможны конфликты и фиг знает что!!!

Кроме того, раз уж я взялся делать, то ещё несколько новых фич запилил:
1. Улучшена производительность. В РАЗЫ. Серьёзно. Предыдущий метод был жутко неэффективным, теперь в разы быстрее отрабатывает.
2. Поддержка мультиоконности. Дада, теперь с моим патчем можно запускать несколько окон одновременно безо всяких проблем.
3. Поддержка оверрайда config.dat. Полезно с последней версией клиента для обхода лаунчера - включение inclient авторизации требует модификации config.dat, ну а чтоб сохранить возможность запускать таки через лаунчер надо было научить клиент запускаться с другого config.dat файла. Для этого добавьте следующий ключ командной строки: "/configdatoverride" - и клиент вместо подгрузки config.dat будет подгружать config2.dat.

ССЫЛКИ ТЕ ЖЕ

Evengard 13.04.2016 19:37

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Дико извиняюсь. В предыдущей версии наделал парочку детских ошибок, из-за которых могли быть либо просто креши, либо могло тупо не работать. Как ни странно затронули эти проблемы только Windows 7, однако могли вылезти где угодно.

Файлы обновлены, версия 2.0.2 (дада патчер теперь показывает версию), будьте внимательны!

PROGRAMMATOR 13.04.2016 20:11

Re: Выключаем GameGuard на любой версии клиента любого региона
 
Off:
Свернуть ↑Развернуть ↓


Текущее время: 01:47. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot