Server Help

General Questions - Catid's Biller - Rejecting Apple MAC devices

CypherJF - Sat Apr 05, 2014 6:24 pm
Post subject: Catid's Biller - Rejecting Apple MAC devices
Been seeing several of these appear in Omega Fire, the players are saying they're using a mac (apple) laptop. Anyone who is active here have any suggestions?

0:Omega Fire: <USER> connecting with a hacked client. (Invalid MachineID)(1)
Cheese - Sat Apr 05, 2014 9:35 pm
Post subject:
macid comes from network card

mac users run ss using wine

wine tells ss macid is 0
CypherJF - Sun Apr 06, 2014 12:52 am
Post subject:
Cheese wrote:
macid comes from network card

mac users run ss using wine

wine tells ss macid is 0


Unfortunate given the fact that most network cards or adapters have a macid associated to it.
fatrolls - Sun Apr 06, 2014 4:52 am
Post subject:
MacId is not MachineID lol, I added a fix patch for Linux version of SSBilling2 in the attachment all the way below

Mac ID is the network address that you can find on wireless signals.

But MachineID is actually the harddrive's serial number also called VolumeID

Ya Wine users don't accses the harddrive's serial number I think that's coded for windows only but it still allows you to change the MachineID to whatever value you want and anything less then 0X7FFFFFFF should work if it's not 0.
I think it sets it to 0 by default in Wine not sure though.

It can be from 0 to 0xFFFFFFFF in value I think it's also used signed and negative numbers and 0 as well are rejected.

I think 0X80000000 to 0xFFFFFFFF are rejected not sure.

They also got programs for changing it on windows such as http://technet.microsoft.com/en-us/sysinternals/bb897436.aspx

To see your MachineID in command prompt just type vol and it will show you it.

In your zone type to yourself in pm /*info and you'll see your macid is different then the one you see in vol command prompt command.

But simply just take the value such as

Volume Serial Number is 1234-ABCD

I made a fake one one up (don't want to reveal my macid).

Now merge it together like so.
1234ABCD
then add a 0x in front like so
0x1234ABCD
now google
0x1234ABCD to decimal

You'll see it matches exactly to *info command

FIX BELOW

open declares.h file in SS-Biller2

you'll find this

Code: Show/Hide

bool InvalidMachineID(long MachineID)
{
   if (MachineID == 101) return false;

   if (MachineID < 0) return true;

   if (MachineID < 2000) return true;

   return false;
}


101 is hardcoded to be a valid macid.
anything less then 0 (negative numbers) are invalid.
anything less then 2000 (lol) are invalid.
pretty much it's all luck/hardcoded based system.

0 seems invalid machineId too (less then 2000).

replace it all with return false;

no more invalid machine id's

you'll find in rpc.h file

Code: Show/Hide

            s += " connecting with a hacked client. (Invalid MachineID)(";
            s += GetLong(Packet->Message, 74);
            s += ")";


which uses
Code: Show/Hide

if (InvalidMachineID(GetLong(Packet->Message, 74)))


aka that luck based stupid function, if it return true.

Then it does this Pretty much logs in user as ^Banned followed by kicking that user after 10 seconds. Also seems to add him to a ban list so he is pretty much fucked.
Code: Show/Hide

user->Kick(10000, 0, 0);


Code: Show/Hide

MakePlayerResponse(buffer,                  // Destination buffer
                           PRMEANING_ENTER,               // Meaning
                           GetLong(Packet->Message, 70),   // PlayerID
                           "^Banned",                  // Player name
                           NULL,                     // Squad name
                           NULL,                     // Banner
                           0,                        // Total Seconds
                           0,                        // Creation Year
                           0,                        // Creation Month
                           0,                        // Creation Day
                           0,                        // Creation Hour
                           0,                        // Creation Minute
                           0,                        // Creation Second
                           0,                        // Score ID
                           0,                        // Wins
                           0,                        // Losses
                           0,                        // Goal count
                           0,                        // Points
                           0,                        // Event points
                           0,                        // Extra 1
                           0);                        // Extra 2

            // Send response
            Packet->Source->Send(buffer, 192, true);

CypherJF - Sun Apr 06, 2014 10:52 am
Post subject:
Thanks for the analysis, I know I got the terms mixed up but I pretty much saw the same. I wasn't sure if there was a "better" answer than allowing all machine id's thru. Guess that's the only option at this point.
fatrolls - Sun Apr 06, 2014 9:10 pm
Post subject:
anyways this ssbilling2-linux needs to be re-ported again its horrible it doesn't save or anything. just allows you to login.
Doc Flabby - Mon Apr 07, 2014 2:11 pm
Post subject:
Yeah the original biller wasn't very good...the port I wrote didn't make it any better biggrin.gif
Doc Flabby - Mon Apr 07, 2014 2:12 pm
Post subject:
Yeah the original biller wasn't very good...the port I wrote didn't make it any better biggrin.gif
fatrolls - Mon Apr 07, 2014 6:32 pm
Post subject:
Updated attachment 2 posts above with precompiled binary for CentOS Linux maybe other Linux's too, this one Saves players and has EncryptMode enabling possible.
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group