EZ Antivirus // Clean, Safe, Easy script cleanup

EZ Antivirus allows the user to scan the entire workspace for any malicious scripts that can be causing harm to their game.

The user is giving the ability to pick and choose what scripts they want to be removed. And what scripts should remain in the game. Nobody can make this decision better than you.

To see the script in explorer. Press “Right Mouse Button” on a script.

Click below for instructions

  1. Disable any scripts you want to keep.
    This can be done under the scripts properties in the Explorer window. **

  2. Click the button in your Plugins tab

  3. At the top of the Gui click “Click here to Scan”

  • The disabled scripts will appear separately from the scripts enabled.
  • Scripts that appear RED are indicated as malicious scripts.
  • Not all malicious scripts will be detected as a malicious script. Be sure you double check ALL SCRIPTS before running the game.

**CONTROLS
Right Mouse Button :: Find script in Explorer

SOURCE CODE
For anyone interested on reading the juice behind the plugin. Enter a empty baseplate and paste the following code into the command line.

game:GetService(“InsertService”):LoadAsset(4917364372).Parent = workspace

A model will appear in workspace containing a folder with two ModuleScripts and a Script.

Updates

Update 1.0.4 (June 1st 2020)

The 1.0.4 update was just released.
– Replaced the “Parent” label with a more descriptive reason on why the virus was detected.
– Added getfenv() and scripts which have a “RotateG” as their parent to the watchlist.
– Removed “Doggity” name condition from the checks. No longer can scripts use this name as a work-around.

To report any bugs please message me on Roblox. My inbox is open

14 Likes

Why should we get this plugin? Is it trustworthy?

6 Likes

I believe my plugin has the potential to exterminate its competitors. It gives the user the benefit of getting to CHOOSE what scripts are removed from the game. It doesn’t search specific scripts to be removed but instead returns every scripts active in the game. It matches the names of scripts with common names found in exploit scripts and returns them in a more noticeable red.

As for the trustworthy. I can only expand my plugin through word of mouth. I am going to edit the main post with instructions on how to insert the plugin into the game for those of you who want to read the source code.

May you please elaborate on all the checks your plugin performance to try and identify a virus?

3 Likes

I don’t really see the point in a plugin which only scans the workspace for malicous scripts.

Absolutely! The purpose of the plugin is to provide the user a choice on what scripts are going to be removed.
The plugin will NOT remove any scripts without the users confirmation beforehand
Here are the steps the plugin takes to return the scripts to the user.

Code
	local checkTable = {
		workspace, 
		game.ReplicatedStorage, 
		game.ReplicatedFirst,
		game.Players, 
		game.Lighting,
		game.ServerStorage,
		game.ServerScriptService,
		game.StarterGui, 
		game.StarterPack, 
		game.StarterPlayer,
		game:GetService("SoundService"),
		game:GetService("Chat"),
		game:GetService("LocalizationService"),
		game:GetService("TestService"),
	}
	local foundDisabledScripts = {}
	local foundEnabledScripts = {}

	for checkIndex, checkTableValue in pairs (checkTable) do
		for checkingIndex, checkingValue in pairs (checkTableValue:GetDescendants()) do
			if checkingValue:IsA('Script') then
				if checkingValue.Name == 'DoggetyOn' then
					break
				end
				if checkingValue.Disabled == false then
					local dict = {
						['Name'] = checkingValue.Name,
						['Parent'] = checkingValue.Parent,
						['Object'] = checkingValue,
						['Disabled'] = false,
					}
					table.insert(foundEnabledScripts, dict)				
				elseif checkingValue.Disabled == true then
					local dict = {
						['Name'] = checkingValue.Name,
						['Parent'] = checkingValue.Parent,
						['Object'] = checkingValue,
						['Disabled'] = true,
					}
					table.insert(foundDisabledScripts, dict)				
				end
			end
		end
	end
	return foundEnabledScripts, foundDisabledScripts

The script then returns both tables. Each Gui element is created through the “Guiify” script in the plugin folder.

It will then check the names of the scripts against this table

