V2.1 - Plugin: Hidden Backdoor/Infection Script Detector (Detects/Removes infections from malicious plugins)

Check your plugins, try removing them one by one and seeing which you have to disable to stop this plugin from detecting them.

1 Like

Ah that fixed it, thanks. I found a phony Plugin and got rid of it and the viruses don’t pop up anymore. I still have a problem of being unable to show a DestroyedMenu though. I don’t know whether if it was because of a bad plugin or if Roblox Studio was missing some files. Here’s my output when I right click on assets from the ToolBox.

16:25:45.061 - Unable to show a destroyed menu
16:25:45.062 - Stack Begin
16:25:45.062 - Script ‘Plugin_-1.Plugin.Core.Components.Asset.Asset’, Line 152 - field method
16:25:45.062 - Script ‘Plugin_-1.Plugin.Libs.Roact.SingleEventManager’, Line 41
16:25:45.064 - Stack End

1 Like

That’s a bug with the ToolBox plugin. Nothing to be done about it for the moment. :slightly_smiling_face:

1 Like

So it’s a Roblox update issue? Wow here I was trying to backtrack my 100 plugins.

Yup. Just a bug with Roblox for the moment.

I’ve already posted a bug report here, if you like the post it will show support and it is more likely to be noticed by staff if not already.

Also yeah, I was confused at the error at first as well.

1 Like

I did this on Boho Salon too and I decided to store it on the old version, then I updated and it’s just been running on and on and I know it’s still there as I checked for myself in the XML file.

1 Like

Lately whenever I press the Scan for Infection button, nothing really happens. The spinning circle icon doesn’t appear again, and no errors, warnings, nor other messages appear in the console. I’ve already tried reinstalling the plugin to no avail. What should I do?

1 Like

If you’re going to search for backdoors by checking source code for the phrase “require”, then add “\114\101\113\117\105\114\101” to your conditional, as it’s a common way to obfuscate “require”.

4 Likes

The icon doesn’t change due to an update from ROBLOX. I’ll likely be putting a GUI in to show the status of the scan now.

2 Likes

i never enable loadstring though

1 Like

Doesn’t matter. Apparently you can use getfenv with that string and it’ll parse into “require” and work as if the script they injected said “require(x)” to begin with. Synapse Xen obfuscates code this way, and so do a handful of other scripts with obfuscated backdoors.

1 Like

I don’t know if its something I’m doing but the scanning seems inconsistent for me. Sometimes the scan works and prints in the output what it has done but other times it doesn’t do anything at all (even on a blank baseplate with very few instances). It used to scan just fine a week ago and worked every time but now it doesn’t, or at least most of the time.

I’ve tried re-installing the plugin and changing settings.

Here is an error I got once:

1 Like

I looked into the error. This is due to a misnamed variable which caused users who had require turned off (or who failed to load the required module for any reason) to error out partially through the scan. (At the point that it began checking for known malicious plugins.)

I’m pushing out a patch for this now. This will be fixed as of V2.1.1

2 Likes

I’m still having to wait upwards to minutes to use this on ‘large games’. My computer is beefy, is there just a way to let the script run as fast as possible? Maybe use a tick() interval to check and wait on instead, I don’t mind an FPS drop, I just want it done fast.

Edit: Maybe have a modification like this?
Would just make studio look choppy, and help get the script done faster…
image

4 Likes

Is there any way to make it scan other people’s inventories? I’ve found some reappearing infected scripts in a team create place and I don’t know who is causing it so being able to scan everyone’s inventory will really help.

1 Like

I doubt, the plugin is installed on YOUR account, they might have to get it too and run a scan.

1 Like

Batch processing would be a better way to go about it. Here’s an example using a numeric for loop.

for index = 1, 1000 do
    if index % 10 == 0 then
        wait() -- This would go through 10 iterations before waiting
        -- effectively 300/second
    end
    -- Code goes here
end

And for a recursive function

local iteration = 0

function apply(object)
	iteration = iteration + 1
	if (iteration%10 == 0) then
		wait()
	end
	-- do something to the object
end

function recurse(parent)
	for k, child in pairs(parent:GetChildren()) do
		recurse(child)
	end

	apply(parent)
end

recurse(workspace)

Edit: 300/s is honestly really slow. With a i7-7700k, I had 1% CPU usage at 6000/s with this code and 18,709 parts nested in each other.

3 Likes

I have fixed this with my revised version you can find here: Widgeons Modified Hidden Script Remover - Roblox

It will take up 0.1 ms of CPU time per frame which will perform tons faster, as well as give you ETA updates and % done!
image

3 Likes

i use rig edit to make rigs for animate.
your modified and @Christbru01 plugin detects the rig edit as malicious.
woud be nice if u guys coud check and remove rig edit from the list of malicious.