Меню входа, поля ввода ID и пароля.

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

gbcdev96

Путник
VIP
Сообщения
67
Розыгрыши
0
Репутация
0
Реакции
1
Баллы
31
Привет, ребята! Кто-нибудь знает, как я могу изменить эти два editbox? Я уже пытался искать во всем коде своего интерфейса, но не могу найти эти editbox, а тем более в xdateditor. Существует только одно окно trueEditbox, которое изменяет текстуру. Мне кажется, это нативный код, но я искал и ничего не нашел на C++. Кто-нибудь может подсказать, как это сделать?


1736201203513.webp


То же самое происходит с кнопками LogIn и Exit, я не могу их найти :/ Все кажется сделанным нативно.
 
А клиент какой? В какой-то момент их перенесли во флеш, а на старьіх клиентах (до хф включетильно точно) да, они в дллках бьіли.

Вот єта тема полезная будет, если старьіе хроники.
 
Последнее редактирование:
Привет, ребята! Кто-нибудь знает, как я могу изменить эти два editbox? Я уже пытался искать во всем коде своего интерфейса, но не могу найти эти editbox, а тем более в xdateditor. Существует только одно окно trueEditbox, которое изменяет текстуру. Мне кажется, это нативный код, но я искал и ничего не нашел на C++. Кто-нибудь может подсказать, как это сделать?


Посмотреть вложение 83101


То же самое происходит с кнопками LogIn и Exit, я не могу их найти :/ Все кажется сделанным нативно.
Это AuthWnd , прописывается в NWindow.dll ,
 
А клиент какой? В какой-то момент их перенесли во флеш, а на старьіх клиентах (до хф включетильно точно) да, они в дллках бьіли.

Вот єта тема полезная будет, если старьіе хроники.
Interludio
Это AuthWnd , прописывается в NWindow.dll ,
Итак, мне нужно декомпилировать или найти уже декомпилированную DLL. Есть ли где-то такая библиотека в общем доступе на форуме? Я никогда не находил её, подумываю о покупке :/. Это нативный код, в моих классах UC нет AuthWnd.
 
Interludio

Итак, мне нужно декомпилировать или найти уже декомпилированную DLL. Есть ли где-то такая библиотека в общем доступе на форуме? Я никогда не находил её, подумываю о покупке :/. Это нативный код, в моих классах UC нет AuthWnd.
Естественно AuthWnd описан только в Nwindow.dll
1736208447896.webp
1736208457429.webp
 

Спасибо, насколько я понял, field_98 — это окно, в котором будет editbox для логина и пароля, а editbox находятся между этими fields. Я не смогу изменить это через Unreal Script, потому что у меня нет их control_id, верно? То есть я ничего не смогу сделать в Unreal Script, мне понадобится DLL, чтобы их изменить? (Вы могли бы сказать, какую программу использовали, чтобы это увидеть?)
 
С этим я могу скрыть окно, но это не очень поможет, хехе. Я не смогу вызвать родную функцию для вызова пакета RequestAuthLogin, а в UnrealScript я не нашел никакой функции, чтобы получить имена дочерних элементов окна. Это, возможно, могло бы мне помочь.

function OnShow()
{

local L2Util zzutilbar;
zzutilbar = L2Util(GetScript("L2Util"));
authWnd = GetHandle("AuthWnd");
authWnd.HideWindow();
Me = GetHandle("TrueWnd");
}
 
Спасибо, насколько я понял, field_98 — это окно, в котором будет editbox для логина и пароля, а editbox находятся между этими fields. Я не смогу изменить это через Unreal Script, потому что у меня нет их control_id, верно? То есть я ничего не смогу сделать в Unreal Script, мне понадобится DLL, чтобы их изменить? (Вы могли бы сказать, какую программу использовали, чтобы это увидеть?)
field_98 просто переменная с указателем текстуры , field_9c указывает на класс editbox (и это просто класс , сама логика/отрисовка в одной из виртуальных функций этого класса)
 
field_98 просто переменная с указателем текстуры , field_9c указывает на класс editbox (и это просто класс , сама логика/отрисовка в одной из виртуальных функций этого класса)

Понял, field_9c — это переменная, которая содержит указатель на editbox, возможно, это editbox для логина. Но в UnrealScript я ничего не смогу с этим сделать, верно? Потому что у меня нет control_id этого editbox. Мне понадобится DLL?

А насчёт программы, которая делает такой скриншот, не могли бы вы сказать, что это за программа? Мне стало интересно узнать больше о подобных исследованиях.
 
Понял, field_9c — это переменная, которая содержит указатель на editbox, возможно, это editbox для логина. Но в UnrealScript я ничего не смогу с этим сделать, верно? Потому что у меня нет control_id этого editbox. Мне понадобится DLL?

А насчёт программы, которая делает такой скриншот, не могли бы вы сказать, что это за программа? Мне стало интересно узнать больше о подобных исследованиях.
Верно понадобиться DLL, программа IDA pro
 
