Crow, did someone attack the server? 11:15 AM est

Post Reply
User avatar
S_hift
Posts: 1963
Joined: Fri Dec 23, 2011 1:42 pm

Crow, did someone attack the server? 11:15 AM est

Post by S_hift »

I was playing in the main server this morning and something weird happened...

Mind you I'm running software mode, so I'm used to the occasional crash. Anyway there was no lag everything was running fine and then bam lock up. This was right after a player "Filthy_Monkey" had just rage quit cause I was trashing their base kinda hard.

anyway I re-spawned and started heading back to their base to keep them out of their own gen room. Just as I passed the middle objective the screen locks up and everything locked up. No red disconnect in the top right corner...

(one thing I noticed about each attempt was the sound from tribes cut out usually the last sound you hear loops)
I tried to alt tab out and nothing.
I tried to ctrl alt del and nothing
I even tried hitting the power button to force a log out and that didn't work (which actually works most of the time if your tribes has locked up).

so I reset my pc and upon loading up the server list the main server wasn't pinging. Meaning I was either banned or the server had strait up shat itself. So I went to check if I was banned. I opened cmd and did a ping on the server and suddenly it started pinging so I went back to tribes and checked and it was up again.

No one was in it this time and the map switched to the map it always starts off with. Usually when a server resets or even crashes it shows the red disconnected icon in the top right corner. This didn't seem to be a case with the weather because I remember during the last snow storm we had it was kind of choppy and there were a few disconnects.

This appears to be a vulnerability exploit and someone is using it.

Crow, if there is anything you know about this please hit me up at my inbox. This is a potential attack on not just the server, but also the users as well.
Image <--Click here to subscribe to S_hift's youtube
Click here for full access to all my tribes downloads
AnniDv6
Posts: 1031
Joined: Mon Dec 12, 2011 3:25 pm

Re: Crow, did someone attack the server? 11:15 AM est

Post by AnniDv6 »

Sounds odd. Just confirming I didn't do anything with the server ftp today.
User avatar
'][']-[RiLL3R
Posts: 391
Joined: Sun Jan 22, 2012 12:18 am

Re: Crow, did someone attack the server? 11:15 AM est

Post by '][']-[RiLL3R »

Same problem I was having awhile ago that I told you about, S_hift.
"Find a Job You Love and You'll Never Work a Day in Your Life"
Image
perrinoia
Site Admin
Posts: 3732
Joined: Sun Jul 01, 2012 7:18 pm

Re: Crow, did someone attack the server? 11:15 AM est

Post by perrinoia »

Tribes locks up as you described when a vehicle collides with an object that can be damaged.
It used to lock up every time a vehicle rammed anything, back when CPU speeds were measured in Mhz instead of Ghz.
Now, computers are capable of processing the collisions thousands of times faster, and lock ups happen less frequently.

Instead of every collision between a vehicle and 1 obstacle, it takes a collision between a vehicle and a shit ton of deployables, all stacked together.

For instance, when someone covers a couple of turrets with a metric ton of deployable barriers, and a vehicle rams that stack of deployables, Tribes.exe makes this face: :hscratch:
And then the players make these faces: :fpalm: :fpalm: :fpalm: :fpalm: :trolol: :fpalm: :fpalm: :fpalm: :fpalm: :fpalm:

Kigen's solution was to disable OS Missiles, which was remarkably successful, albeit undesirable.

Code: Select all

PopulateItemMax(OSLauncher);
PopulateItemMax(OSAmmo);
Plasmatic's solution was a script that periodically looked in front of vehicles for potential collisions, and destroyed the vehicle to avoid the collision, but his function ignored droids, OS missles, slow moving vehicles, and the fact that any one of those things can strafe.

Code: Select all

// a lil something to check for collisions with nasty crashy stuff... -plasmatic 2.2
// this tests for collisions with statics - Blastwalls, platforms, etc..
function vehicle::ImpactCheck(%this)
{
	if(GameBase::getDamageState(%this) == Destroyed) 
		return;	
//	%name = GameBase::getDataName(%this);	
	%type = getObjectType(%this);
	%control = GameBase::getControlClient(%this);
	if(%control != -1 && %type == Flier)
	{	
		%vel = Item::getVelocity(%this);
		%velocity = vector::getdistance(%vel,"0 0 0");
		if(!%control.nospeedo)
			bottomprint(%control,"<jc> Velocity = "@%velocity>>0.1@" mph",2); //yeah that's right, I went there. -Plasmatic
		%data = GameBase::getDataName(%this);
		%shape = %data.shapeFile;
		if(%shape != camera && %shape != rocket)
		{
			if(%velocity > 0.75)
			{		
				
				%check = 5 + %velocity/5;	
				if(GameBase::getLOSInfo(%this,%check,"0.15 0 0"))	//look up a lil...
				{
					%object = getObjectType($Los::Object);
						// GetLOSInfo sets the following globals:
						// 	los::position
						// 	los::normal
						// 	los::object		
					if(%object == StaticShape)
					{
						//	if(%control != -1)
						//		bottomprint(%control,"<jc>IMPACT?! "@%object@" Velocity = "@%velocity,5);		
						echo(%this@" "@%shape@" "@%control@" IMPACT?! "@%object@" killing vehicle -error");
						GameBase::setDamageLevel(%this,2);	
					}
				}
				//echo("check vehicle impact. vel ="@%velocity@" check= "@%check);
			}
			
		}
	}
	schedule("vehicle::ImpactCheck("@%this@");",0.1);	
}
I've rewritten Plasmatic's function, so it looks where the vehicle is moving, instead of where the vehicle is facing, and checks regardless of the vehicle shapefile and speed.
However, my function isn't perfect, either, because there's still a chance that the vehicle's wing could clip a stack of deployables, since the function only checks a straight line from the center of the vehicle in whichever direction the vehicle is moving.

Code: Select all

function Vehicle::ImpactCheck(%this)
{
	%where = Item::getVelocity(%this);
	%speed = Vector::getDistance("0 0 0", %where);
	%pilot = GameBase::getControlClient(%this);
	if(!%pilot.nospeedo)
		bottomprint(%pilot, "<jc>Velocity: "@ %speed >> 0.1 @" MPH", 2);

	deleteVariables("LOS::*");
	if(GameBase::getLOSInfo(%this, %speed, Vector::getRotation(Vector::sub(%where, Vector::getFromRot(GameBase::getRotation(%this), %speed, 0)))))
	{
		if(-1 < String::findSubStr("Flier Moveable Player Sensor StaticShape Turret", getObjectType($LOS::Object)))
		{
			GameBase::setDamageLevel(%this, (GameBase::getDataName($LOS::Object).maxDamage - GameBase::getDamageLevel($LOS::Object)) * %speed);
			GameBase::setDamageLevel($LOS::Object, (GameBase::getDataName(%this).maxDamage - GameBase::getDamageLevel(%this)) * %speed);
		}
	}
	schedule(sprintf("if(isObject(%1) && GameBase::getDamageState(%1) != Destroyed) AutomaticCollisionAvoidanceSystem(%1);", %this), 0.01);
}
Image
Post Reply