Weishaypt

Фикс читов при помощи плагина Pawn.RakNet

1 post in this topic

Вступление

Здравствуйте, Уважаемые пользователи форума. В прошедшем 2018 года появилось не мало читов, которые отправляют невалидные данные в пакет или RPC. Из-за которых происходит краш или другие вредительские действия. В сегодняш я приведу примеры фикса этих читов с использованием плагина Pawn.Raknet.

Скачать плагин Pawn.RakNet

Автор плагина: urShadow

Адаптировал для 0.3e: H-U-N-T-E-R

Скачать плагин с серверов форума: https://pawno-rus.ru/files/file/500-pawnraknet-for-crmp-03e/

 

Onfoot Crasher

Этот крашер отправляет невалидные данные в пакет AimSync. Вследствие чего у игроков, которые находятся в стриме читера происходит краш.

Чтобы этого не происходило нам достаточно проверять данные и производить десинхронизацию. Подключите плагин к вашему моду и добавьте этот код в конец вашего мода. Так же стоит учесть, что ID пакетов и RPC в CRMP и SAMP отличаются, поэтому в конце урока приведу список ID пакетов и RPC для CR-MP 0.3e

const ID_AIM_SYNC = 117; //ID пакета
IPacket:ID_AIM_SYNC(playerid, BitStream:bs)
{
	new AIMSYNC[PR_AimSync];

	BS_IgnoreBits(bs, 8); //Игнорируем биты
	BS_ReadAimSync(bs, AIMSYNC);//Считываем информацию
	
  	//Выполняем проверку
 	if(AIMSYNC[PR_camFrontVec][0] != AIMSYNC[PR_camFrontVec][0] || floatcmp(floatabs(AIMSYNC[PR_camFrontVec][0]), 1.0000) == 1
		|| AIMSYNC[PR_camFrontVec][1] != AIMSYNC[PR_camFrontVec][1] || floatcmp(floatabs(AIMSYNC[PR_camFrontVec][1]), 1.0000) == 1
		|| AIMSYNC[PR_camFrontVec][2] != AIMSYNC[PR_camFrontVec][2] || floatcmp(floatabs(AIMSYNC[PR_camFrontVec][2]), 1.0000) == 1
		|| AIMSYNC[PR_camPos][0] != AIMSYNC[PR_camPos][0] || floatcmp(floatabs(AIMSYNC[PR_camPos][0]), 3500.0000) == 1
		|| AIMSYNC[PR_camPos][1] != AIMSYNC[PR_camPos][1] || floatcmp(floatabs(AIMSYNC[PR_camPos][1]), 3500.0000) == 1
		|| AIMSYNC[PR_camPos][2] != AIMSYNC[PR_camPos][2] || floatcmp(floatabs(AIMSYNC[PR_camPos][2]), 3500.0000) == 1)
	{
        	return false; // Делаем десинхронизацию
	}
    return 1;
}

Респавн всех авто сервера

Этот чит отправляет в RPC VehicleDestroyed нулевой id авто. Из-за чего все машины сервера респавнятся. Чтобы машины не респавнились будем проверять id авто, если оно будет равно 0, то будем делать десинхронизацию игроку.

const ID_VehicleDestroyed = 9;//ID RPC
IRPC:ID_VehicleDestroyed(playerid, BitStream:bs)
{
    new vehicleid;
    BS_IgnoreBits(bs, 8);//игнорируем биты
    BS_ReadUint16(bs, vehicleid);//Считываем информацию

    //Делаем проверку
    if(vehicleid == 0)
    {
        return false; //Делаем десинхронизацию
    }
    return 1;
}

На это сегодня всё. Возможно буду дополнять, как появятся новые уязвимости. Все эти же действия можно было выполнить и с использованием другого плагина RaknetManager, но это уже отдельная история.

Автор статьи: Weishaypt

Копирование на другие источники разрешено ТОЛЬКО с указанием автора и активной ссылки на источник (PAWNO-RUS.RU)! 

Спойлер

