Вот мне интересно,кто может помогите с исходниками,набросками,интересными статьями и мыслями,как вызывать функции и как работать с ними не через пакеты,а прямо с API клиента,не актуально уже стало работать с пакетами после того как почти все сервера начинают вводить шифр,писание алгоритмов занимает очень много времени,а вот как работать с вызовом функций,перехватом функций,подключением к клиенту своих программ думаю не только мне будет интересно.Реально ли так создать базу инвентаря в другой программе,список NPC вокруг чара,и получения другой информации с помощью API,какие библиотеки перехватывать.Короче всю интересную информацию связаную с этим постите ниже..Спасибо зарание.
реально. делал полноценного бота под руофф на АПИ клиента. Заморочек там не меньше чем при перехвате и дешифрации пакетов. Нужно найти функцию отвечающую за то или иное действие (методом научного тыка, благо названия у функций в большинстве своем говорящие), определить параметры которые ей передаются (в качестве параметров бывают целые классы, например L2ParamStack, до сих пор с ужасом о нем вспоминаю), хукнуть эту функцию если требуется.
И так на каждое действие, приходится искать соответствующую функцию и обрабатывать ее. И еще куча подводных камней, сейчас уже и не вспомнишь все. Почитай тут, много чего можно узнать.
Две DLL из которых импортируются необходимые функции: Engine.dll и Core.dll. Открой Engine.dll в IDA Pro, посмотри список экспортируемых функций. Классы, с которыми придется работать это UGameEngine и UNetworkHandler: первый класс для получения состояния игрового мира, второй для воздействия на игровой мир. Core.dll уже не вспомню на вскидку, что импортирует.
В общем можно писать целую докторскую диссертацию по работе с АПИ клиента )))
Последний раз редактировалось maxilam, 12.01.2013 в 01:09.
Решил попробовать подцепить L2CC тут на форуме лежала Работает скажу отлично хоть и на сервере стоит защита(Шифрация и всякая другая дрянь) хоть вдохновило то что она работает. [Просмотр файла только для зарегистрированных пользователей...]
Теперь бы это сделать в делфи хоть бы 1 пример перехвата функции или как создать хоть список чаров вокруг персонажа и вывести их в listbox
Теперь бы это сделать в делфи хоть бы 1 пример перехвата функции или как создать хоть список чаров вокруг персонажа и вывести их в listbox
От xkor'a
Цитата:
дельфи не умеет работать с thiscall типом вызова вроде, так что надо будет всё равно переходники на асме делать...
Ps ты мне скажи что за бред это на интерлюде где онлайн +100500 работает л2сс
а на какой то ГФШ типа http://gastia.ru/index.php он не работает, там GG палит если хоть на 1 байт изменен размер екзешника или дллки которые к нему подключатся.
Цитата:
не актуально уже стало работать с пакетами после того как почти все сервера начинают вводить шифр,
Вот если сейчас здесь напишем как работать с хуками - история опять повторится и гфш всякие будут вводит зашиты, чтобы никто не мог хукать апи функции. Появился l2phx в широком пользовании - все сервера стали вводить шифрацию, появятся программы ставящие хуки на Апи функции появятся и защиты.
P.S.S. Сделай другой скрин, чтобы не было видно
Последний раз редактировалось St1mul, 12.01.2013 в 21:05.
Как то так. Прочитай ту тему от и до, многое станет понятным. Все зависит от твоего знания дельфей, от сервера под который делаешь перехват, от понимания методов сплайсинга функций. А готовые сорцы навряд ли тебе выложат )).
а тут мы отправили на API
Верно?
Теперь научиться бы иньектить свою ДЛЛ,форму вызвать не тежело из Длл,а вот сделать что бы хукала хоть что то и передавала в форму это уже был бы прогресс.Да тут можна начать работать с новыми видами ботов,уже не пакетными а АРІ просто сюда не вылаживать готовый продукт.
тут ни чего изменять не надо, просто получаем данные о чаре и пересылаем любым удобным способом во внешнюю программу. user: pointer указатель на структуру User содержащую всю информацию о твоем чаре (в Engine.dll есть две функции UserInfо и CharInfo. Первая отвечает за твоего чара, другая за всех остальных чаров вокруг, за NPC отвечает другая функция). x,y,z - координаты чара.
Кстати со структурой User тоже придется попотеть, и собирать ее по крупицам из байтов дампа, если же конечно кто то это не сделал до тебя, именно под нужные тебе хроники
По поводу инжекта погугли: SetWindowsHookEx
Добавлено через 22 минуты
HHOOK SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId);
idHook=WH_DEBUG
lpfn - Указатель на функцию ловушки.lpfn должен указывать на процедуру ловушки в динамически закгружаемой библиотеке (DLL).
hmod - Дескриптор DLL, содержащей функцию, указанную в параметре lpfn.
dwThreadId -Идентификатор потока, в котором необходимо перехватывать сообщения.
Наверное есть у кого то примерчик по даной процедуре?
Я могу подкинуть.В зависимости от того как ты хочешь оформить хук.
Скажи какой именно:
1.Хочешь поставить хук в длл и приатачить длл в екзешник. (как л2сс)
2. Хочешь поставить хук, когда процесс ла2 уже запущен
Последний раз редактировалось St1mul, 12.01.2013 в 19:51.