Jump to content
Sign in to follow this  
jacob88

ARMA 3 INSLimitedAdmin: Anti-Hacking Addon

Recommended Posts

Greeting map designers and server administrators!

Since release, ARMA 3 has been completely open to hackers, with no provided method of detecting them.

That changes today!

Introducing INSLimitedAdmin a "limited" Antihack detector currently in development but already jam packed with features!

This ServerSide-Addon is a port of my scripted version found here: http://forums.bistudio.com/showthread.php?155354-ARMA-3-INSLimitedAdmin-Anti-Hacking-Script

INSLimitedAdmin By jacob88

- Features

- Detects a "Limited" variety of Hacks

- Locks Hackers games forcing them to ALT+F4

- Writes a record of the players name and UID to server RPT when player connects

- Writes a record of the Hackers name and UID to server RPT when Anti-Hacks are triggered

- Warns other players on the server via hint and chat when Anti-Hacks are triggered

- Server admins can run their own code via serverexe.sqf in INSLimitedAdminSettings folder

-INSLimitedAdmin Detects:

- Banned PBO files (Declared In Settings, Can Be Turned ON/OFF In Settings)

- Banned Variable/Array names (Declared In Settings, Can Be Turned ON/OFF In Settings)

- Use of banned weapon types (Declared In Settings, Can Be Turned ON/OFF In Settings)

- Use of banned vehicle types (Declared In Settings, Can Be Turned ON/OFF In Settings)

- Speed-Hacking (Can Be Turned ON/OFF In Settings)

- Teleporting

Future Features:

- Permanent banning for Hacking

- Global ban database through MYSQL

- Fixing RPT spam

- Admin Console

New features are still on the way, and I hope to post a video of INSLimitedAdmin in action so watch this space!

Installation Instructions:

Requires Community Base Addons A3

http://www.armaholic.com/page.php?id=18767

First install Community Base Addons as per instructions listed on the link above.

Then, extract INSLimitedAdminPack.zip directly into your ARMA 3 server directory.

Next, either create a shortcut to arma3server.exe, or add the following to the target line of your existing shortcut:

-mod=@CBA_A3;@INSLimitedAdmin

Setup Instructions:

Setup options are controlled via the INSLimitedAdminServerSettings.hpp file in

the INSLimitedAdminSettings folder.

Options available are fairly self explanatory.

However, feel free to reply here with questions, thanks.

Success!

Acknowledgements:

- Terox (Allowed me to examine his code for examples)

Version: 1.1

Changelog:

Version 1.1

- Added ability for users to execute own code on server (serverexe.sqf in INSLimitedAdminSettings folder)

- Changed array names to less common ones to prevent errors that were occurring

- Removed some settings

- Removed CBA_A3 clientside error message

Download:

https://mega.co.nz/#!zJBHkJjJ!QQCxBARCCfh4mNkQ1w3bERVVjCJ5bjCaZio_QJUQpqo

Or

Mirror Link

Edited by jacob88
Update 1.1

Share this post


Link to post
Share on other sites

My server just got raped, so I am testing this version out right now :D Let you know how it goes.

Update: Looks Functional ;D

8oYLO

Any idea what's up with the missing mod error? I already have CBA_A3 as instructed

Update: No Error now. Weird but it works :D

Edited by DrMayhemMD

Share this post


Link to post
Share on other sites

Any idea what's up with the missing mod error? I already have CBA_A3 as instructed

Update: No Error now. Weird but it works :D

The error is because the client does not have CBA_A3 installed but the server does.

This will not effect the addon or the server.

I will try find a method of disabling the warning.

Share this post


Link to post
Share on other sites

DL link down?

I am interested in this future "- Global ban database through MYSQL" feature or the Admin console.

Share this post


Link to post
Share on other sites
DL link down?

I am interested in this future "- Global ban database through MYSQL" feature or the Admin console.

Just checked the download link and its working fine.

Share this post


Link to post
Share on other sites

I have just tried it out on another place (coffee shop wlan) with my laptop and it still doesn't work for me...

Maybe some kind of regional lock? I am from germany..

Share this post


Link to post
Share on other sites
I have just tried it out on another place (coffee shop wlan) with my laptop and it still doesn't work for me...

Maybe some kind of regional lock? I am from germany..

I have added a Mirror Link, try now.

Share this post


Link to post
Share on other sites

Dude. This is insanely helpful! Thanks!

Server admins better see this because it seems like a must have!

Great!

Share this post


Link to post
Share on other sites

Getting a weird error. Happens every 5 minutes or so. Started occuring since the addon.

ULlm9

Here's a copy of the lines surrounding the error.

