Jump to content
Sign in to follow this  
Lobanak

1.92beta helps against cheating

Recommended Posts

As BIS has added a very nice option to the server config (equalModRequired=1) in the new 1.92beta patch, the server owners now can better check if someone is cheating.

I hope all serious server owners implement that feature into their server config.

As discussed in this thread, here is a small description how it works:

Quote[/b] ]Suma: There is also one new option for server.cfg file. If you will write equalModRequired=1 there, users which are normally shown "modified data" because of differnt mod cannot connect at all. This is especially usefull for server using "complete modifications".

The following examples are based on use of the new config option:

Examples:

1. server started with 'server-1.92beta -config=sample.cfg'

a) client started with ''FLASHPOINT192BETA.EXE' => connect possible

b) client started with 'FLASHPOINT192BETA.EXE -mod=finmod' => no connect possible

2. server started with 'server-1.92beta -config=sample.cfg -mod=finmod'

a) client started normal => no connect possible

b) client started with 'FLASHPOINT192BETA.EXE -mod=finmod' => connect possible

So this shows you, that you can use this for preventing cheating if you use it. Why?

If you use 'equalModRequired=1' in your server config, noone can put modified files in another folder (with -mod=folder) to override the original files. They must be in the original OFP-Addon-Folders, and normally all files in there are checked with the 'checkfile[]' in the server config.

The same is with Mods in '-mod=folder', you now can check them with 'checkfile[]' in the server config and noone can modify the files.

But now, there should be some rules which are used by all server owners (like the naming convention for missions), so that all people have the same installation place of Addons and Mods for easier connection to all servers. If all choose another method or place for some Addons / Mods, nobody is able to connect to all servers (only to the servers who have the same installation type or the servers which have not enabled the option).

I hope this is ok for all serious server owners and for all who are against cheating.

As '-mod=' is thought only for real Mods (like FDF), it should only be used for Mods and not for normal Addons.

So my suggestion for the rules are:

1. all Mods with all their files in the '-mod=..' folder (and the needed subfolders)

2. all other addons, which are not part of a Mod, in Addons or Res\Addons

The real place for the Addon should be told in the readme file, or, much better, use 'AT EASE' (like wanted by BIS) for distribution of your Addons and so the place is fixed.

For all older Addons which are not distributed with 'AT EASE', we must find a solution where to put, or look in the readme files, what they say. And these Addons should not be installed in other places.

Some suggestions (Addons / Mods I have installed):

-------------------------------------------------

hint: OFP is your OFP install folder

Finnish Defence Forces: OFP\finmod (-mod=finmod)

Ballistic Addons Studio: OFP\bas (-mod=bas)

Invasion 1944 Demo: OFP\i44demo (-mod=i44demo)

SEB Nam Pack2 : Like told in the readme file or if possible in OFP\sebnam (-mod=sebnam)

Kegetys Winter Nogojev 1.1: OFP\Addons

Kegetys Russian Weapons Pack 1.1: OFP\Addons

Kegetys Editor Addon 1.11: OFP\Addons

I think this will be very good and there could be a website later where all Mods and Addons are listed in a database to look where the addon should be to have no problem on different servers.

Hope some think the same.

Greets

[CiA]Lobanak

Share this post


Link to post
Share on other sites

The problem though is some people use the mod folders to run different sets of addons for different addon servers.

I have a -mod Karrillion and a -mod fraghaus mod folders because they both use different addon packs. It makes it a lot easier making missions for the two because I can just load up the mod folder and not have to worry if the addon is on the server or not.

Share this post


Link to post
Share on other sites

outstanding work BIS!

yea i support lobanak, i think its the best way!

Share this post


Link to post
Share on other sites

I am still confused about how someone could cheat using a mod folder. So if the server checks res/addons/g36a.pbo and it is there and normal and i have a cheat g36a.pbo in mods/g36a.pbo, you mean the server will check the right file yet the game will use the modified g36. Won't this cause a problem if there are two g36's the game is trying to use. If the normal g36 is not there then check files will catch it.

On another note. I would not put any addons in your ofp/AddOns folder or your ofp/res/AddOns folder as this causes false messages for many people for reasons still yet unknown.

Share this post


Link to post
Share on other sites
I am still confused about how someone could cheat using a mod folder. So if the server checks res/addons/g36a.pbo and it is there and normal and i have a cheat g36a.pbo in mods/g36a.pbo, you mean the server will check the right file yet the game will use the modified g36. Won't this cause a problem if there are two g36's the game is trying to use. If the normal g36 is not there then check files will catch it.

yep, this is the point. And this is why I wanted some other tools against cheating which works outside of ofp.

If the server owners use my ideas sometime, you must use this on client side also, else you are not able to connect. This thread is more for server owners then for players.