##### Входящие РПЦ #####
patch_incoming_rpc = "ConnectionRejected"        13     
patch_incoming_rpc = "ClientMessage"             14     
patch_incoming_rpc = "SetWorldTime"              15     
patch_incoming_rpc = "SetPlayerWeather"          19     
patch_incoming_rpc = "SetPlayerSkin"             20     
patch_incoming_rpc = "SetPlayerName"             21     
patch_incoming_rpc = "SetPlayerPos"              22     
patch_incoming_rpc = "SetPlayerPosFindZ"         23     
patch_incoming_rpc = "SetPlayerHealth"           24     
patch_incoming_rpc = "PutPlayerInVehicle"        25     
patch_incoming_rpc = "RemovePlayerFromVehicle"   26     
patch_incoming_rpc = "SetPlayerColor"            27     
patch_incoming_rpc = "DisplayGameText"           28     
patch_incoming_rpc = "ForceSpawnSelection"       29     
patch_incoming_rpc = "AttachObjectToPlayer"      30     
patch_incoming_rpc = "InitMenu"                  31     
patch_incoming_rpc = "ShowMenu"                  32     
patch_incoming_rpc = "HideMenu"                  33     
patch_incoming_rpc = "SetPlayerWantedLevel"      34     
patch_incoming_rpc = "ShowTextDraw"              35     
patch_incoming_rpc = "HideTextDraw"              36     
patch_incoming_rpc = "EnableStuntBonus"          37     
patch_incoming_rpc = "EditTextDraw"              38     
patch_incoming_rpc = "AddGangZone"               39     
patch_incoming_rpc = "PlayCrimeReportForPlayer"  43     
patch_incoming_rpc = "PlayAudioStream"           45     
patch_incoming_rpc = "StopAudioStreamForPlayer"  46     
patch_incoming_rpc = "RemoveBuildingForPlayer"   47     
patch_incoming_rpc = "CreateObject"              48     
patch_incoming_rpc = "SetObjectPos"              49     
patch_incoming_rpc = "SetObjectRotation"         50     
patch_incoming_rpc = "DestroyObject"             51     
patch_incoming_rpc = "CreateExplosion"           54     
patch_incoming_rpc = "ShowNameTagForPlayer"      55     
patch_incoming_rpc = "AttachCameraToObject"      56     
patch_incoming_rpc = "ClickTextDraw"             58     
patch_incoming_rpc = "GiveTakeDamage"            60     
patch_incoming_rpc = "EditAttachedObject"        61     
patch_incoming_rpc = "EditObject"                62     
patch_incoming_rpc = "SelectObject"              63     
patch_incoming_rpc = "CancelEdit"                64     
patch_incoming_rpc = "WorldPlayerAdd"            69     
patch_incoming_rpc = "SetShopName"               70     
patch_incoming_rpc = "SetDrunkLevel"             72     
patch_incoming_rpc = "SetChatBubble"             75     
patch_incoming_rpc = "ShowDialog"                77     
patch_incoming_rpc = "VehicleParams"             80     
patch_incoming_rpc = "RemoveGangZone"            82     
patch_incoming_rpc = "ClientJoin"                81     
patch_incoming_rpc = "FlashGangZone"             83    
patch_incoming_rpc = "StopFlashGangZone"         84     
patch_incoming_rpc = "ApplyAnimation"            85     
patch_incoming_rpc = "ClearAnimations"           86     
patch_incoming_rpc = "SetSpecialAction"          87     
patch_incoming_rpc = "SetFightingStyle"          88     
patch_incoming_rpc = "SetPlayerVelocity"         89     
patch_incoming_rpc = "SetVehicleVelocity"        90     
patch_incoming_rpc = "MoveObject"                94     
patch_incoming_rpc = "StopObject"                95     
patch_incoming_rpc = "TogglePlayerSpectating"    97     
patch_incoming_rpc = "SetPlayerSpectating"       98     
patch_incoming_rpc = "PlayerSpectatePlayer"      99     
patch_incoming_rpc = "PlayerSpectateVehicle"     100    
patch_incoming_rpc = "UpdateScoresPingsIPs"      105   
patch_incoming_rpc = "SetPlayerInterior"         106    
patch_incoming_rpc = "SetCameraPos"              107    
patch_incoming_rpc = "SetCameraLookAt"           108    
patch_incoming_rpc = "SetVehiclePos"             109    
patch_incoming_rpc = "SetVehicleZAngle"          110    
patch_incoming_rpc = "SetVehicleParamsForPlayer" 111    
patch_incoming_rpc = "SetCameraBehindPlayer"     112    
patch_incoming_rpc = "TogglePlayerControllable"  113    
patch_incoming_rpc = "PlaySound"                 114    
patch_incoming_rpc = "SetPlayerWorldBounds"      115    
patch_incoming_rpc = "GivePlayerMoney"           116    
patch_incoming_rpc = "SetPlayerFacingAngle"      117    
patch_incoming_rpc = "ResetMoney"                118    
patch_incoming_rpc = "ResetPlayerWeapons"        119    
patch_incoming_rpc = "GivePlayerWeapon"          120    
patch_incoming_rpc = "LinkVehicleToInterior"     122    
patch_incoming_rpc = "SetPlayerArmour"           123    
patch_incoming_rpc = "SetSpawnInfo"              125    
patch_incoming_rpc = "SetPlayerTeam"             126    
patch_incoming_rpc = "DeathMessage"              153    
patch_incoming_rpc = "SetMapIcon"                154    
patch_incoming_rpc = "DisableMapIcon"            155    
patch_incoming_rpc = "SetGravity"                157   
patch_incoming_rpc = "SetVehicleHealth"          158    
patch_incoming_rpc = "AttachTrailerToVehicle"    159    
patch_incoming_rpc = "DetachTrailerFromVehicle"  160    
patch_incoming_rpc = "AddVehicleComponent"       161    

