Re: Выключаем GameGuard на любой версии клиента любого региона
Работает со всеми версиями европейского клиента, всех CBT. Я даже не менял код, чтобы оно работало.
|
Re: Выключаем GameGuard на любой версии клиента любого региона
Руки не доходили написать инжект, пока не перестал ровно восстанавливать ИАТ скрипт LCF'a на збт-5.
Только сел писать, а тут такой подарок. Огромное человеческое спасибо. Цитата:
З.Ы мои потуги заканчивались фейлом, так и не понял в чем секрет, при загрузке моей прокси с самого начала ВЛ был уже на месте...в подобном у меня опыта ноль :( |
Re: Выключаем GameGuard на любой версии клиента любого региона
Хехе. Я обошёл очень творчески это (речь про альтернативную версию, если честно основную я уже даже не обновляю и не проверяю - там всё просто, там загрузчик предварительно подгружает ДЛЛку, благодаря загрузчику её код оказывается "над" WL). :) Дело всё в том, что WL действительно уже блочит перезапись экзекьютейбл секций при подгрузке ДЛЛки - а значит уже не вариант.
Я придумал извращенский вариант. Дело всё в том, что ГеймГвард - это отдельный процесс. Самое интересное, что процесс ГеймГварда не защищён никаким WL. Поэтому ДЛЛка... Работает из самого ГеймГварда. Цепляется к процессу самого ГеймГварда. Дело в том, что клиент ждёт ответа от ГеймГварда - либо по пайпу, либо экзит код нужный. ДЛЛка перехватывает управление у ГеймГварда раньше чем тот успеет создать пайп (или умереть), поэтому мы можем сделать спокойно своё чёрное дело. Мы ищем процесс, который запустил ГеймГвард (мы же ведь сидим в адресном пространстве ГеймГварда, для нас это найти не проблема же), и с помощью WriteProcessMemory патчим всё без того, чтобы WL нам мешался - мы в другом процессе, WL не может нам ничего сделать. После чего мы аккуратно убиваем ГеймГвард нужным Экзит Кодом, клиент получает нужный ему экзит код - к этому времени он уже пропатчен - радостно продолжает прогрузку - и вуаля! На самом деле скорее всего аналогичный вариант можно применить и для любого другого таргета защищённого ВЛом - просто создаём второй экзешник, нам сам ВЛ даст запустить второй экзешник же ведь, проблемы то с этим нету - и из него уже всё патчим на лету. |
Re: Выключаем GameGuard на любой версии клиента любого региона
Обновил альтернативную под последний апдейт геймгварда - по сути ничего не изменилось, они просто перекомпилировали либу, из-за чего сигнатура чекания на существование ГГ не находилась.
Ссылки те же. Поскольку "неальтернативную" я даже не обновляю, то ссылки на неё убил все. |
Re: Выключаем GameGuard на любой версии клиента любого региона
|
Re: Выключаем GameGuard на любой версии клиента любого региона
Ага, спасибо, и её обновил.
|
Re: Выключаем GameGuard на любой версии клиента любого региона
Большое спасибо, проверил на евро все работает, пригодится.
|
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. ССЫЛКИ ТЕ ЖЕ |
Re: Выключаем GameGuard на любой версии клиента любого региона
Дико извиняюсь. В предыдущей версии наделал парочку детских ошибок, из-за которых могли быть либо просто креши, либо могло тупо не работать. Как ни странно затронули эти проблемы только Windows 7, однако могли вылезти где угодно.
Файлы обновлены, версия 2.0.2 (дада патчер теперь показывает версию), будьте внимательны! |
Re: Выключаем GameGuard на любой версии клиента любого региона
Off:Развернуть ↓ |
Текущее время: 01:47. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot