so like i work on a game with my friend and before i worked on his game, he had a developer that put a backdoor into his game and then removed it later. but then we are worried that guy has added another, we removed him from the team but theres been exploiters telling us theres been a backdoor recently (shutting down servers)
but then also my friend used a ton of free models before i joined his team.
so its either free models or his friend
ive tried searching for the backdoor but theres 800 :require() lines…
is there any way i can find this backdoor without searching 400 scripts that have the :require() code in them?
also ive tried getfenv but that just brings up adonis admin stuff
the exploiters shut down the server and said “you have 7 days to remove this backdoor” and i dont know if they have capability of harming the game because this is the first backdoor ive ever encountered.
if you can help, thank you so much. this game has a lot of effort put into it and i dont wanna lose anything of it
Why are you using require in 800 scripts in the first place?
Why not disable all HTTP requests to see if that helps, and also disable the require scripts?
try putting in this script in cmd bar to find a few of the scripts that have require ( not all) but a lot of them local allScripts = {}; for i,v in pairs(game:GetDescendants()) do if v:IsA("LuaSourceContainer") then table.insert(allScripts,v) end end for i,v:Script in ipairs(allScripts) do if v.Source:find("require") then print(v:GetFullName()) end end
You can detect the require in those scripts, and iterate in the Studio command bar to remove them, since the command bar has the correct permissions to do so… I’m assuming it requires asset IDs?
for _, script in ipairs(game:GetDescendants()) do
if not script:IsA("BaseScript") then continue end --if it isn't a script
script.Source = string.gsub(script.Source, "^require%((%d+)%)$", "--malicious code was removed here")
end
Here, we are detecting a string pattern within the require statement. First, we detect a bracket at the start of the statement (%), followed by one or more numbers (%d+), followed by a closing bracket, and then the end of the string ($).