Верно понадобиться DLL, программа IDA pro
Да, мне нужно будет научиться создавать DLL и подключать их к .exe. Я не особо занимаюсь этим, хехе, и контента, связанного с L2, не так много, всё скрыто. Думаю, придётся немного помучиться, хехе.
 
Верно понадобиться DLL, программа IDA pro
Ты знаешь / у тебя есть безопасная ссылка для скачивания IDA Pro? На их сайте есть только бесплатная версия и Home по безумной цене, хех.
 
Ты знаешь / у тебя есть безопасная ссылка для скачивания IDA Pro? На их сайте есть только бесплатная версия и Home по безумной цене, хех.
Можно Ghidra на гитхабе взять, неплохой аналог вроде. )
С этим я могу скрыть окно, но это не очень поможет, хехе. Я не смогу вызвать родную функцию для вызова пакета RequestAuthLogin, а в UnrealScript я не нашел никакой функции, чтобы получить имена дочерних элементов окна. Это, возможно, могло бы мне помочь.
RequestAuthLogin в енжине лежит, можно сделать к нему интерфейс для вьізова в анрил скрипт, нужно будет только нетворк хендлер где-то перехватить, чтобьі юзать для вьізова дефолтной RequestAuthLogin.
 
Можно Ghidra на гитхабе взять, неплохой аналог вроде. )

RequestAuthLogin в енжине лежит, можно сделать к нему интерфейс для вьізова в анрил скрипт, нужно будет только нетворк хендлер где-то перехватить, чтобьі юзать для вьізова дефолтной RequestAuthLogin.
А клиент какой? В какой-то момент их перенесли во флеш, а на старьіх клиентах (до хф включетильно точно) да, они в дллках бьіли.

Вот єта тема полезная будет, если старьіе хроники.
Я скачал Ghidra, собираюсь попробовать следовать этой теме от Bithack. В данном случае мне нужно взять код на C++, сгенерировать DLL и внедрить в main? Можешь подсказать, какую программу используют для внедрения в .exe?
 
Не, свою кастомную дллку привязать не к л2.ехе, а, допустим к ogg..dll.
Привет, друг! Мне удалось внедрить DLL из Bithack, и я понял код, хе-хе. Самая большая головная боль – это исследование, нахождение оффсетов и т.д. Я подумал, что для обучения можно взять что-то простое, например, RequestAutoShot, чтобы научиться исследовать, а затем реализовать его для использования в UC.

В качестве примера я взял useSkill. Я знаю, что в файле UIScript.uc мне нужно добавить объявление интерфейса:

native final function UseSkill( INT SkillID );

native final function RequestAutoSoulShot(int ShotId, int bEnable);

Я взял в расчет этот namespace: UNetworkHandler::, который, как мне кажется, отвечает за отправку и получение пакетов, и открыл его в Ghidra:

1736340262412.webp

Учитывая, что это UNetworkHandle, я подозреваю, что это может быть этот хекс: 11fcbed3.

Из любопытства, перед тем как посмотреть на неё, я проверил это место, которое, пох
оже, является одним из мест, где используется RequestAutoShot.

1736340747770.webp


(Это было скорее вопросом, мне кажется, что этот код вызывает команду RequestAutoShot CMD)

Возвращаясь к расследованию:

1736341057394.webp

Мне кажется, что функция действительно находится здесь: 11f79e8f.


1736341154526.webp


Которая, похоже, вызывает предыдущую функцию: FUN_10406880, которая, как мне кажется, отвечает за отправку пакета и запись лога.


Тогда, мне кажется, что то, что мне нужно, находится в этом хексе: 10310d48. И, следуя коду бита, мне нужно это имя: RequestAutoSoulShot@UNetworkHandler@@UAEXAAV, но я сомневаюсь, как именно мне получить оффсет.
 

Вложения

  • 1736340351913.webp
    1736340351913.webp
    7,1 КБ · Просмотры: 7
Я думаю, что RequestAutoSoulShot также использует этот офсет:
поэтому я подумал о следующей реализации:
Моя логика расследования верна?
const uintptr_t unetworkOffset = 0x81F538;
extern "C" __declspec(dllexport)
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(hModule);
MessageBoxW(NULL, L"DLL LOADED!", L"Debug", MB_OK);
HMODULE engineModule = GetModuleHandleW(L"engine.dll");
if (engineModule) {
unetwork = reinterpret_cast<UNetworkHandler**>(
reinterpret_cast<uintptr_t>(engineModule) + unetworkOffset);

requestAutoSoulShotFn = (RequestAutoSoulShotFn)GetProcAddress(
engineModule,
"?RequestAutoSoulShot@UNetworkHandler@@UAEXAAVL2ParamStack@@@Z");
}
CreateThread(nullptr, 0, TestThread, nullptr, 0, nullptr);
}
return TRUE;
}
 
Назад
Сверху Снизу