Показать сообщение отдельно
Непрочитано 07.07.2015, 18:08   #3
Аватар для Foru
Пользователь

Автор темы (Топик Стартер) Re: L2Manger Source c# (Не реализована авторизация)

Цитата:
Сообщение от deathmad Посмотреть сообщение
Что мешает доделать? Деньги?

Т.е. потенциально ты бы мог сделать программу, которая бы запустила клиент с автоматическим вводом логин и пароля?
Дело не в деньгах, а во времени.


Автологин можно реализовать в 4 способа.
1) Захват формы и WindowSend, такой способ по мне не красив и вообще не уместен.
2) Редактировать файл l2.ini и запускать l2 с командами - такая быдло поделка не всегда будет работает.
3) Перехват пакетов и уже через них авторизовываться, тут тоже есть свои сложности, например разное шифрование для каждого сервера, но и защита клиента не всегда даст перехватить пакеты.
4) Способ самый оптимальный: Путём dll injecta дергать функции клиента для авторизации, но тут сложность реализации, сколько я не искал методы такого инжекта, реализацию не нашёл.

Цитата с одного из форумов.

Цитата:
Сообщение от Yegor Посмотреть сообщение
Вызвать апи функцию клиента

Код:
int (__fastcall *UNetworkHandler_RequestAuthLogin)(UNetworkHandler*, int, wchar_t const * login, wchar_t const * password,int param) = 0;
....
(FARPROC&) UNetworkHandler_RequestAuthLogin = GetProcAddress(hEngine, "?RequestAuthLogin@UNetworkHandler@@UAEHPB_W0H@Z");
....
(*UNetworkHandler_RequestAuthLogin)(UNH, 0/*что угодно*/, login, password, 0);
Только вот надо изначально получить UNH, это указатель на объект UNetworkHandler в памяти. Как это сделать не перехватив не одного пакета я хз.
На этом я и забил разработку, время дорого для ковыряния клиента.
__________________
Foru вне форума Ответить с цитированием