ValveSoftware / halflife

Half-Life 1 engine based games
Other
3.59k stars 599 forks source link

[CS1.6] Prevent DLL Injection #2830

Open renderer5819 opened 4 years ago

renderer5819 commented 4 years ago

Hello. Is it possible to prevent DLL Injection in the hl.exe process so that hacks don't work? The nonsteam version CS Warzone somehow accomplishes this as I've tried testing hacks on it. I used to think that the hacks just didn't work and were a scam. But today I tried one of the hacks I found on an alternate steam account that I had, and bam, to my surprise, it was working. There are a lot of hackers these days since CS 1.6 is old. I know admins are a solution but its been getting hard for the community as CS is dying as well plus they can't stay on the server forever. I hope this issue gets priority. (I've added CS 1.6 in title but I guess every gold source game needs this)

BlackShadow commented 4 years ago

You cannot prevent DLL injection. DLL Injectors inject dlls to memory and those dlls edit the float values in memory. (Such as aimbot) Hacks are pretty much Memory Editors changes the values of the game. So no there's no way to prevent DLL injection since they directly access memory itself. But you can hide those values from Injectors by making some values on server sided. Goldsource and Source games does that. Health and ammo values stored in server side. However speed, player position, aim x,y yaws, camera angles stored in client. And i don't think you can store those values in server side. It will create massive input lag.

JulianHeuser commented 4 years ago

iirc VAC is meant to tackle this sort of stuff, so this issue isn't really related to the game, it's more related to VAC. I'd close it since I don't see the need for a solution in-game, and such a solution would likely require massive engine reworks that's hardly worth the time and effort.

Zetz512 commented 4 years ago

only can do is add a command to get all modules loaded from client with size (kb), version (if possible) or other kind information from serverside