
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, 14:30
|
|
Познающий
Регистрация: 08.03.2024
Сообщений: 89
С нами:
1150633
Репутация:
231
|
|
Сообщение от BIT_hack
Но при выполнение ее ничего не происходит
Потому что указатель на UNetworkHandler не передается. Я начинал делать свою реализацию автологина на эпилоге, но пока забросил т.к. лень редактировать интерфейс и окна. Вот простенький пример как можно инициализировать и вызвать RequestAuthLogin:
C++:
Код:
class
UNetworkHandler
{
}
;
typedef
int
(
__fastcall
*
RequestAuthLogin_fn
)
(
UNetworkHandler
*
,
int
,
const
wchar_t
*
,
const
wchar_t
*
,
int
)
;
namespace
{
uintptr_t UNetworkOffset
=
0x71d274
;
// для ИЛ клиента смещение будет другим
UNetworkHandler
*
UNetwork
=
nullptr
;
RequestAuthLogin_fn fRequestAuthLogin
=
nullptr
;
}
void
Init
(
)
{
HMODULE hEngineModule
=
GetModuleHandleW
(
L
"engine.dll"
)
;
if
(
hEngineModule
!=
nullptr
)
{
uintptr_t UNetworkAddress
=
(
reinterpret_cast
(
hEngineModule
)
)
+
UNetworkOffset
;
UNetwork
=
*
reinterpret_cast
(
UNetworkAddress
)
;
fRequestAuthLogin
=
(
RequestAuthLogin_fn
)
GetProcAddress
(
hEngineModule
,
"?RequestAuthLogin@UNetworkHandler@@UAEHPAG0H@Z"
)
;
}
}
void
RequestLogin
(
const
wchar_t
*
login
,
const
wchar_t
*
password
)
{
if
(
UNetwork
!=
nullptr
&&
fRequestAuthLogin
!=
nullptr
)
{
fRequestAuthLogin
(
UNetwork
,
0
,
login
,
password
,
0
)
;
}
}
|
|
|

01.11.2024, 14:33
|
|
Постоянный
Регистрация: 12.08.2021
Сообщений: 355
С нами:
2502597
Репутация:
223
|
|
Спасибо но откуда вытащить
Сообщение от Charmant
Потому что указатель на UNetworkHandler не передается. Я начинал делать свою реализацию автологина на эпилоге, но пока забросил т.к. лень редактировать интерфейс и окна. Вот простенький пример как можно инициализировать и вызвать RequestAuthLogin:
Спасибо но откуда взять?
uintptr_t UNetworkOffset = 0x71d274; // для ИЛ клиента смещение будет другим
|
|
|

01.11.2024, 14:36
|
|
Познающий
Регистрация: 08.03.2024
Сообщений: 89
С нами:
1150633
Репутация:
231
|
|
Сообщение от BIT_hack
Спасибо но откуда вытащить
Спасибо но откуда взять?
uintptr_t UNetworkOffset = 0x71d274; // для ИЛ клиента смещение будет другим
Найти ссылку в функциях-членах класса. Например:
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|