Silenci0 / SMAC

Sourcemod Anti-Cheat
Other
152 stars 53 forks source link

L4D2 smac wallhack #3

Closed lunatixxx closed 5 years ago

lunatixxx commented 5 years ago

Anti wallhack and anti speedhack mess the code of the game on my server with 60 tickrate in Left 4 Dead 2. While they are stopping some cheaters from what i have see, there is still an important bug happening when you play survivors. In VS or scavenge sometimes you will be able to see special infecteds for a very short amount of time (1 second) while they are still in ghosts, you see the model of the monster like if he had spawned and then he disappear again. There is also other kinds of small bugs like the smoker tongue than pierce visually walls. 100% sure it's these two plugins as i tested everything one by one.

lunatixxx commented 5 years ago

Will it be possible to modify these plugins to stop blocking wallhacks and speedhacks in real time, but to still detect if someone cheat and to alert admin ? That will definitely fix this bug.

Silenci0 commented 5 years ago

Sorry for the late reply. You can modify it if you want as it is most likely possible to have it simply detect players that might be wallhacking or speedhacking by having it only looking at calculations rather than trying to take action. If I have time, I can attempt to make this change, but it will take some time and there is no guarantee that it will get done in time.

Also, keep in mind that the wallhack module has some known graphical issues in some games and for L4D1 and 2 it only works on survivors (as far as I know, at least according to the original maintainer's wiki). Some bugs are most likely the work of the module itself.

As for the speedhack module, be aware that client-side lag can have an affect on it. The plugin bases most of its calculations on the server's tickrate * 2 and if it looks like the player is going "faster" than the server via ticks, it will attempt to prevent the speedhack by slowing them down and reporting the person suspected of speedhacking. This can also be changed, but the reason it attempts to slow players down rather than banning them is due to that false positive, so there is a good chance that it could detect a player "speedhacking" when they are really just experiencing heavy client-side lag for whatever reason.

lunatixxx commented 5 years ago

Thanks for the answer, i'm not a coder so i will not try to modify it by myself. Something else not related but the eye test plugin had a bunch of false positives when you play as special infected sometimes, don't know the reason.

Silenci0 commented 5 years ago

That might have something to do with the changing view angles that occurs when some animations occur that take you from first person to 3rd person, if I were to guess.

Other games have issues with the eye_test module, though for different reasons, but one of them, TF2, sometimes had issues with this module due to certain taunts like the conga taunt, so it would not surprise me if certain special infected actions cause false positives with the module. I will make a note of that as well since there a number of issues that the eye_test module has with other source games.

lunatixxx commented 5 years ago

After more test this bug only happens with SMAC anti wallhack. The anti speedhack works fine, so i edited the title of the issue.

By the way i discovered a new bug caused by SMAC anti wallhack, once it is activated on the server in Left 4 Dead 2 it break the facials animations of survivors. Why it does that ?

Silenci0 commented 5 years ago

Ah okay. I was attempting to replicate the issue you mentioned regarding the speedhack module with no success, but thank you for the update. I'm glad to hear that the plugin is working for you.

As far as the wallhack module, the reason that the anti-wallhack does that is due to how it detects and prevents wallhacks. While this module may work for some games, not all games react in the same way to this module and, due to the general purpose nature of the module (ie: it can be used in almost any Source game), some games end up having various issues, such as graphical glitches, as a result of the using the module. Unfortunately, based on various forum posts regarding this module and L4D2, it seems that L4D2 is one of those games that the module causes some graphical issues for when attempting to detect/prevent the use of wallhacks and only seems to work well with the survivors, but not the infected.

As an fyi, this module is listed as an optional module on the wiki page (https://github.com/Silenci0/SMAC/wiki) due to several inconsistencies or incompatibilities with certain games, including games like CS:GO. You may wish to disable this module on your server for now for L4D2. I will see if I can fix some of the incompatibilities, but there is a good chance that I may not be able to do so.

Silenci0 commented 5 years ago

Looking into this further, I feel as though the wallhack module of SMAC is very generalized and attempts to catch everything it can for more than one game, which is part of the problem with the module itself on top of being a resource hog and attempting to do a lot of work to prevent/detect wallhacks themselves. I think this module will need to be rewritten and even made into several sub modules. The idea here would simply be as follows:

This is, of course, a more high-concept ideal that sounds good on paper, but I'm sure is a bit more challenging to implement in practice. This is something I would like to see done with the wallhack module so that it is more useful and less of a burden in regards of functionality and resource usage. That said, it would require time and there is simply no guarantee that it can be done, however, I will be looking into it further to see if its even possible or not.

As for this specific ticket/request for the wallhack module, at present, it would be much harder to simply have it notify for hacks being used as it would require a number of code rewrites to separate blocking from notifying. I will attempt to address this in a future update, but I would not count on that happening anytime soon.

Thank you for the report, if you have any other issues in regards to SMAC, feel free to open a new ticket.