 |
|

01.11.2024, 10:48
|
|
Постоянный
Регистрация: 12.08.2021
Сообщений: 355
С нами:
2502597
Репутация:
223
|
|
- В интернете я нашёл информацию о том, что нужно использовать функцию для автологина из Engine.dll. Вот как она выглядит в интерлюдии.
C++:
Код:
public
:
virtual
int
__thiscall UNetworkHandler
::
RequestAuthLogin
(
unsigned
short
*
,
unsigned
short
*
,
int
)
;
- Этот код на c++я инжектю в игру
C++:
Код:
void
Start
(
)
{
HMODULE hModule
=
GetModuleHandleA
(
"engine.dll"
)
;
// Получаем дескриптор загруженной DLL
if
(
hModule
!=
NULL
)
{
FARPROC requestAuthLoginAddr
=
GetProcAddress
(
hModule
,
"?RequestAuthLogin@UNetworkHandler@@UAEHPAG0H@Z"
)
;
if
(
requestAuthLoginAddr
!=
NULL
)
{
MessageBox
(
NULL
,
L
"Попытка входа в игру!"
,
L
""
,
MB_OK
)
;
typedef
int
(
__thiscall
*
RequestAuthLoginFunc
)
(
unsigned
short
*
,
unsigned
short
*
,
int
)
;
RequestAuthLoginFunc RequestAuthLogin
=
(
RequestAuthLoginFunc
)
requestAuthLoginAddr
;
unsigned
short
Login
[
]
=
{
'a'
,
'd'
,
'm'
,
'i'
,
'n'
,
0
}
;
unsigned
short
Password
[
]
=
{
'a'
,
'd'
,
'm'
,
'i'
,
'n'
,
0
}
;
int
authType
=
7
;
RequestAuthLogin
(
Login
,
Password
,
authType
)
;
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
switch
(
ul_reason_for_call
)
{
case
DLL_PROCESS_ATTACH
:
Start
(
)
;
break
;
}
return
TRUE
;
}
Возможно, я не совсем верно подхожу к реализации этой идеи?
|
|
|

01.11.2024, 10:50
|
|
Познавший АНТИЧАТ
Регистрация: 13.07.2016
Сообщений: 1,418
С нами:
5175542
Репутация:
548
|
|
|
|
|

01.11.2024, 11:21
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
По идее все правильно, можно еще с тех полей сохранить данные и потом в списке выбирать на какой аккаунт заходить в окошке html например или рядом раскрывающийся список с кнопкой. ?
|
|
|

01.11.2024, 11:25
|
|
Постоянный
Регистрация: 12.08.2021
Сообщений: 355
С нами:
2502597
Репутация:
223
|
|
Сообщение от Maksim
По идее все правильно, можно еще с тех полей сохранить данные и потом в списке выбирать на какой аккаунт заходить в окошке html например или рядом раскрывающийся список с кнопкой. ?
Забыл написать в шапке темы - При инжекте выводится сообщение
C++:
Код:
MessageBox
(
NULL
,
L
"Попытка входа в игру!"
,
L
""
,
MB_OK
)
;
Это значит что dll нашлась и функция тоже
C++:
Код:
RequestAuthLogin
(
Login
,
Password
,
authType
)
;
Но при выполнение ее ничего не происходит
|
|
|

01.11.2024, 11:28
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от BIT_hack
Забыл написать в шапке темы - При инжекте выводится сообщение
C++:
Код:
MessageBox
(
NULL
,
L
"Попытка входа в игру!"
,
L
""
,
MB_OK
)
;
Это значит что dll нашлась и функция тоже
C++:
Код:
RequestAuthLogin
(
Login
,
Password
,
authType
)
;
Но при выполнение ее ничего не происходит
Может authtype нужен другой? По идее клиент бы написал сообщение, пароль не правильный как минимум или зашел на сервер. ?
|
|
|

01.11.2024, 11:29
|
|
Постоянный
Регистрация: 12.08.2021
Сообщений: 355
С нами:
2502597
Репутация:
223
|
|
Сообщение от Maksim
Может authtype нужен другой? По идее он бы написал сообщение, пароль не правильный как минимум или зашел на сервер. ?
Проверял вообще тишина никакой реакции(
|
|
|

01.11.2024, 11:31
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от BIT_hack
Проверял вообще тишина никакой реакции(
Хорошо бы в ida посмотреть, что это и какие данные нужны. Может нативная форма подставляет данные с чем то еще, не просто текст.
Вот например с одного форума, может как подсказка из fasm:
Код:
Код:
proc RequestAuthLogin uses esi, pLogin:DWORD,pPassword:DWORD,Param:DWORD
|
|
|

01.11.2024, 11:48
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Наверное так может:
Код:
Код:
wchar_t Login[] = L"admin"; // Логин в формате UTF-16
wchar_t Password[] = L"admin"; // Пароль в формате UTF-16
int authType = 7;
int result = RequestAuthLogin((unsigned short*)Login, (unsigned short*)Password, authType);
if (result != 0) {
MessageBoxA(NULL, L"Ошибка входа!", L"", MB_OK);
}
|
|
|

01.11.2024, 12:55
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Вот еще дополню для it:
Сообщение от Спойлер
Вызываем api функцию клиента.
Код:
Код:
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 в памяти.
Для этого есть конструктор UNH и вызывает на старте клиента.
Код:
Код:
?InternalConstructor@UNetworkHandler@@SAXPAX@Z
|
|
|

01.11.2024, 13:40
|
|
Постоянный
Регистрация: 12.08.2021
Сообщений: 355
С нами:
2502597
Репутация:
223
|
|
Сообщение от Maksim
Вот еще дополню для it:
Эти обрывки кода не помогут(
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|