Quote[/b] ]I have a -mod Karrillion and a -mod fraghaus mod folders because they both use different addon packs. It makes it a lot easier making missions for the two because I can just load up the mod folder and not have to worry if the addon is on the server or not.

Why not script a small batch file which copies the needed addons to the right folder and deletes the not needed addons before?

Greets

[CiA]Lobanak

Share this post


Link to post
Share on other sites

I don't think it can handle it when you have two versions of the same addon, with the same name for both. This happens more often than you think when you play on more than one server sad_o.gif

Share this post


Link to post
Share on other sites

I am still not convinced that the mod addon will override the regular addon but then again i have not taken the time to test it.

I think ofpwatch addon manager on server side is the way i will go. Need to spend more time learning the ins and outs of this.

Whats to stop me from just throwing a cheat addon in one of the mod folders that the server allows. We need an outside program still.

Share this post


Link to post
Share on other sites
I am still not convinced that the mod addon will override the regular addon but then again i have not taken the time to test it.

It works. We have done enough testing before we started the anti-cheating project and this is why we have thought about external tools. But it looks like nobody wanna help with coding, so this is the best way to stop cheating. It's built in and you don't need other tools.

Also the Auto-Addon Server is not available for Linux, it's not usefull at the moment and also I don't know how it works. I don't know if it is usable against cheating.

Greets

[CiA]Lobanak

P.S.: as always people say something about things which can be done against cheating, I think nobody wanna do something against cheats. Or it looks like these people use cheats and don't want the things, which detects that they are using cheats.

P.S.2: If you don't want to use such things, don't write against them. All who wanna use them, will use them and so you are not able to connect if you don't wanna use them

I'm getting sick of people who always cry for solution against cheating but always say something against solutions which are possible.

Share this post


Link to post
Share on other sites
Quote[/b] ]I have a -mod Karrillion and a -mod fraghaus mod folders because they both use different addon packs. It makes it a lot easier making missions for the two because I can just load up the mod folder and not have to worry if the addon is on the server or not.

Why not script a small batch file which copies the needed addons to the right folder and deletes the not needed addons before?

[CiA]Lobanak

Do you have any instructions to do this? smile_o.gif

Share this post


Link to post
Share on other sites
P.S.2: If you don't want to use such things, don't write against them. All who wanna use them, will use them and so you are not able to connect if you don't wanna use them

I'm getting sick of people who always cry for solution against cheating but always say something against solutions which are possible.

Asking questions and trying to understand how something works is not writing against it. To suggest that others may want to cheat or are against anti cheat because they ask questions in here is out of line. In order for a server admin to implement something they must understand it.

We also have to take into consideration how easy it will be for clients to connect. You can't expect the average ofp player to read rheems of posts and spend hours to connect to a server.

Share this post


Link to post
Share on other sites
We also have to take into consideration how easy it will be for clients to connect. You can't expect the average ofp player to read rheems of posts and spend hours to connect to a server.

That's my concern too. I like to organize my addons with modfolders and so do my players. I will not be using this modfolder restriction in the near future, as it would require to overwrite game files or at least install inofficial addons into the original folders. But it is good to have the option available to servers, eg for clan matches.

Share this post


Link to post
Share on other sites

there is one problem, you take an addon, the server has it in ofp/addons, you have the same addon in ofp/res/addons and then you're screwed, you would need to match every server out there that ran this, and thats next to impossible

Some servers might have a file in the res/addons another will have it in the addons folder so users will end up doubling up, some thing they wont do or may not know how to

Share this post


Link to post
Share on other sites

These are all theroretical thoughts but now lets try to make some tool and test it!

I learned coding 2 years ago, but only VB, Delphi and

C++ early stages...

But it would making me proud helping to invent an anti cheat system.

I tried that ingame with the help of scripts, but its not the real thing... We have to make more powerful things.

So Lobanak or anyone else of this Project

if you need help, I'll be there with my little knowledge

(better than nothing)

ICQ 139152475

sicilian@web.de

Share this post


Link to post
Share on other sites
there is one problem, you take an addon, the server has it in ofp/addons, you have the same addon in ofp/res/addons and then you're screwed, you would need to match every server out there that ran this, and thats next to impossible

Some servers might have a file in the res/addons another will have it in the addons folder so users will end up doubling up, some thing they wont do or may not know how to

Read the first post in this thread. That's what I wanted to do. Create some rules for the addons, which are used on every server.

We also can handle this in another way and say we create an '-mod=...' folder for every server where the addons are in. So no non-BIS addons are in the normal OFP\Addons or OFP\Res\Addons folder.

But the real Mods should reside in the right directory (ex. '-mod=finmod')