43: //Setup Key Handler
44: waituntil {!(IsNull (findDisplay 46))};
45: (findDisplay 46) displaySetEventHandler ["KeyDown", "_this call onKeyPress"];
46:
47: "currentDate" addPublicVariableEventHandler {[] call timeSync};
48: "messageSystem" addPublicVariableEventHandler {[] call serverMessage};      <----This line
49: "clientMissionMarkers" addPublicVariableEventHandler {[] call updateMissionsMarkers};
50: "clientRadarMarkers" addPublicVariableEventHandler {[] call updateRadarMarkers};
51: "pvar_teamKillList" addPublicVariableEventHandler {[] call updateTeamKiller};
52: "publicVar_teamkillMessage" addPublicVariableEventHandler {if(local(_this select 1)) then {[] spawn teamkillMessage;};};

Edited by DrMayhemMD

Share this post


Link to post
Share on other sites
Getting a weird error. Happens every 5 minutes or so. Started occuring since the addon.

http://goo.gl/ULlm9

Here's a copy of the lines surrounding the error.

43: //Setup Key Handler
44: waituntil {!(IsNull (findDisplay 46))};
45: (findDisplay 46) displaySetEventHandler ["KeyDown", "_this call onKeyPress"];
46:
47: "currentDate" addPublicVariableEventHandler {[] call timeSync};
48: "messageSystem" addPublicVariableEventHandler {[] call serverMessage};      <----This line
49: "clientMissionMarkers" addPublicVariableEventHandler {[] call updateMissionsMarkers};
50: "clientRadarMarkers" addPublicVariableEventHandler {[] call updateRadarMarkers};
51: "pvar_teamKillList" addPublicVariableEventHandler {[] call updateTeamKiller};
52: "publicVar_teamkillMessage" addPublicVariableEventHandler {if(local(_this select 1)) then {[] spawn teamkillMessage;};};

do you have messages in your server.cfg? that error sounds like it is looking for something that isnt there

Share this post


Link to post
Share on other sites

Here's my config to confirm. You you don't see anything wrong either, I want to mention if maybe the antihacks are having an issue with Proving Grounds. Seems like maybe it wants to announce that I'm doing something I shouldn't. Has anyone else got this running with the new Kits, Wasteland w/ includes proving grounds for admins? Let me know if anyone can think of anything.

//
// server.cfg
//
// comments are written with "//" in front of them.


// GLOBAL SETTINGS
hostname = "=GANGSTA's WASTEDman= SNIPER | Anti-Hacks | 1Gbit";				
password = "";						
passwordAdmin = "";				
reportingIP = "arma2oapc.master.gamespy.com";	
logFile = "server_console.log";				

motd[] = {
"Welcome to WASTEDman By GangstaGaming.com  No Global Chat, use sidechat or Teamspeak3: TS.GANGSTAGAMING.COM",
   "This dedicated server is hosted on Google 1GB Fiber out of Kansas City, USA",
   "No hacking, no VON abuse. Violators Will Be AUTOBANNED",
   "Join our website today @ www.GangstaGaming.com for news and other games we host!",
"Join our Steam group http://steamcommunity.com/groups/Gangsta_Gaming",
  	"Enjoy our server? Consider become a staff member of our community! Visit GangstaGaming.com today!",
   "Be Sure to Save our IP: 173.208.235.75 Port:2302 or Search By Name: GANGSTA or WASTEDman",

};
motdInterval = 180;


// JOINING RULES
checkfiles[] = {};					// Outdated.
maxPlayers = 40;					// Maximum amount of players. Civilians and watchers, beholder, bystanders and so on also count as player.
kickDuplicate = 1;					// Each ArmA version has its own ID. If kickDuplicate is set to 1, a player will be kicked when he joins a server where another player with the same ID is playing.
verifySignatures = 2;					// Verifies .pbos against .bisign files. Valid values 0 (disabled), 1 (prefer v2 sigs but accept v1 too) and 2 (only v2 sigs are allowed). 
equalModRequired = 0;					// Outdated. If set to 1, player has to use exactly the same -mod= startup parameter as the server.


// VOTING
voteMissionPlayers = 0;					// Tells the server how many people must connect so that it displays the mission selection screen.
voteThreshold = 50;					// 33% or more players need to vote for something, for example an admin or a new map, to become effective


// INGAME SETTINGS
disableVoN = 0;						// If set to 1, Voice over Net will not be available
vonCodecQuality = 8;					// since 1.62.95417 supports range 1-20 //since 1.63.x will supports range 1-30 //8kHz is 0-10, 16kHz is 11-20, 32kHz is 21-30
persistent = 1;						// If 1, missions still run on even after the last player disconnected.
timeStampFormat = "full";				// Set the timestamp format used on each report line in server-side RPT file. Possible values are "none" (default),"short","full".