local infectedSourceNames = {"Infected","Anti-Lag","Hack","Virus","Hidden","ROFL","4D Being","Guest Free Chat Script","Guest_Talking_Script","Spreadify","Kill tem!","join teh moovment!","Wormed","Trashed","asdf","Anti-Lag2","Antivirus","Lolzorz","Guest Talking Script","soz i herd u lik mudkipz","Nice little scripty","Harmless little scripty","OH SNAP YOU GOT INFECTED XD XD XD","Spread","spread","YOU GOT INFECTED XD XD XD","virus","INfecTION","Vaccine","IsInfected","ViVrus","d��������������ng.........you got owned...","Kraftyisback","ThisScriptIsAJumpStartToAHe�lthyLifestyle","I am a friendly virus","micolord","ProperGr�mmerNeededInPhilosiphalLocations;insertNoobHere","FreeStyleM�yGoAnywhereIfNeeded","ANTIVIRISIS","ANTIVIRIS","FeelFreeToIns3rtGramm�tic�lErrorsHere","NoNoIDon'tNeedAllOfYourAwkw�rdSovietArguments",[[""''""''""�|`�]]}

This was taken from the popular ro-defender plugin. Credit to them for providing the list

2 Likes

The plugin does a search on all decendants in the GAME not just the workspace

List of seached directories
	local checkTable = {
		workspace, 
		game.ReplicatedStorage, 
		game.ReplicatedFirst,
		game.Players, 
		game.Lighting,
		game.ServerStorage,
		game.ServerScriptService,
		game.StarterGui, 
		game.StarterPack, 
		game.StarterPlayer,
		game:GetService("SoundService"),
		game:GetService("Chat"),
		game:GetService("LocalizationService"),
		game:GetService("TestService"),
	}

Just checking a short list of common virus names will not work, also the checkTable is not all the objects in game, is just the visible ones in the explorer, there is a lot more.

Your plugin may give you the choice to remove or not the virus, but it won’t protect you.

1 Like

I agree with you completely. Thats why the plugin provides a User-Interface to SELECT the scripts that are going to be removed from the game.

The plugin will return EVERY script in the searched table. Not just the ones specified as malicious

The point of an antivirus is not only that, but to efficiently detect viruses in your game.

If the plugin returns all the scripts in the game, whats the point of using it if you can just type “script” in explorer and see all the scripts in your game.

1 Like

I wouldn’t call it useless compared to the current competitors. Its a different take on an Antivirus that provides a solution for more advanced malicious scripts.

You’re welcome to your opinion and if you don’t find a use for it. Then its useless for you . But in no way can you speak for everyone who is looking for a solution.

Users are capable to take whatever steps they wish to fix their game. If they choose to take this approach then they are welcome to do so. I’m providing a different path for them to choose from

1 Like

I mean, the useless is not being able to choose what to do with a virus, but the antivirus is not capable enough to detect viruses, due to the fact that it only searches in a small part of the game, and only detects them Identifying the name of the script, with such a basic system a lot of viruses will escape.

In comparison to current cleaners. Its just a more user-friendly interface. I will look further into your concerns and attempt to release something that reads into scripts. Thank you for taking the time to express your interest in the plugin.

I do think most the points bought up are very valid.

Given most people making the virus would honestly be stupid to not look at existing anti virus plugins, then knowing yours only checks script name gives them an easy option to just change the names of their virus’.

Also knowing how sophisticated some backdoors are now, I wouldn’t be surprised if virus infected plugins would look at names of your existing scripts and camouflage the virus there.

I recommend you more carefully evaluate the content of the scripts, for example are they calling require() with numbers. Maybe very small function names, one line scripts etc.

3 Likes

I agree completely. The feedback given on this post is exactly what I needed to start taking steps in the correct direction.

Thank you all who have replied with your concerns.

1 Like

The videos you have provided don’t seem to load, when i copy link address it leads me to https://devforum.roblox.com/404.

I’m not sure why the uploaded videos have been removed. I can assume there are moderation steps taken before videos are displayed.

If the videos are not working in an hour. I will attempt to re-upload them

1 Like

I re-uploaded the video using imgur. They should be working now.