So we use '-mod=ciaserver' (directory OFP\ciaserver\..) for our server of 'Comrades in Arms' and so on for every server.

But then there is again the problem with overriding original BIS files with modified files.

Greets

[CiA]Lobanak

P.S.: and the comment about crying for and against cheating is not against some people who have posted here. It was generally said.

Share this post


Link to post
Share on other sites
So we use '-mod=ciaserver' (directory OFP\ciaserver\..) for our server of 'Comrades in Arms' and so on for every server.

But then there is again the problem with overriding original BIS files with modified files.

But i can change the original bis files anyway...

So the server would have to use checkfiles[] to check for those. So you could always copy all relevant files (the ones you check against modification) on your server into the modfolder and check for those too. Not sure what the result is when there is no such file on the client side (modfolder\res\bin\config.bin for example). If this doesn't work, then the only option i can think of right now would be to disallow modfolders and play without any inofficial addon and or only with addons that replace original files (which you check for with checkfiles[]).

How do you handle client-side mods in your specification? Things like dynamic range or other soundpacks, hisky, hi-texture islands? Things that the server doesn't (need not) have and that some players use and others don't?

Share this post


Link to post
Share on other sites
Not sure what the result is when there is no such file on the client side (modfolder\res\bin\config.bin for example).

If the file checked exists on one side (eg. server) and not on the other (eg. client), it is reported as "modified".

Quote[/b] ]How do you handle client-side mods in your specification? Things like dynamic range or other soundpacks, hisky, hi-texture islands? Things that the server doesn't (need not) have and that some players use and others don't?

I think that if you want to be cheat-proof, you need to make sure that your clients (and the server) are using it either all, or none of them. Otherwise the cheating window is opened wide for anyone to enter.

Mod equality check can be used to enforce it.

Share this post


Link to post
Share on other sites
Not sure what the result is when there is no such file on the client side (modfolder\res\bin\config.bin for example).

If the file checked exists on one side (eg. server) and not on the other (eg. client), it is reported as "modified".

So if i understand this right you can only be sure when you disallow modfolders?!? Or would it be possible to NOT copy the bis files into the modfolder on the server but check for them anyway to detect if they are present on the client? So if one of those files is present it is reported as modified? Or in other words: if i check for a file that is not present on the server and also not present on the client, does it report modified files or no error? If the first is the case then i see no way of being safe when allowing modfolders, if the last is the case then you could at least allow modfolders. I'm at home now, so i guess i could try on my server... will do that later smile_o.gif

Quote[/b] ]How do you handle client-side mods in your specification? Things like dynamic range or other soundpacks, hisky, hi-texture islands? Things that the server doesn't (need not) have and that some players use and others don't?

I think that if you want to be cheat-proof, you need to make sure that your clients (and the server) are using it either all, or none of them. Otherwise the cheating window is opened wide for anyone to enter.

Mod equality check can be used to enforce it.

And of course you always have the option to disallow all modfolders for eg league games.

I will talk with my players about that, but i think this will be troublesome when you want to play on more than one server, when they use different versions of the same addon for example. And to reduce file checking overhead most servers will only allow one modfolder i guess, like -mod=ciaserver, so users will have to install duplicate addons into several folders. But i don't think that this would be a big problem.

Suma: what exactly does equalModRequired=1 do? Check for the modfolder loaded at the command line? Or does it do more? For example: Check if the there are the same number of files in those folders and that the names on client and server are equal? Check if those files have the same CRC on client and server? Or do i have to check for all those files with checkfiles[]? Is checkfiles reliable now? There have problems where files that were correct were reported as modified repeatedly sad_o.gif Because without a reliable checkfiles function the whole "restricting mod folders" issue is kind of pointless sad_o.gif

Share this post


Link to post
Share on other sites

I think the -equalmodrequired switch is meant for total conversion mods which are no longer compatible with original OFP main config, like the FDF Mod. Previously this caused inconsistencies with as some players tried to connect servers which ran unmodified v1.91 OFP while using the FDF Mod loaded with the -mod=finmod switch. This caused the normal OFP server to crash as FDF Mod config was incosistent with unmodified v1.91 config. Now this no longer happens as 1.92 restricts access from players not running the (total conversion) mod.

Share this post


Link to post
Share on other sites

But it has great use in cheat detection too. Without this you can just modify addons and load them via modfolder, making them undetectable. Now as a server admin you can prevent players from loading modfolders.

I just checked on my server: checking for a file that is not present on server and client does not generate a warning. So one can allow modfolders (or at least one) and check for all relelvant bis files in that folder. If none is present no warning will appear, if one is present a warning will appear. This is great news for people wanting to use and modfolder and do filechecking smile_o.gif

Share this post


