• Anti-Cheat Discussion Thread 2
    418 replies, posted
[QUOTE=sebi99;34212499]what if player stood behind a wall with small hole in it.[/QUOTE] Plug the hole.
[QUOTE=Nexus435;34212662]You just had a huge contradiction in that post. Clientside prediction of bullet spread uses a pseudorandom generated from the seed received in CUserCMD.[/QUOTE] What if you sent the clients a fake spread amount and kept the real one only for the server? Might look screwy, but they shouldn't be able to predict without knowing the proper spread angle.
[QUOTE=Cardcapture1;34216596]What if you sent the clients a fake spread amount and kept the real one only for the server? Might look screwy, but they shouldn't be able to predict without knowing the proper spread angle.[/QUOTE] That should work. In fact, it might even be possible to do with gm_sourcenet3 - all you have to do is replace the seed in CUserCMD with a random number.
[QUOTE=ethile_2;34210726]Still acting like you know what you're talking about.. Children never learn.[/QUOTE] I'm not sure if you are out to get me, or what, but that is exactly how he does it. Try and prove me wrong.
[quote]5/1/2012 - 17:48:54 | SHUSER: N/A | SHVER: N/A | STEAMUSER: brod8294 | ALIAS: Trollcopter | STEAMID: STEAM_0:0:17104852 | IP: 24.255.170.133:27005 5/1/2012 - 18:16:37 | SHUSER: N/A | SHVER: N/A | STEAMUSER: ble98 | ALIAS: BibidyBobidy ッ | STEAMID: STEAM_0:1:23860062 | IP: 64.71.118.113:27005 5/1/2012 - 20:43:01 | SHUSER: N/A | SHVER: N/A | STEAMUSER: b_lowe | ALIAS: [IG] Loweski | STEAMID: STEAM_0:0:39101463 | IP: 71.57.10.28:40555 5/1/2012 - 21:18:56 | SHUSER: N/A | SHVER: N/A | STEAMUSER: blokpoi | ALIAS: ŠŠŠŠ‹‹‹ ŠŠŠŠ‹‹‹ | STEAMID: STEAM_0:0:25381040 | IP: 72.184.19.27:27005 5/1/2012 - 21:35:31 | SHUSER: N/A | SHVER: N/A | STEAMUSER: richirik2006 | ALIAS: Krutas | STEAMID: STEAM_0:0:39817531 | IP: 76.169.46.123:27005 6/1/2012 - 13:35:02 | SHUSER: N/A | SHVER: N/A | STEAMUSER: micd55 | ALIAS: Sergei Petrovic | STEAMID: STEAM_0:0:27083822 | IP: 66.90.75.109:27005 6/1/2012 - 17:59:34 | SHUSER: N/A | SHVER: N/A | STEAMUSER: connor_2713 | ALIAS: Kay | STEAMID: STEAM_0:0:34407341 | IP: 108.20.28.62:27005 6/1/2012 - 18:07:41 | SHUSER: N/A | SHVER: N/A | STEAMUSER: mrpenguin81 | ALIAS: Teh Penguin | STEAMID: STEAM_0:1:24413062 | IP: 24.209.97.66:27005 6/1/2012 - 20:20:11 | SHUSER: N/A | SHVER: N/A | STEAMUSER: aricky65 | ALIAS: ingruo | STEAMID: STEAM_0:0:39919078 | IP: 71.3.120.242:27005 7/1/2012 - 10:42:36 | SHUSER: N/A | SHVER: N/A | STEAMUSER: andre_125 | ALIAS: [GDIF] GDI | STEAMID: STEAM_0:0:33891807 | IP: 85.243.41.203:56941 7/1/2012 - 15:41:53 | SHUSER: N/A | SHVER: N/A | STEAMUSER: rakon4251 | ALIAS: Mr. Pez | STEAMID: STEAM_0:0:21628567 | IP: 71.238.172.98:27005 7/1/2012 - 16:08:03 | SHUSER: N/A | SHVER: N/A | STEAMUSER: bfwnathan | ALIAS: Cookie Monster }: | STEAMID: STEAM_0:1:17041504 | IP: 96.35.93.49:27005 7/1/2012 - 20:21:57 | SHUSER: N/A | SHVER: N/A | STEAMUSER: killahomes21 | ALIAS: =ZCC= Niko | STEAMID: STEAM_0:1:31336428 | IP: 173.27.6.200:27005 7/1/2012 - 23:32:50 | SHUSER: N/A | SHVER: N/A | STEAMUSER: zack_905 | ALIAS: Zack | STEAMID: STEAM_0:0:30826484 | IP: 72.38.27.253:27005 8/1/2012 - 00:29:54 | SHUSER: N/A | SHVER: N/A | STEAMUSER: wasdwarriorqwerty | ALIAS: typwar | STEAMID: STEAM_0:0:19746511 | IP: 67.225.93.137:63133 8/1/2012 - 01:09:44 | SHUSER: N/A | SHVER: N/A | STEAMUSER: dillengers | ALIAS: Travis | STEAMID: STEAM_0:0:34143111 | IP: 184.148.96.61:27005 8/1/2012 - 02:56:23 | SHUSER: N/A | SHVER: N/A | STEAMUSER: bullhead1997 | ALIAS: {RAW-A}State Trooper | STEAMID: STEAM_0:0:43988463 | IP: 99.34.42.218:64758 8/1/2012 - 03:55:10 | SHUSER: N/A | SHVER: N/A | STEAMUSER: darkpwange | ALIAS: lichking | STEAMID: STEAM_0:0:35799570 | IP: 23.16.211.115:27005 8/1/2012 - 06:20:01 | SHUSER: N/A | SHVER: N/A | STEAMUSER: carbineee | ALIAS: John Mason | STEAMID: STEAM_0:1:28821506 | IP: 24.13.99.253:27005 9/1/2012 - 06:02:17 | SHUSER: N/A | SHVER: N/A | STEAMUSER: homelessxc0okie | ALIAS: Daze | STEAMID: STEAM_0:0:43272353 | IP: 69.114.132.82:27005 11/1/2012 - 15:45:57 | SHUSER: N/A | SHVER: N/A | STEAMUSER: mrguy12321 | ALIAS: Gabe Newell | STEAMID: STEAM_0:0:36040190 | IP: 70.114.57.177:27005 11/1/2012 - 15:49:31 | SHUSER: N/A | SHVER: N/A | STEAMUSER: jubbil | ALIAS: Serpent | STEAMID: STEAM_0:1:32540524 | IP: 82.11.130.3:27005 12/1/2012 - 20:29:45 | SHUSER: N/A | SHVER: N/A | STEAMUSER: xxsimxx22 | ALIAS: -=NrK=- XxSimxX | STEAMID: STEAM_0:1:27314406 | IP: 96.23.106.235:61971 13/1/2012 - 09:54:59 | SHUSER: N/A | SHVER: N/A | STEAMUSER: arcncss | ALIAS: Sir.Genome | STEAMID: STEAM_0:0:48346538 | IP: 46.9.132.33:27005 13/1/2012 - 15:49:38 | SHUSER: N/A | SHVER: N/A | STEAMUSER: snixzz8 | ALIAS: Tyler! | STEAMID: STEAM_0:0:40143824 | IP: 65.30.59.172:27006 14/1/2012 - 12:55:21 | SHUSER: br0wny | SHVER: 24 | STEAMUSER: kl0wnzy | ALIAS: SETHHACKER: br0wny | STEAMID: STEAM_0:0:3950924 | IP: 96.42.17.112:27005[/quote]
[QUOTE=Aide;34206761]I doubt this statement. Even if you spoof your leaving a trail.[/QUOTE] It's near impossible to have something client sided that you cannot spoof. [lua] local old_gt=hook.GetTable local old_gi=debug.getinfo function hook.GetTable() //filter results here return //said results end function debug.getinfo(func,what) if type(func)=="function" then if func==hook.GetTable then return old_gi(old_gt,what) elseif func==debug.getinfo then return old_gi(old_gi,what) end end return old_gi(func,what) end [/lua]
[quote] 11/10/11 15:25:16 - STEAM_0:0:30256551 - 216.161.149.194:27005 - Cyphy 11/11/11 16:34:46 - STEAM_0:0:31219365 - 71.185.39.27:27005 - J?M??S 11/11/11 18:44:48 - STEAM_0:1:40740032 - 72.197.176.43:27005 - Jackson 11/11/11 21:01:09 - STEAM_0:0:39163312 - 85.167.135.252:27005 - Mortal Freaking Viking (NOR( 11/11/11 22:36:49 - STEAM_0:0:33891807 - 85.247.156.226:62492 - GDI 11/12/11 13:52:54 - STEAM_0:1:21196163 - 217.137.239.253:27005 - Slave of Banana 11/12/11 18:12:22 - STEAM_0:0:24940422 - 173.238.56.104:27005 - ClubLuigi 11/12/11 21:08:00 - STEAM_0:0:24213184 - 81.159.4.147:1024 - {IG} TrueCoppa 11/13/11 02:37:34 - STEAM_0:1:37962455 - 67.169.246.97:27005 - sniper0shaman 11/13/11 03:22:04 - STEAM_0:1:19812177 - 81.106.58.119:27005 - Keeran 11/13/11 12:52:19 - STEAM_0:1:24435842 - 213.67.188.48:57521 - Rolliz 11/14/11 15:33:16 - STEAM_0:1:45424776 - 81.205.42.137:51250 - *RazeR 11/19/11 19:46:10 - STEAM_0:1:26949104 - 86.6.152.162:27005 - death38 11/19/11 21:50:16 - STEAM_0:0:43706051 - 99.99.116.224:27005 - † ¢?s?? † 11/20/11 01:24:51 - STEAM_0:0:34143111 - 184.148.96.125:27005 - Travis 11/22/11 21:40:46 - STEAM_0:0:35034428 - 98.244.46.200:27005 - Dylan Klebold 11/24/11 14:03:35 - STEAM_0:0:29239364 - 99.32.57.188:27005 - Aimbot.exe 11/25/11 16:37:01 - STEAM_0:1:43675285 - 71.190.253.20:27005 - SuckMyPinga 11/25/11 17:05:17 - STEAM_0:1:32024708 - 189.122.110.192:6025 - AfroTendovvi 11/25/11 19:17:26 - STEAM_0:1:17174283 - 74.67.6.111:27005 - Cat :3 11/25/11 21:42:32 - STEAM_0:0:31615557 - 98.234.43.248:40470 - [LL] (WBA Inf.)Pvt. Killjoy445 11/25/11 23:29:11 - STEAM_0:1:22308446 - 75.80.28.115:27005 - ST | STONEY 11/25/11 23:41:35 - STEAM_0:1:42061868 - 206.248.158.54:27005 - y0gurt 11/26/11 13:25:50 - STEAM_0:1:23240412 - 58.164.27.143:27005 - Mr Derpa 11/27/11 19:25:56 - STEAM_0:0:19318165 - 206.255.31.169:27005 - [ZULU] Dr|Jake 11/29/11 18:59:10 - STEAM_0:1:39246443 - 173.66.204.227:27005 - Rockstar 12/03/11 00:09:37 - STEAM_0:1:19916550 - 96.28.95.65:27005 - iN^SaNe 12/04/11 12:50:18 - STEAM_0:1:10908429 - 83.183.17.228:49247 - Anders Behring Breivik 12/06/11 12:44:43 - STEAM_0:1:10309922 - 92.85.248.125:27005 - p0sey 12/07/11 13:56:01 - STEAM_0:0:43159831 - 173.71.155.132:27005 - Okkerfae 12/07/11 16:49:14 - STEAM_0:0:44864516 - 99.241.44.148:27005 - KingTritus 12/07/11 19:24:13 - STEAM_0:1:41847396 - 86.180.229.238:27005 - Auto-Tune Jesus 12/07/11 23:35:46 - STEAM_0:1:35214598 - 94.171.165.74:27005 - Exogen Manwhore | Killjoy 12/10/11 11:53:58 - STEAM_0:0:23748086 - 58.172.202.122:27005 - Hamargan 12/10/11 19:43:52 - STEAM_0:0:39543268 - 86.186.231.136:27005 - Knuckles 12/10/11 19:55:12 - STEAM_0:0:46676890 - 66.26.227.36:27005 - Diabetic Raptor 12/10/11 21:12:11 - STEAM_0:0:23718967 - 66.74.160.213:27005 - ReconPWN™ 12/10/11 21:25:13 - STEAM_0:0:45008543 - 65.185.85.169:27005 - Mr.Teddy™ 12/12/11 15:14:24 - STEAM_0:0:31001396 - 85.231.120.47:27005 - CupQuakes 12/12/11 16:43:00 - STEAM_0:0:26707259 - 77.213.84.161:28814 - Fjernsyn 12/13/11 23:55:08 - STEAM_0:1:19758658 - 86.24.213.1:27005 - Blitzy :D 12/14/11 17:50:03 - STEAM_0:0:15612692 - 108.193.128.239:27005 - LiL_PimP_917 12/17/11 23:39:37 - STEAM_0:0:43688624 - 71.190.253.20:27005 - MLG 12/18/11 17:56:25 - STEAM_0:1:30673177 - 66.41.103.113:27005 - Phatpat420 (baked) 12/19/11 17:14:11 - STEAM_0:1:10417976 - 2.104.133.217:27005 - [Gmod.biZ] KaNN 12/24/11 17:16:10 - STEAM_0:0:31911048 - 173.67.251.34:27005 - carlos senate 12/26/11 19:59:45 - STEAM_0:1:20106843 - 188.176.20.214:27005 - Zeus. 12/26/11 23:01:01 - STEAM_0:1:29951145 - 71.75.224.37:27005 - |HGN| Sgarner215 [LP] 12/27/11 22:00:59 - STEAM_0:0:19416161 - 86.52.47.218:27005 - Smoking Death 12/29/11 22:12:55 - STEAM_0:1:37475407 - 99.106.227.183:27005 - Jesus christ 12/29/11 23:44:58 - STEAM_0:0:19856818 - 188.107.255.179:27005 - Timeracer | B-P 12/30/11 13:58:39 - STEAM_0:1:21961455 - 68.111.84.170:27005 - lone wolf 12/31/11 01:24:10 - STEAM_0:1:26104355 - 194.46.227.11:27005 - [GM] Gaw 12/31/11 13:50:55 - STEAM_0:1:35864181 - 24.60.53.114:27005 - [HZ] CarmineGear 01/01/12 11:31:46 - STEAM_0:1:37768656 - 118.210.31.83:27005 - SETHHACKER: Ludus 01/01/12 16:32:16 - STEAM_0:1:22119869 - 87.104.50.86:27005 - Acastus 01/02/12 21:26:30 - STEAM_0:1:48004946 - 68.41.73.209:27005 - Tom 01/03/12 01:50:35 - STEAM_0:1:47460935 - 24.151.58.93:27005 - ?| NigglyWiggly #JetGuild 01/03/12 16:23:27 - STEAM_0:0:26159643 - 93.167.120.125:27005 - Caver 01/05/12 14:10:27 - STEAM_0:1:25555698 - 83.87.48.180:27005 - Chocomeli 01/08/12 18:34:25 - STEAM_0:0:19844125 - 213.238.69.178:27005 - Sabuk 01/09/12 23:02:00 - STEAM_0:0:3592017 - 178.76.186.202:27005 - Killa_Mike 01/10/12 15:30:27 - STEAM_0:0:17880799 - 71.167.192.57:50867 - Invisible Man 01/11/12 16:08:18 - STEAM_0:0:26848836 - 80.143.194.60:27005 - » Mr. Gusta « 01/15/12 15:47:47 - STEAM_0:0:36088084 - 41.185.141.48:27005 - V4MP1R3[/quote] Last one decided to use Devnull.
[QUOTE=Cushie;34229365]Last one decided to use Devnull.[/QUOTE] "dsl-185-141-48.dynamic.wa.co.za" Home address.
[QUOTE=Cushie;34229365]Last one decided to use Devnull.[/QUOTE] oh god why I can confirm I had sethhack until Seth removed my access, because the sole reason I bought it, was to have an anticheat made for my server (that got DDoSed out of existence) why am I on that list
[QUOTE=Maagiline;34240861]oh god why I can confirm I had sethhack until Seth removed my access, because the sole reason I bought it, was to have an anticheat made for my server (that got DDoSed out of existence) why am I on that list[/QUOTE] Because you used SH on another server that detects it ;p ? Best thing you can do to defeat DevNull is host a server in a DC and get a nice little software firewall that detects the packets then send an email to the DC asking them to block the incoming stuff at the ISP level, most DCs will comply with this and have the ability to. I know this as I work at a DC and we've had requests of this type of thing, not directly DevNull yet xD
[QUOTE=Maagiline;34240861]oh god why I can confirm I had sethhack until Seth removed my access, because the sole reason I bought it, was to have an anticheat made for my server (that got DDoSed out of existence) why am I on that list[/QUOTE] As its says you were one of the first people picked up :v: Afaik you joined and left shortly after.
-snip-
[QUOTE=frosty802;34245029]Because you used SH on another server that detects it ;p ? Best thing you can do to defeat DevNull is host a server in a DC and get a nice little software firewall that detects the packets then send an email to the DC asking them to block the incoming stuff at the ISP level, most DCs will comply with this and have the ability to. I know this as I work at a DC and we've had requests of this type of thing, not directly DevNull yet xD[/QUOTE] A software firewall isn't going to do anything, might as well pop off wireshark every few minutes to record an interval of inbound packets and ask them to block specific source ports if possible, but you'll be lucky to find a host who will be willing to block thousands of random source ports without a nice monthly price. You would need physical layer filtering to deal with an attack of that magnitude either way, no offense but if you worked at a datacenter you would know that portions are generally leased and the clients that lease them rarely have any clue what they're doing at a physical layer, and even if they did, they wouldn't do it for your standard dedicated/colocated machine contract. And if you're not lying about working in a datacenter, you're working for a reseller whose name would be nice because my community gets attacked with 2-5gigabit attacks every 2 weeks, and smaller attacks in between, if you can offer that kind of service at a physical layer, hell I'm on board.
[QUOTE=Cushie;34247797]As its says you were one of the first people picked up :v: Afaik you joined and left shortly after.[/QUOTE] oh, that might have been me seeing if it works :/
Just thought of something for an anticheat.. [lua] function hook.Call(type,gm,...) local tbl=hook.GetTable()[type] for k,v in pairs(tbl) do //calling non-sense end end //check hook.GetTable for hooks you don't like [/lua] This way you can spoof hook.GetTable's results all you want, but it's gonna suck when you want that hook called..
[QUOTE=rokrox;34271255]A software firewall isn't going to do anything, might as well pop off wireshark every few minutes to record an interval of inbound packets and ask them to block specific source ports if possible, but you'll be lucky to find a host who will be willing to block thousands of random source ports without a nice monthly price. You would need physical layer filtering to deal with an attack of that magnitude either way, no offense but if you worked at a datacenter you would know that portions are generally leased and the clients that lease them rarely have any clue what they're doing at a physical layer, and even if they did, they wouldn't do it for your standard dedicated/colocated machine contract. And if you're not lying about working in a datacenter, you're working for a reseller whose name would be nice because my community gets attacked with 2-5gigabit attacks every 2 weeks, and smaller attacks in between, if you can offer that kind of service at a physical layer, hell I'm on board.[/QUOTE] Well its UK based, started out as a DSL provider back in the dial-up age (good times). Since 2006 we have our own DC and to any colo person or client that required dos migration then we do it. I merly said a nice software firewall to log the packets such as wireshark as it costs more to have a hardware firewall in a DC (U charges). If your interested PM myself I can hook you up with the sales team, we have put stuff in our DC or our private section at various DCs around london (to name a few Telehouse, Telecity, (one at heathrow forget its name). We used to provide collocation for a company called "Peer 1" until December 2011 when they built there own DC in the UK, during that time they had about 30racks 10 of which were full of nvidia GPU powered servers (huge power draw and heat lol) which were dealing with EA systems during the release of their latest games. Our prices are slightly higher but we allocate way higher power to each server than others do. I hope that answers your questions and any doubts ;p
Wouldnt it be possible for Garry to add versions of those functions which are protected and cant be overwritten? That way even if they were spoofed, anticheats could just use the protected version.
[QUOTE=Cushie;34308080]Wouldnt it be possible for Garry to add versions of those functions which are protected and cant be overwritten? That way even if they were spoofed, anticheats could just use the protected version.[/QUOTE] Why has this never been done?
[QUOTE=Cushie;34308080]Wouldnt it be possible for Garry to add versions of those functions which are protected and cant be overwritten? That way even if they were spoofed, anticheats could just use the protected version.[/QUOTE] In Lua, functions are stored in plain old variables just like any other data type. Read-only variables are impossible (unless you use some metatable magic, but even then there are ways around it).
[QUOTE=thomasfn;34308198]In Lua, functions are stored in plain old variables just like any other data type. Read-only variables are impossible (unless you use some metatable magic, but even then there are ways around it).[/QUOTE] Can he not do it in the same way that keywords like if, then, do, and, or, etc are protected?
[QUOTE=Drakehawke;34308257]Can he not do it in the same way that keywords like if, then, do, and, or, etc are protected?[/QUOTE] Binary module would easily override it; meaning the anticheat developer is out of luck; while the cheater can cheat.
[QUOTE=Drakehawke;34308257]Can he not do it in the same way that keywords like if, then, do, and, or, etc are protected?[/QUOTE] Doing so would be impossible without changing how most of the internals of Lua work. The amount of effort is not worth the benefit, plus it will make adding new bindings more difficult. [QUOTE=Bawbag;34308291]Binary module would easily override it; meaning the anticheat developer is out of luck; while the cheater can cheat.[/QUOTE] Binary modules can't change how Lua works. Not without alot of detouring and such, but even that would trigger VAC.
It was just a thought, annoying that there is no way to copy functions if the cheat loads before.
package.loaded.concommand = nil require("concommand") forcibly reload the package at autorun
[QUOTE=Cushie;34308522]It was just a thought, annoying that there is no way to copy functions if the cheat loads before.[/QUOTE] If the cheat loads before and it modifies a function, there is no way for a script afterwards to tell if the function was modified or not, as long as the cheat covers it's tracks. The only way is to have your anti-cheat load before the cheat, or block the cheat from loading entirely. [editline]20th January 2012[/editline] [QUOTE=DylanWilson;34308710]package.loaded.concommand = nil require("concommand") forcibly reload the package at autorun[/QUOTE] And what's stopping the cheat from overriding require?
[QUOTE=thomasfn;34308436]Binary modules can't change how Lua works. Not without alot of detouring and such, but even that would trigger VAC.[/QUOTE] Seen as garry never flags anything detected as a cheat (with the exception of baconbot); I highly doubt it. [editline]20th January 2012[/editline] Plus you can vtable hook it and VAC would be none-the-wiser.
[QUOTE=thomasfn;34308836]And what's stopping the cheat from overriding require?[/QUOTE] be a dick and put gamemode functions in the concommand module you no let me require, I no let you see chat
[QUOTE=DylanWilson;34309519]be a dick and put gamemode functions in the concommand module you no let me require, I no let you see chat[/QUOTE] Please make an anticheat I need a good laugh
[QUOTE=DylanWilson;34309519]be a dick and put gamemode functions in the concommand module you no let me require, I no let you see chat[/QUOTE] Still, I could override require, tell it to require the concommand module as normal, then override the new concommand functions it just loaded with my own. For a Lua-based anticheat to properly work, it needs to load before the cheat, and it needs to override [i]any[/i] function which could potentially bypass the anticheat or do any sneaky stuff. This includes pretty much most globals, the debug library etc. And there will still be a sneaky way to bypass the anticheat which the author missed.
Best way to not get yourself ddosed and your anticheat patched is to simply flag SteamIDs and manually ban people either after they leave or while they are in the server for breaking whatever rules that they most likely will (99% of them have no recoil on and dont toggle off if you spectate them, its so easy to see) If you go ahead and ban some kiddy with the reason 'Sethhack', he is just gonna come back and try to show you who is 'boss'. Out of the 60+ SteamIDs I put a page or two ago, only the very latest one actually hit us with Devnull, and guess what? I banned him with the reason Sethhack.
Sorry, you need to Log In to post a reply to this thread.