// в мейнлуп регаешь колбэк SF -> getRakNet ( ) -> registerRakNetCallback ( RAKHOOK_TYPE_OUTCOMING_RPC , outcomingRPC ) ; bool __stdcall outcomingRPC ( stRakNetHookParams * params ) { if ( params -> packetId == RPC_ClientJoin ) { int32_t version ; uint8_t mod , nickNameLen , authKeyLen , clientVerLen ; std :: string nickName , authKey , clientVersion ; uint32_t clientChallengeResponse ; // читаешь данные params -> bitStream -> ResetReadPointer ( ) ; params -> bitStream -> Read ( version ) ; params -> bitStream -> Read ( mod ) ; params -> bitStream -> Read ( nickNameLen ) ; nickName . reserve ( nickNameLen ) ; params -> bitStream -> Read ( const_cast ( nickName . data ( ) ) , nickNameLen ) ; params -> bitStream -> Read ( clientChallengeResponse ) ; params -> bitStream -> Read ( authKeyLen ) ; authKey . reserve ( authKeyLen ) ; params -> bitStream -> Read ( const_cast ( authKey . data ( ) ) , authKeyLen ) ; params -> bitStream -> Read ( clientVerLen ) ; clientVersion . reserve ( clientVerLen ) ; params -> bitStream -> Read ( const_cast ( clientVersion . data ( ) ) , clientVerLen ) ; // меняешь данные // обратно вписываешь данные params -> bitStream -> ResetWritePointer ( ) ; params -> bitStream -> Write ( version ) ; params -> bitStream -> Write ( mod ) ; params -> bitStream -> Write ( static_cast ( nickName . size ( ) ) ) ; params -> bitStream -> Write ( nickName . c_str ( ) , nickName . size ( ) ) ; params -> bitStream -> Write ( clientChallengeResponse ) ; params -> bitStream -> Write ( static_cast ( authKey . size ( ) ) ) ; params -> bitStream -> Write ( authKey . c_str ( ) , authKey . size ( ) ) ; params -> bitStream -> Write ( static_cast ( clientVer . size ( ) ) ) ; params -> bitStream -> Write ( clientVersion . c_str ( ) , clientVer . size ( ) ) ; } return true ; }