// SCRIPTING ISSUES
onUserConnected = "";					//
onUserDisconnected = "";				//
doubleIdDetected = "";					//
regularCheck = "{}";                                  //  Server checks files from time to time by hashing them and comparing the hash to the hash values of the clients. Causes heavy I/O, uncomment to disable feature - READ WARNING ABOVE - makes cheating possible!


// SIGNATURE VERIFICATION
onUnsignedData = "kick (_this select 0)";		// unsigned data detected
onHackedData = "kick (_this select 0)";			// tampering of the signature detected
onDifferentData = "";					// data with a valid signature, but different version than the one present on server detected


// MISSIONS CYCLE (see below)
class Missions 
{
class Wasteland
{
	template="WASTEDman_Arma3.Stratis";
	difficulty="Regular";
};
};

---------- Post added at 21:50 ---------- Previous post was at 21:49 ----------

You know what, after copying and pasting that above, I noticed that the spacing before the messages was off. I belive it was "tab" spaced instead of using "spaces" testing now, will confirm.

---------- Post added at 22:48 ---------- Previous post was at 21:50 ----------

Ok so it's the message for the side or main mission in the Mission File. Anti-Hack is somehow interfering with it. Any ways for me to debug further? I removed the antihack and the errors go away

Edited by DrMayhemMD

Share this post


Link to post
Share on other sites
Ok thx ...

Any chance to not have to use cba ??

The addon has to use CBA_A3 in order to load the script on boot.

I will be on the lookout for other stock methods not requiring CBA_A3.

---------- Post added at 23:28 ---------- Previous post was at 23:22 ----------

Getting a weird error. Happens every 5 minutes or so. Started occuring since the addon.

http://goo.gl/ULlm9

Here's a copy of the lines surrounding the error.

43: //Setup Key Handler
44: waituntil {!(IsNull (findDisplay 46))};
45: (findDisplay 46) displaySetEventHandler ["KeyDown", "_this call onKeyPress"];
46:
47: "currentDate" addPublicVariableEventHandler {[] call timeSync};
48: "messageSystem" addPublicVariableEventHandler {[] call serverMessage};      <----This line
49: "clientMissionMarkers" addPublicVariableEventHandler {[] call updateMissionsMarkers};
50: "clientRadarMarkers" addPublicVariableEventHandler {[] call updateRadarMarkers};
51: "pvar_teamKillList" addPublicVariableEventHandler {[] call updateTeamKiller};
52: "publicVar_teamkillMessage" addPublicVariableEventHandler {if(local(_this select 1)) then {[] spawn teamkillMessage;};};

Ah the immediate error I would notice is that the mission your using, has an array name also used in my addon (serverMessage).

I will solve this later today by switching to more unique array names with my next release.

Share this post


Link to post
Share on other sites

Awesome, I rolled back to your scripted version for now. I narrowed it down to the sidebar message when mission notices load in Wasteland such as "Main Objective in 10 Minutes". I'll be more then happy to test it for you ;D

Share this post


Link to post
Share on other sites

yeah its gonna be hard trying to get people to download cba_a3 i guess thats why the stable version of steam came out lol

Share this post


Link to post
Share on other sites
yeah its gonna be hard trying to get people to download cba_a3 i guess thats why the stable version of steam came out lol

The client does not need to download CBA_A3 only the server needs it.

Share this post


Link to post
Share on other sites

issue with this function. public variable can't be a private variable.

publicVariable ""_playermessage"";

Share this post


Link to post
Share on other sites

Jacob, I'm debating renaming the array myself. If I replace the name in all files of the mod, am I at risk of buggering anything else?

Share this post


Link to post
Share on other sites
Jacob, I'm debating renaming the array myself. If I replace the name in all files of the mod, am I at risk of buggering anything else?

Updated now.

Sorry for the delay, I'm currently trying to run three ARMA related projects on my own.

As for editing the code yourself, your more than welcome to modify the addon scripts for your

own server's use on condition of not rebranding my work as your own.

Share this post


Link to post
Share on other sites

Hello jacob88,

I'm just interesting: does your script can normally work with Arma 2 servers?

Share this post


Link to post
Share on other sites
Hello jacob88,

I'm just interesting: does your script can normally work with Arma 2 servers?

Hi Spayker, unfortunately INSLimitedAdmin uses some commands only found in ARMA 3 and is incompatible with ARMA 2.

However, you are free to edit my addon to suite your individual needs on condition that it is for private use,

is not distributed and I am still given credit for my work.

Hope this helps.

Share this post


Link to post
Share on other sites

Hey Jacob88,

I'm going to send you a message in Private Message. Found a few things for suggestions and bugs.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×