Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 12.01.2013, 00:08   #1
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию вызов функций

Вот мне интересно,кто может помогите с исходниками,набросками,интересными статьями и мыслями,как вызывать функции и как работать с ними не через пакеты,а прямо с API клиента,не актуально уже стало работать с пакетами после того как почти все сервера начинают вводить шифр,писание алгоритмов занимает очень много времени,а вот как работать с вызовом функций,перехватом функций,подключением к клиенту своих программ думаю не только мне будет интересно.Реально ли так создать базу инвентаря в другой программе,список NPC вокруг чара,и получения другой информации с помощью API,какие библиотеки перехватывать.Короче всю интересную информацию связаную с этим постите ниже..Спасибо зарание.
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
goodvin1709 вне форума   Ответить с цитированием
Старый 12.01.2013, 00:43   #2
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 46
Сказал Спасибо: 6
Имеет 19 спасибок в 12 сообщенях
maxilam пока неопределено
По умолчанию

Цитата:
Сообщение от goodvin1709 Посмотреть сообщение
.Реально ли так создать...
реально. делал полноценного бота под руофф на АПИ клиента. Заморочек там не меньше чем при перехвате и дешифрации пакетов. Нужно найти функцию отвечающую за то или иное действие (методом научного тыка, благо названия у функций в большинстве своем говорящие), определить параметры которые ей передаются (в качестве параметров бывают целые классы, например L2ParamStack, до сих пор с ужасом о нем вспоминаю), хукнуть эту функцию если требуется.
И так на каждое действие, приходится искать соответствующую функцию и обрабатывать ее. И еще куча подводных камней, сейчас уже и не вспомнишь все.
Почитай тут, много чего можно узнать.

Две DLL из которых импортируются необходимые функции: Engine.dll и Core.dll. Открой Engine.dll в IDA Pro, посмотри список экспортируемых функций. Классы, с которыми придется работать это UGameEngine и UNetworkHandler: первый класс для получения состояния игрового мира, второй для воздействия на игровой мир. Core.dll уже не вспомню на вскидку, что импортирует.

В общем можно писать целую докторскую диссертацию по работе с АПИ клиента )))

Последний раз редактировалось maxilam, 12.01.2013 в 01:09.
maxilam вне форума   Ответить с цитированием
За это сообщение maxilam нажился 2 спасибками от:
Старый 12.01.2013, 01:04   #3
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

goodvin1709, там тем по этой теме хватает http://coderx.ru/forumdisplay.php?f=35 , например сразу вот http://coderx.ru/showthread.php?t=948
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти

служба поддержки 4gay - ICQ 642274822
Morfik вне форума   Ответить с цитированием
За это сообщение Morfik нажился 2 спасибками от:
Старый 12.01.2013, 02:38   #4
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию

Решил попробовать подцепить L2CC тут на форуме лежала Работает скажу отлично хоть и на сервере стоит защита(Шифрация и всякая другая дрянь) хоть вдохновило то что она работает.
[Просмотр файла только для зарегистрированных пользователей...]
Теперь бы это сделать в делфи хоть бы 1 пример перехвата функции или как создать хоть список чаров вокруг персонажа и вывести их в listbox
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/

Последний раз редактировалось goodvin1709, 12.01.2013 в 18:23.
goodvin1709 вне форума   Ответить с цитированием
За это сообщение goodvin1709 нажился спасибкой от:
Старый 12.01.2013, 13:33   #5
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Цитата:
Теперь бы это сделать в делфи хоть бы 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.
St1mul вне форума   Ответить с цитированием
За это сообщение St1mul нажился спасибкой от:
Старый 12.01.2013, 14:37   #6
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 46
Сказал Спасибо: 6
Имеет 19 спасибок в 12 сообщенях
maxilam пока неопределено
По умолчанию

Цитата:
Сообщение от goodvin1709 Посмотреть сообщение
Теперь бы это сделать в делфи хоть бы 1 пример перехвата функции или как создать хоть список чаров вокруг персонажа и вывести их в listbox
http://coderx.ru/showpost.php?p=171667&postcount=425

