• "pp/copy" Material Exploit
    33 replies, posted
Currently, if a certain material can be used to blind all players on a server. Steps to reproduce: 1. Run in console to set material: material_override "pp/copy" 2. Use material tool on any prop 3. Physgun or colorize the prop to blind all players on server I am letting more people know about this because: 1. The exploit is reversible by applying the material on another prop and setting its color to white 2. It should be fixed
Before anyone comes in here crying "BUT WHY DID YOU POST THIS OMG NOW EVERYONE KNOWS!!1" That's the point. The more people know, the more people to abuse it. The more people abuse it, the higher chance of Garry looking at it to be fixed. If only a select few people know, there is a low probability of it being fixed. And those people who know are free to use it as much as they like. Basically it's a way of saying "HEY, THERE'S AN EXPLOIT. EVERYONE KNOWS NOW. NOW YOU HAVE TO FIX IT."
Simple fix: Block paint tool. :)
[QUOTE=Leo Cash;39521225]Simple fix: Block paint tool. :)[/QUOTE] Not really, you pick it up with physgun it will make it black. Get a script that detects if you have material_override "pp/cop" if so then kick, ban what ever you desire. Besides from that you can make an adv dupe with it
I can't replicate this.
[QUOTE=Leo Cash;39521225]Simple fix: Block paint tool. :)[/QUOTE] This exploit does not involve the paint tool. [QUOTE=Leo Cash;39521343]I can't replicate this.[/QUOTE] I just tested it again in singleplayer and it works fine. Check that you used the right console command to set the material. If done correctly the prop's material will be a copy of your screenspace.
[CODE]hook.Add("CanTool", "AntiExploit", function(Player, Trace, ToolMode) if ToolMode:lower() == "material" then if IsValid(Player:GetActiveWeapon()) and Player:GetActiveWeapon().GetToolObject and Player:GetActiveWeapon():GetToolObject() then local tool = Player:GetActiveWeapon():GetToolObject() local Val = tool:GetClientInfo("override") if Val == "pp/copy" then Player:Kick("You are a cunt.") return false end end end end)[/CODE] Wouldn't that work for a while?
Should check on prop spawns too, someone could just spawn a dupe of it...
[QUOTE=TheDivinity;39522070][CODE]hook.Add("CanTool", "AntiExploit", function(Player, Trace, ToolMode) if ToolMode:lower() == "material" then if IsValid(Player:GetActiveWeapon()) and Player:GetActiveWeapon().GetToolObject and Player:GetActiveWeapon():GetToolObject() then local tool = Player:GetActiveWeapon():GetToolObject() local Val = tool:GetClientInfo("override") if Val == "pp/copy" then Player:Kick("You are a cunt.") return false end end end end)[/CODE] Wouldn't that work for a while?[/QUOTE] It works, but gives an error: [ERROR] lua/autorun/antiexploit.lua:7: attempt to call method 'Kick' (a nil value) 1. fn - lua/autorun/antiexploit.lua:7 2. Call - addons/ulib/lua/ulib/shared/hook.lua:183 3. unknown - gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua:247
[QUOTE=A-Z;39526271]It works, but gives an error: [ERROR] lua/autorun/antiexploit.lua:7: attempt to call method 'Kick' (a nil value) 1. fn - lua/autorun/antiexploit.lua:7 2. Call - addons/ulib/lua/ulib/shared/hook.lua:183 3. unknown - gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua:247[/QUOTE] Because it can't be used clientside. [editline]9th February 2013[/editline] *I'm talking about the Kick method
Has anyone got the script that fixed the ar2_altfire2 exploit? It used to remove props spawned with the material and kick people with it set using various tools.
I didn't post this exploit so it wouldn't get abused, but your points are valid... By the way, I don't know what materials they are, but there are apparently a few more that have the same effect.
Yea, ok, I did it now.
[QUOTE=TheDivinity;39522070][CODE]hook.Add("CanTool", "AntiExploit", function(Player, Trace, ToolMode) if ToolMode:lower() == "material" then if IsValid(Player:GetActiveWeapon()) and Player:GetActiveWeapon().GetToolObject and Player:GetActiveWeapon():GetToolObject() then local tool = Player:GetActiveWeapon():GetToolObject() local Val = tool:GetClientInfo("override") if Val == "pp/copy" then Player:Kick("You are a cunt.") return false end end end end)[/CODE] Wouldn't that work for a while?[/QUOTE] PP/cOpY lol.
Well thats my fun over...
[lua] hook.Add("Think", "materialcheck", function() for k,v in pairs(player.GetAll()) do if GetConVarString("material_override") == "PP/COPY" then v:Ban(0, "Blocked Exploit") v:Kick("Blocked Exploit") end end end [/lua] maybe? not sure
Use string.lower() and compare to "pp/copy". Solves any cases of people trying to use Pp/cOpY or any other forms of mixed cases.
There's a workaround for this in FPP (and therefore DarkRP). I was told a day after I read this thread. The guy who told me is getting shit about it, though, because I fixed it when he told me about it. This is bullshit. This exploit community is retarded. They tell every member what the exploit is, each one telling the next that it's a secret. This spreads throughout the playerbase until loads of people know. The stupid thing is that no one knows how many people are aware of the exploit because people only tell their friends about it. Then when someone tells someone with influence (Garry or me, I have a reputation of making workarounds for these things in DarkRP), all hell breaks loose. This is bullshit.
[QUOTE=FPtje;39540552]There's a workaround for this in FPP (and therefore DarkRP). I was told a day after I read this thread. The guy who told me is getting shit about it, though, because I fixed it when he told me about it. This is bullshit. This exploit community is retarded. They tell every member what the exploit is, each one telling the next that it's a secret. This spreads throughout the playerbase until loads of people know. The stupid thing is that no one knows how many people are aware of the exploit because people only tell their friends about it. Then when someone tells someone with influence (Garry or me, I have a reputation of making workarounds for these things in DarkRP), all hell breaks loose. This is bullshit.[/QUOTE] Why not share such workarounds here?
[QUOTE=Pantho;39541374]Why not share such workarounds here?[/QUOTE] It's on the [url=https://github.com/FPtje/Falcos-Prop-protection/blob/master/lua/autorun/server/FPP_core.lua]FPP github.[/url]
If I have the Physgun Grab Halo off it doesn't work for me
You can also do it with this tool, someone coded. It bypasses most fixes, until you restrict color tool. [url]https://www.dropbox.com/s/qk9iu2j61hf62xg/GScreenColorChanger.exe[/url]
[QUOTE=Anim4ls;39544854]You can also do it with this tool, someone coded. It bypasses most fixes, until you restrict color tool. [url]-snip-[/url][/QUOTE] i should hope everyone has the sense to report this
Someone give me what Anim4ls posted. I want to see if it bypasses the fix / fix the bypass.
Lol, his post was an EXE/RAT he got of Hack Forums. It wasn't anything close to helpful, or pertaining to material exploit at all.
Heh, silly people.
All I can say for my server is: [lua] hook.Add("Think", "materialcheck", function() if GetConVarString("material_override") == "PP/COPY" then local youaregonnacrash = os.date("-Edit- why isn't this function removed?") end end [/lua]
Lua 5.1 had that bug too you know? [img]http://fox.gy/fBnPcZg6mC.png[/img]
[QUOTE=Nak;39560124]All I can say for my server is: [lua] hook.Add("Think", "materialcheck", function() if GetConVarString("material_override") == "PP/COPY" then local youaregonnacrash = os.date("-Edit- why isn't this function removed?") end end [/lua][/QUOTE] Why on [b]earth [/b]in the think hook?
Was too lazy since my laptop don't have notepad++ Can do it better tho: [lua] // Potato Sauce V2000 Extreme Pro! // local shouldBanOn = false local scanTime = 1 // Tool function StopExp(pl, _, tool) if tool == "material" and pl:GetInfo( "material_override" ) == "pp/copy" then if shouldBanOn then pl:Ban(1447,"For using an exploit") pl:Kick("For using an exploit") end print(pl:Nick().." tried to use pp/copy") return false end end hook.Add("CanTool", "Daaamn", StopExp) // Dupes timer.Create( "potatoSauce", scanTime, 0, function() local List = ents.FindByClass( "prop_*" ) for I=1,#List do if List[I]:GetMaterial()=="pp/copy" then pl = List[I].Owner if pl:IsPlayer() then if shouldBanOn then pl:Ban(1447,"For using an exploit") pl:Kick("For using an exploit") end print(pl:Nick().." had an entity with the material pp/copy") else print("Removed an entity with the material pp/copy") end List[I]:Remove() end end end)[/lua] Annd .. now I got banned from my singleplayer.
Sorry, you need to Log In to post a reply to this thread.