Нужна информация по автовходу в игру

  • Автор темы Автор темы Logan22
  • Дата начала Дата начала

Logan22

Гений мысли
Проверенный
Знаток Lineage2
Орден Почета
Мастер реакций
Любитель реакций
Знаток письма
Медаль Благодарности
Старожил I степени
Медаль за активность на Форуме
За заслуги перед форумом
Преподаватель
За веру и верность форуму
Сообщения
1 638
Розыгрыши
0
Решения
3
Репутация
1 747
Реакции
1 482
Баллы
1 808
Вызывает интерес к автовходу в игру.

В каких патчах, интерфейсах, etc... реализован вход на персонажа используя аргументы к l2.exe и какие сервера поддерживают такую фичу.

К примеру автовход: l2.exe account=logan22 password=123456 player=SuperKent server=1

Я знаю что HF и выше в клиенте поддерживается автовход в аккаунт (до выбора персонажа), но интересует информация по входу далее, на персонажа.
 
Я видел более интересную реализацию.

Сделать ввод данных в инпуты клиента не сложно, но вот как программно понять, когда считать клиент игры загрузившимся, чтоб можно было вводить данные.
На этом видео, видно что у человека получилось реализовать.

Хуком UNetworkHandler::Tick, он начинает вызываться как только клиент полностью готов к работе.

C++:
AddHook(new UNetworkHandler_Tick_Hook(reinterpret_cast<uint8_t*>(GetProcAddress(engine_module, "?Tick@UNetworkHandler@@UAEXM@Z"))));


static void (__fastcall* Tick_Original)(void* network_handler_ptr, void* function_ptr, float delta);

void __fastcall Tick_Hooked(void* network_handler_ptr, void* function_ptr, float delta)
{
    if (!is_first_tick_)
    {
        Application::getInstance()->OnEvent(EApplicationEvent::GameClientStarted);
        is_first_tick_ = true;
    }
    Tick_Original(network_handler_ptr, function_ptr, delta);
}
 

Кто сделает под interlude за $, пишите в лс
 
я себе на хф делал автовход простенький
Не плохо. Однако, тебя нет выбора сервера, это стоит учитывать, иногда в выборе сервера могут быть разные.
Сделай возможность указывать логин, пасс, сервер через аргументы к приложению и опубликуй в разделах загрузки, уверен многим пригодится и персонажа для входа.
К примеру l2.exe account=logan22 password=123456 player=SuperKent server=1
 
Не плохо. Однако, тебя нет выбора сервера, это стоит учитывать, иногда в выборе сервера могут быть разные.
Сделай возможность указывать логин, пасс, сервер через аргументы к приложению и опубликуй в разделах загрузки, уверен многим пригодится и персонажа для входа.
К примеру l2.exe account=logan22 password=123456 player=SuperKent server=1
Попробую)
 
после хука "?Tick@UNetworkHandler@@UAEXM@Z"
если окно клиента не в фокусе то получается так.
 

Вложения

  • 2024-10-15_22-00-25.webp
    2024-10-15_22-00-25.webp
    61 КБ · Просмотры: 137
  • 2024-10-15_22-10-38.webp
    2024-10-15_22-10-38.webp
    20,6 КБ · Просмотры: 53
  • 2024-10-15_22-11-13.webp
    2024-10-15_22-11-13.webp
    5,3 КБ · Просмотры: 117
В диспетчере задач можно посмотреть пароль?)
если про тот что передается через командную строку, то легко
как и забрать эти данные сторонними программами, если это понадобилось
eclipse_9f5AwFF8xT.png
 
Оффтоп:
иду пакостить на серверах представленого пользователя с админ аккаунта, ведь логин/пароль уже запалили, ухахахвавхвх
Оффтоп:
удачи достучаться на локальный сервер, запущенный у меня на компе, ага :)
 
Sarcasm:

Sarcasm:
БЫСТРЕЕ ПОКА НЕ УДАЛИЛИ - СКАЧАЛ ВЕСЬ ХЕНТАЙ С ПЛАНШЕТА ГАЙКОТСЫ, ЗАЛИЛ НА ЮТУБ - С ДОСТУПОМ ПО ССЫЛКЕ -

UPD
ГАЙКА РАБОТАЕТ БЫСТРЕЕ ЧЕМ Я МОГУ ЗАЛИВАТЬ!
Перезалив -
 
походу я делаю что то не так.

C++:
void _fastcall new_TickUNetworkHandler(unsigned int This, unsigned int EDX, float float_val)
{
    Logger("TickUNetworkHandler ok");
    true_TickUNetworkHandler(This, EDX, float_val);

    if (AuthLogin)
    {
        AuthLogin = false;

        std::wstring loginS(L"admin10");
        const wchar_t* loginC = loginS.c_str();
        wchar_t login[64] = {};
        wcscpy_s(login, loginC);

        std::wstring passwordS(L"admin10");
        const wchar_t* passwordC = passwordS.c_str();
        wchar_t password[64] = {};
        wcscpy_s(password, passwordC);

        new_RequestAuthLogin(This, EDX, login, password, 0);
    }
}
 

Вложения

  • 2024-10-15_22-17-16.webp
    2024-10-15_22-17-16.webp
    54 КБ · Просмотры: 130
походу я делаю что то не так.

C++:
void _fastcall new_TickUNetworkHandler(unsigned int This, unsigned int EDX, float float_val)
{
    Logger("TickUNetworkHandler ok");
    true_TickUNetworkHandler(This, EDX, float_val);

    if (AuthLogin)
    {
        AuthLogin = false;

        std::wstring loginS(L"admin10");
        const wchar_t* loginC = loginS.c_str();
        wchar_t login[64] = {};
        wcscpy_s(login, loginC);

        std::wstring passwordS(L"admin10");
        const wchar_t* passwordC = passwordS.c_str();
        wchar_t password[64] = {};
        wcscpy_s(password, passwordC);

        new_RequestAuthLogin(This, EDX, login, password, 0);
    }
}
Посмотрите пример реализации тут:
 
если про тот что передается через командную строку, то легко
как и забрать эти данные сторонними программами, если это понадобилось
Посмотреть вложение 78782
да я именно про его имплементацию спрашивал, у него же кастомный l2.exe ну или хукнутый) вот и не понятно, торчит или нет
 
да я именно про его имплементацию спрашивал, у него же кастомный l2.exe ну или хукнутый) вот и не понятно, торчит или нет
Сторонними программами можно вытянуть и логин и пароль и из памяти клиента без особых проблем (не говоря уже о банальнои кейлогере). Если сторонняя программа есть в системе пользователя - торчащая на мир командная строка это наименьшая из его проблем.
 

Вложения

  • Без имени.webp
    Без имени.webp
    121,4 КБ · Просмотры: 91
Сторонними программами можно вытянуть и логин и пароль и из памяти клиента без особых проблем (не говоря уже о банальнои кейлогере). Если сторонняя программа есть в системе пользователя - торчащая на мир командная строка это наименьшая из его проблем.

лаунчер другого сервера можно считать сторонней программой?)
 
Я видел более интересную реализацию.

Сделать ввод данных в инпуты клиента не сложно, но вот как программно понять, когда считать клиент игры загрузившимся, чтоб можно было вводить данные.
На этом видео, видно что у человека получилось реализовать.

Вот эти файлы, кому надо ковыряйте
 

Вложения

Назад
Сверху Снизу