Link to post
Share on other sites
Suma: what exactly does equalModRequired=1 do? Check for the modfolder loaded at the command line? Or does it do more? For example: Check if the there are the same number of files in those folders and that the names on client and server are equal? Check if those files have the same CRC on client and server? Or do i have to check for all those files with checkfiles[]? Is checkfiles reliable now? There have problems where files that were correct were reported as modified repeatedly sad_o.gif  Because without a reliable checkfiles function the whole "restricting mod folders" issue is kind of pointless  sad_o.gif

Indeed, exactly what does the "equalModRequired=1" mean? Does it mean that

<ul>

[1] server and client must have the exact same set of mod folders, i.e the equality check regards the name and number of mod folders, regardless of their content.  Or...

[2] client can have a superset of the mod folders the server is using? (E.g: server has finmod, client has finmod;i44demo)

[3] they have the set of mod folders, like [1] Also, server and client implicitly checksums (i.e. without the use of checkFiles[]) the contents of said mod folders to make sure that not only do they have the same mods activated, but their contents are also equal?

[4] Client has a superset of mod folders [2], checksums are done only on the contents of the mod folders the server requires, like [3]?

If its like case 1 above, equalModRequired would be a sort of simple heuristics to do what Blake described, i.e. to do a quick check to see that the client has certain (possibly total conversion) mods activated.

Question: assume I have both the FDF mod (base folder: finmod) and the I44 demo (i44demo) installed. For kicks, I rename the former to the latter and vice versa. Now I fix my shortcut to read ...-mod=finmod and try to connect to a server that also has ...-mod=finmod and equalModRequired=1. (No checkfiles[]=...)

What happens? Will I be accepted (equalModRequred simply checks the name of the mod folder) or rejected (some file checking done, my finmod (containing the i44 demo files) is nothing like the servers finmod)

Share this post


Link to post
Share on other sites
<ul>[1] server and client must have the exact same set of mod folders, i.e the equality check regards the name and number of mod folders, regardless of their content. Or...

[2] client can have a superset of the mod folders the server is using? (E.g: server has finmod, client has finmod;i44demo)

[3] they have the set of mod folders, like [1] Also, server and client implicitly checksums (i.e. without the use of checkFiles[]) the contents of said mod folders to make sure that not only do they have the same mods activated, but their contents are also equal?

[4] Client has a superset of mod folders [2], checksums are done only on the contents of the mod folders the server requires, like [3]?

- [1] true, connect possible

- [2] false, no connect possible

- [3] no, it only checks for equal -mod usage, checkfile[] must be set up in config for each folder

- [4] no, like [2] and [3]

Quote[/b] ]If its like case 1 above, equalModRequired would be a sort of simple heuristics to do what Blake described, i.e. to do a quick check to see that the client has certain (possibly total conversion) mods activated.

Question: assume I have both the FDF mod (base folder: finmod) and the I44 demo (i44demo) installed. For kicks, I rename the former to the latter and vice versa. Now I fix my shortcut to read ...-mod=finmod and try to connect to a server that also has ...-mod=finmod and equalModRequired=1. (No checkfiles[]=...)

What happens? Will I be accepted (equalModRequred simply checks the name of the mod folder) or rejected (some file checking done, my finmod (containing the i44 demo files) is nothing like the servers finmod)

I think it only checks the name of the mod folder.

Use of other files in the -mod=.. folder then original Mod-files must be checked. Don't know what happen. I try later and tell you what was the result.

Greets

[CiA]Lobanak

Share this post


Link to post
Share on other sites
Use of other files in the -mod=.. folder then original Mod-files must be checked. Don't know what happen. I try later and tell you what was the result.

I already tried that. If the files are the same then there is no modified warning, if they are not the same then a modified warning appears. This even works when the files are only present at one side or at no side at all.

So best would be to check again in the modfolder(s) for all the original files you check for.

Example: you use a modfolder called "mods" on your server. You check for res\dta\data.pbo. A user could always put a modified data.pbo into the mods\dta folder. Therefor you should also check for mods\dta\data.pbo (which must NOT exist on your server in the "mods\dta" folder). If the player has no mods\dta\data.pbo nothing happens, as the server has no mods\dta\data.pbo either and that means both files are the same. If the player HAS a mods\dta\data.pbo a modified warning if given.

If you actually put a data.pbo into the mods\dta folder of your server then every player with a modified data.pbo in mods\dta would get a modified warning, but every player with no mods\dta\data.pbo at all would get a warning too.

The only problem is that you have to know in advance what to check for. Afaik there is no "check for any files the client uses which are not on the server" facility sad_o.gif But as only "official files" and addons that are on the server get used at all this should be no problem. Just check again for everything you check in the official folders in every modfolder you use on the server...

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  

×