
10.11.2022, 21:22
|
|
Участник форума
Регистрация: 31.07.2022
Сообщений: 100
С нами:
1994099
Репутация:
28
|
|
Сообщение от Cake_
прив, еще летом я реверсил основные пакеты для авторизации на сервер через раксамп / взаимодействия с интерфейсом, но желания писать бота уже не было.
так как гении начали продавать это за 15к - заливаю бесплатно. Ниже найдете текстовик который я заполнял во время реверса и функции с отправкой/обработкой пакетов, краткое объяснения шагов захода.
функции захардкожены, т.к. нужны были лишь для проверки правильности заполненных последовательностей. бит. (как это не странно, некоторые участки кода удалены)
сниппеты использования:
Код:
#define ID_RADMIR_MESSAGE 215
// processnetwork
case
ID_RADMIR_MESSAGE
:
Packet_RadmirMsg
(
pkt
)
;
break
;
void
CBot
::
Packet_RadmirMsg
(
Packet
*
p
)
{
RakNet
::
BitStream
bsPacket
(
(
unsigned
char
*
)
p
->
data
,
p
->
length
,
false
)
;
uint32_t
uiStrLength
;
char
szStr
[
0x1000
]
;
bsPacket
.
ResetReadPointer
(
)
;
bsPacket
.
IgnoreBits
(
64
)
;
bsPacket
.
Read
(
uiStrLength
)
;
if
(
uiStrLength
Send
(
&
bsData
,
HIGH_PRIORITY
,
UNRELIABLE_SEQUENCED
,
0
)
;
}
// отправляется через 1.5 - 3 сек после получении пакета #34(ID_CONNECTION_REQUEST_ACCEPTED)
void
CChiefBot
::
SendHandshake
(
void
)
{
RakNet
::
BitStream bsHandshake
;
bsHandshake
.
Write
(
(
uint8_t
)
215
)
;
bsHandshake
.
Write
(
(
uint16_t
)
1
)
;
bsHandshake
.
Write
(
(
uint32_t
)
51
)
;
bsHandshake
.
Write
(
(
uint8_t
)
0
)
;
bsHandshake
.
Write
(
(
uint32_t
)
30
)
;
bsHandshake
.
Write
(
"WD-WCC6Y2XZN97N190449674902806"
,
30
)
;
bsHandshake
.
Write
(
(
uint32_t
)
40
)
;
bsHandshake
.
Write
(
"1528FEE466C3A51C875E9D652EFA307F4B7725BE"
,
40
)
;
m_pRakClient
->
Send
(
&
bsHandshake
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
RakNet
::
BitStream bsBrowser
;
bsBrowser
.
Write
(
(
uint8_t
)
215
)
;
bsBrowser
.
Write
(
(
uint16_t
)
2
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
bsBrowser
.
Write
(
(
uint32_t
)
22
)
;
bsBrowser
.
Write
(
"EndedInitializeBrowser"
,
22
)
;
bsBrowser
.
Write
(
(
uint32_t
)
0
)
;
m_pRakClient
->
Send
(
&
bsBrowser
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}
// использование в void CBot::Packet_RadmirMsg( Packet* p )
void
CChiefBot
::
SendAuthenticationQuery
(
void
)
{
RakNet
::
BitStream bsAuthQuery
;
bsAuthQuery
.
Write
(
(
uint8_t
)
215
)
;
bsAuthQuery
.
Write
(
(
uint16_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
0
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
18
)
;
bsAuthQuery
.
Write
(
"OnPlayerStartLogin"
,
18
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
2
)
;
bsAuthQuery
.
Write
(
(
uint8_t
)
115
)
;
bsAuthQuery
.
Write
(
(
uint32_t
)
6
)
;
bsAuthQuery
.
Write
(
"123123"
,
6
)
;
m_pRakClient
->
Send
(
&
bsAuthQuery
,
HIGH_PRIORITY
,
RELIABLE
,
NULL
)
;
}
на этом всё.
Братанчик его можно было бы оформить ешо короче и оптимизирование( а Ладна тут и написано.Я тупой кароче)
|
|
|