##### Исходящие РПЦ #####
patch_outcoming_rpc = "ServerCommand"         6      
patch_outcoming_rpc = "SetInteriorId"         7      
patch_outcoming_rpc = "MapMarker"             8      
patch_outcoming_rpc = "VehicleDestroyed"      9      
patch_outcoming_rpc = "ServerJoin"            10     
patch_outcoming_rpc = "ServerQuit"            11     
patch_outcoming_rpc = "InitGame"              12     
patch_outcoming_rpc = "ClickTextDraw"         58     
patch_outcoming_rpc = "GiveTakeDamage"        60     
patch_outcoming_rpc = "WorldPlayerAdd"        69     
patch_outcoming_rpc = "DialogResponse"        78     
patch_outcoming_rpc = "ClickPlayer"           79      0
patch_outcoming_rpc = "PlayerSpectatePlayer"  99     
patch_outcoming_rpc = "PlayerSpectateVehicle" 100    
patch_outcoming_rpc = "RequestClass"          101    
patch_outcoming_rpc = "RequestSpawn"          102    
patch_outcoming_rpc = "EnterVehicle"          103    
patch_outcoming_rpc = "ExitVehicle"           104    
patch_outcoming_rpc = "UpdateScoresPingsIPs"  105    
patch_outcoming_rpc = "WorldPlayerRemove"     127    
patch_outcoming_rpc = "WorldVehicleAdd"       128    
patch_outcoming_rpc = "WorldVehicleRemove"    129    
patch_outcoming_rpc = "WorldPlayerDeath"      130    
patch_outcoming_rpc = "DamageVehicle"         131   
patch_outcoming_rpc = "GameModeRestart"       136    
patch_outcoming_rpc = "Chat"                  138    
patch_outcoming_rpc = "ScmEvent"              140    
patch_outcoming_rpc = "PickedUpPickup"        142    
patch_outcoming_rpc = "MenuSelect"            143    
patch_outcoming_rpc = "MenuQuit"              144    
patch_outcoming_rpc = "Spawn"                 150    
patch_outcoming_rpc = "Death"                 151    
patch_outcoming_rpc = "NPCJoin"               152    

##### Входящие пакеты #####
patch_incoming_packet = "Authentication"          12     
patch_incoming_packet = "ConnectionAccepted"      34     
patch_incoming_packet = "ConnectionAttemptFailed" 29     
patch_incoming_packet = "InvalidPassword"         37     
patch_incoming_packet = "ConnectionLost"          33     
patch_incoming_packet = "ConnectionClosed"        32     
patch_incoming_packet = "NoFreeConnections"       31     
patch_incoming_packet = "ConnectionBanned"        35     
patch_incoming_packet = "UnoccupiedData"          110    
patch_incoming_packet = "MarkersData"             111    
patch_incoming_packet = "WeaponData"              112    
patch_incoming_packet = "TrailerData"             114    
patch_incoming_packet = "PassengerData"           115    
patch_incoming_packet = "PlayerData"              116    
patch_incoming_packet = "AimData"                 117    
patch_incoming_packet = "VehicleData"             118    

##### Исходящие пакеты #####
patch_outcoming_packet = "Authentication" 12     
patch_outcoming_packet = "UnoccupiedData" 110    
patch_outcoming_packet = "MarkersData"    111    
patch_outcoming_packet = "WeaponData"     112    
patch_outcoming_packet = "SpectatingData" 113    
patch_outcoming_packet = "TrailerData"    114    
patch_outcoming_packet = "PassengerData"  115    
patch_outcoming_packet = "PlayerData"     116   
patch_outcoming_packet = "AimData"        117    
patch_outcoming_packet = "VehicleData"    118   

 

Edited by odosenok

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Артем Гудков
      By Артем Гудков
      Запускаю сервер, выходит такая ошибка. Мод сервера black russia, по названию ошибки понял что сервер надо запускать на debian или что-то типо этой