Как то так. Прочитай ту тему от и до, многое станет понятным. Все зависит от твоего знания дельфей, от сервера под который делаешь перехват, от понимания методов сплайсинга функций. А готовые сорцы навряд ли тебе выложат )).
maxilam вне форума   Ответить с цитированием
За это сообщение maxilam нажился спасибкой от:
Старый 12.01.2013, 17:58   #7
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию

Да теперь я понял как перехватить
Код:
procedure OnUserInfo_Hook(user: pointer; x,y,z: single; u1,u2,u3: single; s1,s2: integer); stdcall;
asm
  push s2;
  push s1;
  push u3;
  push u2;
  push u1;
  push z;
  push y;
  push x;
  push user;
  push ecx;
  call OnUserInfo_New;
end;
Это мы перехватили функцию. и вызываем OnUserInfo_New;
Код:
procedure OnUserInfo_New(h: integer; user: pointer; x,y,z: single; u1,u2,u3: single; s1,s2: integer); stdcall;
begin
  ...
  //делаем свои делишки
  ...
  OnUserInfo_Call(user, x,y,z, u1,u2,u3, s1,s2);
end;
тут мы изменяем я так и не понял что вот только что вызываем функцию
OnUserInfo_Call(user, x,y,z, u1,u2,u3, s1,s2);
Код:
procedure OnUserInfo_Call(user: pointer; x,y,z: single; u1,u2,u3: single; s1,s2: integer); stdcall;
asm
  push s2;
  push s1;
  push u3;
  push u2;
  push u1;
  push z;
  push y;
  push x;
  push user;
  mov ecx, geh;
  mov esp, ebp;
  pop ebp;
  jmp [OnUserInfo_Original];
end;
а тут мы отправили на API
Верно?
Теперь научиться бы иньектить свою ДЛЛ,форму вызвать не тежело из Длл,а вот сделать что бы хукала хоть что то и передавала в форму это уже был бы прогресс.Да тут можна начать работать с новыми видами ботов,уже не пакетными а АРІ просто сюда не вылаживать готовый продукт.
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
goodvin1709 вне форума   Ответить с цитированием
Старый 12.01.2013, 18:57   #8
Пользователь
 
Регистрация: 27.08.2010
Сообщений: 46
Сказал Спасибо: 6
Имеет 19 спасибок в 12 сообщенях
maxilam пока неопределено
По умолчанию

Цитата:
Сообщение от goodvin1709 Посмотреть сообщение
...
//делаем свои делишки
...
тут ни чего изменять не надо, просто получаем данные о чаре и пересылаем любым удобным способом во внешнюю программу.
user: pointer указатель на структуру User содержащую всю информацию о твоем чаре (в Engine.dll есть две функции UserInfо и CharInfo. Первая отвечает за твоего чара, другая за всех остальных чаров вокруг, за NPC отвечает другая функция). x,y,z - координаты чара.
Кстати со структурой User тоже придется попотеть, и собирать ее по крупицам из байтов дампа, если же конечно кто то это не сделал до тебя, именно под нужные тебе хроники
По поводу инжекта погугли: SetWindowsHookEx
maxilam вне форума   Ответить с цитированием
За это сообщение maxilam нажился спасибкой от:
Старый 12.01.2013, 19:22   #9
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию

Спасибо добрый дядя

Добавлено через 22 минуты
HHOOK SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId);
idHook=WH_DEBUG
lpfn - Указатель на функцию ловушки.lpfn должен указывать на процедуру ловушки в динамически закгружаемой библиотеке (DLL).
hmod - Дескриптор DLL, содержащей функцию, указанную в параметре lpfn.
dwThreadId -Идентификатор потока, в котором необходимо перехватывать сообщения.
Наверное есть у кого то примерчик по даной процедуре?
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/

Последний раз редактировалось goodvin1709, 12.01.2013 в 19:22. Причина: Добавлено сообщение
goodvin1709 вне форума   Ответить с цитированием
Старый 12.01.2013, 19:43   #10
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

Я могу подкинуть.В зависимости от того как ты хочешь оформить хук.
Скажи какой именно:
1.Хочешь поставить хук в длл и приатачить длл в екзешник. (как л2сс)
2. Хочешь поставить хук, когда процесс ла2 уже запущен

Последний раз редактировалось St1mul, 12.01.2013 в 19:51.
St1mul вне форума   Ответить с цитированием
За это сообщение St1mul нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:45.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!