PDA

Просмотр полной версии : Критует с л2 когда хукаю Engine.dll


0day
03.09.2020, 19:54
Привет всем. Вопрос возник, работаю в данный момент с интерлюдом, есть dll с помощью которой ставлю хуки, с чистой engine.dll - у меня проблем нет.

Когда возьму какую-то engine.dll из патча игрового сервера с защитой типа SG или чето ещё. То при открытии клиента, у меня вылазит крит с таким содержимым:

General protection fault!

History: UGameEngine::Init <- InitEngine



Есть идеи что я делаю не так? Или мне стоит так же ставить хук на функцию Init из класса UGameEngine?

SeregaZ
04.09.2020, 10:10
так в том то и суть - ежели чистая, значит времен царя гороха, когда про хуки слыхом не слыхивали. и поэтому там все работает. а берешь от сервера - значит свежую, то там то уже прознали где собака зарыта и понавешали всякое разное поверх - вот и лезут эти ошибки. где что искать - не скажу. я в танке :) в смысле ничо не знаю.

ScythLab
04.09.2020, 13:18
>типа SG
SG - это SmartGuard? Если да, то очень интересно было бы посмотреть как ты подгружаешь dll в клиент с SG, и при этом SG по какой-то непонятной причине не блокирует эту подгрузку.

>Есть идеи что я делаю не так?
Из разряда "у меня машина как-то странно работает, как ее можно починить?".
Ты не описываешь что именно ты делаешь и когда. Что ты хукаешь на чистом клиенте, что ты хукаешь на защищенном клиенте? На сколько ты уверен в правильности места хука? Как ты проверяешь, что хук успешно прошел и что хук корректен? Расшифрована ли engine.dll в момент твоего хука? Не пытается ли потом защита поверх твоего хука поставить свой хук? Не портит ли твоя функция-перехватчик какие-либо данные из-за которых крашится клиент, да и вообще получает ли она управление перед крашем или нет? Есть ли проверки в защите на изменение кода engine.dll (хотя судя по ошибке, до этой проверки защита не доходит)?

>Когда возьму какую-то engine.dll из патча игрового сервера с защитой типа SG или чето ещё
Еще раз внимательно перечитал. Ты выдергиваешь одну единственную dll, засовываешь ее в свой чистый клиент и хочешь чтобы это работало? Или все-таки ты запускаешь клиент с защитой, и в нем пытаешься патчить?

0day
04.09.2020, 16:36
По правде говоря, мы начали одну дискуссию на другом форуме. Подумав что там не особо много людей знающих об программировании, поэтому начал топик здесь.

Есть какие-то контакты с тобой, кроме как форума этого или другого?

Я взял за основу сурцы тавера, подправив ихние хуки под интерлюд. Адреса всех используемых функций верны, и работают. (Хотя мб я чуть не прав, и стоит не много поработать с L2ParamStack, но это не важно)

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

На счёт защит SG / ACC есть подозрения что это один и тот же человек (акума). Однажды копаясь в дампе л2, снятым с ядра, нашел удивительное сходство с SG, и пару строчек, оставленных Акуму.

Добавлено через 3 минуты
[
>Когда возьму какую-то engine.dll из патча игрового сервера с защитой типа SG или чето ещё
Еще раз внимательно перечитал. Ты выдергиваешь одну единственную dll, засовываешь ее в свой чистый клиент и хочешь чтобы это работало? Или все-таки ты запускаешь клиент с защитой, и в нем пытаешься патчить?[/QUOTE]

Если я тебя правильно понял, стоит попробовать сделать Delay Import ? Ибо я пытаюсь поставить все эти хуки до того момента, как сделает это защита.

ScythLab
04.09.2020, 20:38
>Есть какие-то контакты с тобой, кроме как форума этого или другого?
Я думаю здесь общаться вполне нормально.

>Delay Import
Я не уверен, что под этим термином мы подразумеваем одно и тоже.

Используй мои вопросы в предыдущем посте как контрольные точки, которые необходимо проверить. Так найдешь в какой момент и что крашится.
Также могу посоветовать вначале откатать свой механизм на реальном сервере с разрешенным ботом и добейся видимого эффекта (например перехват чата или пакета с движением перса), когда этот этап будет пройден, можно перейти к простеньким защитам, например на l2ultra_ru, хоть там хроники заявлены С4, но по факту используется клиент ИТ. И уже в самом конце можно переходить на Smart или AAC.

0day
20.09.2020, 23:42
ScythLab (http://coderx.ru/member.php?u=17866), попытался накатить патч C4 на IL, и он не встал((

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

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

Полгода назад я вытаскивал дампы, включая дамп памяти Engine.dll,
сегодня дошли руки чтобы почистить его, и привести в порядок.

Так как я не особо понимаю описание функций, возможно что-то изменилось за последнее время.
Но меня очень интересуют такие функции как:


??0UNetworkHandler@@QAE@XZ
??0UNetworkHandler@@QAE@ABV0@@Z
??2UNetworkHandler@@SAPAXIPAVUObject@@VFName@@K@Z
??_7UNetworkHandler@@6BFExec@@@
??_7UNetworkHandler@@6BUObject@@@
?RL@UNetworkHandler@@UAEHXZ
?SAP@UNetworkHandler@@UAEXXZ
?EW@UNetworkHandler@@UAEXH@Z
?MTL@UNetworkHandler@@UAEXPAVAActor@@VFVector@@10H @Z


Хотелось бы получить какое-то описание этим функциям.