xkor, с приемом пакета полностью разобрался все работает.
Теперь нужны идеи по поводу отправки. В соседней теме "Радар своими руками" в этом посте http://coderx.ru/showpost.php?p=62580&postcount=53 кое что указано, но остается не ясным как на самом деле называется функция, которую murc вызывает в своих функциях L2MemoryAlloc. Там указаны прямые адреcа а названий нет
Yegor, а как обзовёшь так и будет называться, эта функция не экспортируется так что название её в клиенте не фигурирует нигде...
на неё по идее должен быть указатель в какой нить таблице методов, но я не нашел, правда и не искал особо ибо мне проще другую функцию (тоже не экспортируемую, но где её адрес взять я знаю) в середине хукнуть чтоб она всё что мне надо вызвала за меня.
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Есть такой вопросец. В общем попытался я перехватить эту функцию с помощью удаленных потоков и перезаписью таблицы импорта на asterios.tm, но обнаружил для себя - что такого метода в их версии Engine.dll - попросту нет. Либо они его переписали под себя(изменили название методов) либо еще что. Не суть важно. Попытался - посмотреть под отладчиком что там вообще происходит, l2 при виде отладчика сразу критует, судя по всему так задуманно, так как они используют у себя АПИ функцию IsDebuggerPresent, и в случае если она вернет истину - просто критуют клиента. Решил значит я с помощью перетирания таблицы импорта просто заменить эту функцию своей. Но пока что безуспешно, либо я где то ошибся, либо они вызывают ее по хитрому, и нужно копать глубже. Так вот возникает вопрос - может уже кто то колупался на клиенте астериоса с этим ? Знает кто то, на какие функции они поменяли исходные?
Последний раз редактировалось respown, 09.07.2016 в 10:37.
Есть такой вопросец. В общем попытался я перехватить эту функцию с помощью удаленных потоков и перезаписью таблицы импорта на asterios.tm, но обнаружил для себя - что такого метода в их версии Engine.dll - попросту нет. Либо они его переписали под себя(изменили название методов) либо еще что. Не суть важно. Попытался - посмотреть под отладчиком что там вообще происходит, l2 при виде отладчика сразу критует, судя по всему так задуманно, так как они используют у себя АПИ функцию IsDebuggerPresent, и в случае если она вернет истину - просто критуют клиента. Решил значит я с помощью перетирания таблицы импорта просто заменить эту функцию своей. Но пока что безуспешно, либо я где то ошибся, либо они вызывают ее по хитрому, и нужно копать глубже. Так вот возникает вопрос - может уже кто то колупался на клиенте астериоса с этим ? Знает кто то, на какие функции они поменяли исходные?
Есть там все, без этого метода игра не будет работать, и он есть в таблице экспорта engine.dll, потому что l2.exe его импортирует, нельзя его выкинуть.
Есть там все, без этого метода игра не будет работать, и он есть в таблице экспорта engine.dll, потому что l2.exe его импортирует, нельзя его выкинуть.
dumpbin говорит об обратном + ко всему GetProcAdress возвращает нулевой указатель. В игре есть папка system и asterios, в папке system - лежит Engine.dll и в ней такой метод есть, но эту библиотеку игра не грузит. Они грузят engine.dll из папки asterios, а там такого метода нет. Более того, там в одном месте только упоминается название класса, в котором этот метод реализован(UNetworkHandler) или как то так, даже конструкторы данного класса отсуствуют в таблице импорта. Хотя в оригинальной версии библиотеки - они есть.