ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   onSendClientJoin (https://forum.antichat.xyz/showthread.php?t=1520314)

vmprotect 11.09.2024 18:04

можно ли в c++ использовать функцию onsendclientjoin может она есть в sampapi или можно ее как-то хукнуть напрямую

ustoman 15.09.2024 00:00

Цитата:

Сообщение от 0x1146fd

можно ли в c++ использовать функцию onsendclientjoin может она есть в sampapi или можно ее как-то хукнуть напрямую

легко и просто, но с использованием SF API

onsendclientjoin:





Код:

bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
RPCEnumeration
::
RPC_ClientJoin
)
{
BitStream
*
bs
=
params
->
bitStream
;
int
iVersion
;
byte byteMod
;
byte byteNameLen
;
char
szNickName
[
32
]
;
uint uiChallengeResponse
;
byte byteAuthBSLen
;
char
pszAuthBullshit
[
size
]
;
byte clientVersionLen
;
char
clientVersion
[
size
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
iVersion
)
;
params
->
bitStream
->
Read
(
byteMod
)
;
params
->
bitStream
->
Read
(
byteNameLen
)
;
params
->
bitStream
->
Read
(
szNickName
,
byteNameLen
)
;
szNickName
[
byteNameLen
]
=
'\0'
;
params
->
bitStream
->
Read
(
uiChallengeResponse
)
;
params
->
bitStream
->
Read
(
byteAuthBSLen
)
;
params
->
bitStream
->
Read
(
pszAuthBullshit
,
byteAuthBSLen
)
;
pszAuthBullshit
[
byteAuthBSLen
]
=
'\0'
;
params
->
bitStream
->
Read
(
clientVersionLen
)
;
params
->
bitStream
->
Read
(
clientVersion
,
clientVersionLen
)
;
clientVersion
[
clientVersionLen
]
=
'\0'
;
iVersion
=
version
;
sprintf
(
pszAuthBullshit
,
"authkey"
)
;
byteAuthBSLen
=
sizeof
(
pszAuthBullshit
)
;
sprintf
(
clientVersion
,
"client version"
)
;
clientVersionLen
=
sizeof
(
clientVersion
)
;
params
->
bitStream
->
ResetWritePointer
(
)
;
params
->
bitStream
->
Write
(
iVersion
)
;
params
->
bitStream
->
Write
(
byteMod
)
;
params
->
bitStream
->
Write
(
byteNameLen
)
;
params
->
bitStream
->
Write
(
szNickName
,
byteNameLen
)
;
params
->
bitStream
->
Write
(
uiChallengeResponse
)
;
params
->
bitStream
->
Write
(
byteAuthBSLen
)
;
params
->
bitStream
->
Write
(
pszAuthBullshit
,
byteAuthBSLen
)
;
params
->
bitStream
->
Write
(
clientVersionLen
)
;
params
->
bitStream
->
Write
(
clientVersion
,
clientVersionLen
)
;
}
;
return
true
;
}


vmprotect 16.09.2024 18:57

Цитата:

Сообщение от ustoman

легко и просто, но с использованием SF API

onsendclientjoin:





Код:

bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
RPCEnumeration
::
RPC_ClientJoin
)
{
BitStream
*
bs
=
params
->
bitStream
;
int
iVersion
;
byte byteMod
;
byte byteNameLen
;
char
szNickName
[
32
]
;
uint uiChallengeResponse
;
byte byteAuthBSLen
;
char
pszAuthBullshit
[
size
]
;
byte clientVersionLen
;
char
clientVersion
[
size
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
iVersion
)
;
params
->
bitStream
->
Read
(
byteMod
)
;
params
->
bitStream
->
Read
(
byteNameLen
)
;
params
->
bitStream
->
Read
(
szNickName
,
byteNameLen
)
;
szNickName
[
byteNameLen
]
=
'\0'
;
params
->
bitStream
->
Read
(
uiChallengeResponse
)
;
params
->
bitStream
->
Read
(
byteAuthBSLen
)
;
params
->
bitStream
->
Read
(
pszAuthBullshit
,
byteAuthBSLen
)
;
pszAuthBullshit
[
byteAuthBSLen
]
=
'\0'
;
params
->
bitStream
->
Read
(
clientVersionLen
)
;
params
->
bitStream
->
Read
(
clientVersion
,
clientVersionLen
)
;
clientVersion
[
clientVersionLen
]
=
'\0'
;
iVersion
=
version
;
sprintf
(
pszAuthBullshit
,
"authkey"
)
;
byteAuthBSLen
=
sizeof
(
pszAuthBullshit
)
;
sprintf
(
clientVersion
,
"client version"
)
;
clientVersionLen
=
sizeof
(
clientVersion
)
;
params
->
bitStream
->
ResetWritePointer
(
)
;
params
->
bitStream
->
Write
(
iVersion
)
;
params
->
bitStream
->
Write
(
byteMod
)
;
params
->
bitStream
->
Write
(
byteNameLen
)
;
params
->
bitStream
->
Write
(
szNickName
,
byteNameLen
)
;
params
->
bitStream
->
Write
(
uiChallengeResponse
)
;
params
->
bitStream
->
Write
(
byteAuthBSLen
)
;
params
->
bitStream
->
Write
(
pszAuthBullshit
,
byteAuthBSLen
)
;
params
->
bitStream
->
Write
(
clientVersionLen
)
;
params
->
bitStream
->
Write
(
clientVersion
,
clientVersionLen
)
;
}
;
return
true
;
}



оно работает только .sf ? или будет с asi

XRLM 16.09.2024 19:03

Цитата:

Сообщение от 0x1146fd

оно работает только .sf ? или будет с asi

только сф, для аси есть ракхуки


Время: 13:42