onSendClientJoin

vmprotect

Известный
Автор темы
351
192
можно ли в c++ использовать функцию onsendclientjoin может она есть в sampapi или можно ее как-то хукнуть напрямую
 
Решение
можно ли в 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)...

ustoman

Потрачен
15
18
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
можно ли в 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;
}
 
  • Нравится
Реакции: 1NEXPL1CA и vmprotect

vmprotect

Известный
Автор темы
351
192
легко и просто, но с использованием 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