For Defcodert, support has been discontinued on my end. Defcodert was a great plugin and I'm sorry to part with it, but I see no reason to keep it alive. Although, it still works.
Has your game ever been infected with a virus that you just can’t find among everything else?
In any case, there are many free models on Market Place right now, but some of them contain malicious scripts. Their purposes are different - some are harmless lag scripts, some are dangerous backdoors, but sometimes they are hard to find on their own, so there are anti-viruses on the marketplace, and this is one of them!
Defcodert is an antivirus that scans scripts in multiple ways - more than 15 scanner functions! Many things are implemented in it that are not implemented in other anti-viruses. See by yourself!
⠀
Differences from the others
Why Defcodert, not the other antiviruses?
📹 Scanner
Defcodert has a smart scanner that will listen to you - want to detect only require() function? Go to settings and disable other types! Disable ANY type of threat if you don’t think you need it.
✨ UI
Honestly, I haven’t seen any antivirus with the same smoothness of windows. That’s why Defcodert antivirus is perfect in terms of usability!
⚡ Speed
Scanning speed is >1200 objects/second. Very fast, right?
🐇 Line Jump
Navigate to the line that caused the suspicion for almost every check parameter. You can easily select the cause of suspicion and jump to a line of code.
🔰 BG Scanning
Defcodert scans your game in the background and you will be notified if anything is detected.
🍂 Sensitivity
Select the sensitivity for specific types of threats so that the scanner works the way you want it to work. Read more about this feature in special section! (Tutorials → Sensitivity)
📲 One plugin - one widget
I don’t like having many buttons on the plugin panel, so Defcodert has one button with all the stuff. ONE!
💡 Update reminder
Have you ever had your plugins simply become obsolete? You just forget to check for updates, and so do I!
Defcodert won’t let you be in old protection - it will offer you to update your plugin if it notices that there is a newer version!
🐣 Easy change
Easily modify the Whitelist by deleting objects; easily modify quarantine scripts directly in the plugin by deleting or adding to the whitelist; easily change plugin settings in the same widget!
🛂 Plugin actions under control
The plugin will never remove/modify the script on its own without your consent. If the plugin thinks the script is suspicious, it will quarantine it automatically and send you a notification in the editor window. You can easily click on the notification - the widget will open immediately with an open threat.
⏹ Disable the plugin in specific places
When opening a new location for a plugin, you can choose whether to create a plugin folder and enable the plugin, or not to create a folder now or never run in that location (the plugin will create an object with a special deactivation key that cannot be faked by other plugins)
Functions
Plugin functions:
Detection of 11 types of threats by normal scanner + 8 by Advanced Scanner;
Move scripts to quarantine;
Automatic scanning of objects that you add;
Manual start of scanning;
Choice of which types of threats to respond to;
Object whitelisting;
Easy selection of all items in quarantine for action (delete/add to whitelist);
Detailed scanning progress;
Incredibly fast scanning (>1200obj/s);
Detailed explanation of why an object is a threat;
Smooth windows animations;
Jump to sus Line;
The plugin will remind you to update the plugin.
Types of threats what it detects
HttpService
InsertService
Site Names in scripts
like Discord or GitHub
require()
getfenv()
loadstring()
Getting Game Info in scripts
Like “game.CreatorId” or “game.PlaceId”
Long Lines of code
Already Known Viruses Names like “RotateR” or “Webhook”
Endless Loops
while true do end
Hexadecimal numbers
Advanced Scanner
See more at Advanced Scanner Section
Type of threat: Advanced Scanner
Advanced Scanner is a collection of several types of checks, which include checking for:
lag/troll activity
Backdoor activity
Downloader activity
Bad ID or Virus developers’ names (incomplete, but there is some)
Player teleportation actions
Buying action
Large script (>3000 lines of code)
Obfuscated code (too many actions on one line)
Note: If you want to disable a specific type of threat detected by AdS, click on the three dots next to the Advanced Scanner setting.
If you click “Ok, create” then the plugin will start working as usual and create local data for this place as a folder in ServerStorage.
If you click “Not now” then the plugin will simply do nothing, it will stop at this point. The next time you open that place it will offer to answer that question again.
If you click “Not here” then the plugin will create a unique code, save it to the plugin settings (maximum codes: 32) and create a StringValue named: “Defcodert will be disabled as long as this object exists” and equate its value to the same code. The plugin will stop at this point. The next time the plugin won’t open the dialog box, it will stop. Note: having renamed the object with the code, Defcodert will ask you again. Note: if you will have more than 32 codes, Defcodert will delete the oldest one, which can cause an error: E91
Analitycs Setting ALPHA
Analitycs
The plugin by default collects some data for statistics, but does not send it anywhere. Analytics collects data such as:
amount of time spent in the studio in seconds:
number of plugin launches;
number of widget openings;
number of scripts scanned;
number of threats;
amount of whitelisting;
number of quarantined objects deleted;
amount of openings of scripts from the plugin.
Note: with updates statistics can be expanded
Sensitivity
Sensitivity
Select the sensitivity for specific types of threats so that the scanner works the way you want it to work.
Sensitivity, as you can guess from the name, affects the sensitivity of the plugin to the threat. You can choose whether the sensitivity is global or local. (The default sensitivity is global, medium)
Global sensitivity affects all the parameters at once, that is, if the sensitivity is global - all sensitivity parameters will be changed by this number, but it will not be visible. Local sensitivity allows you to change each sensitivity parameter independently. For example: sensitivity to require() can be set to medium, and sensitivity to names to low, etc.
How does sensitivity affect specific types of threats?
require()
Low: a threat if there is a number in brackets, but no punctuation marks. Medium: threat - if there is a number in brackets. High: if there are brackets next to the function.
The others work on a similar principle, I think you understand the logic of sensitivity. If you are interested in knowing more, write down what you are interested in knowing. Thanks to @ByteyWolf for idea with sensitivity!
Tired of changing TextLabel to TextButton? Instantly switch between any classes with this free plugin:
Just to remind you, Defcodert is in BETA, which means it can crash at times) But this never happens!
📩 Leave comments with your opinion - for example: what do you think of the plugin's functions, UI... If you notice a bug or have any type of question - I'll answer it.
I feel like whilst this tool might be beneficial for some users, it doesn’t add any features which would benefit any high lever coder. Not to mention it flags a bunch of stuff which are not threats to begin with.
My criticisms really are:
A predominant number of the things it scans are not viruses to begin with.
I’ve concluded that 11/20 threats your thing scans, appear in my code which I have created and I know it is not a virus because I made it. Frankly high level coders or even old coders will use this stuff typically.
Most the stuff you have can be done in a Ctrl + Shift + F search - why do I need a plugin to do this for me, its a one time process for a lot of coders who need to remove viruses.
Your system claims it has speed, but the value you have presented is system dependent - not to mention I feel like by removing a bulk of your operations the process could still be faster.
No future proofing in your system, their is no guarantee to any user that your system will not be used maliciously in the future - as none of the system is in a repository either, their is no way I know your current system is not malicious, its even more suspicious as its free.
I will spend more time setting up your plugin, then actually the time gained from checking these things myself.
Supports the idea that the user should be informed about how to inspect code, your system denominates good and evil based on the presence of things.
I can’t honestly recommend this but its good you’ve actually made a smooth anti-virus plugin.
Hello clu! I really appreciate your detailed feedback on everything, it really helps me. This is my first plugin and I understand that it is far from perfect. I will respond to each of your comments as best I can:
On the whole, I agree with you. The number of false positives is very high.
This is due to the large number of checks of the script. This is also due to the fact that the plugin is configured by default to be as secure as possible. The settings are your decision.
I don’t agree with that - constant Ctrl + Shift + F adding items from marketplace can get very tedious. The plugin is not designed for a one-time check, but for constant tracking of added objects.
The speed of the plugin really does depend on the system… In my case, it is instantaneous. I tested it on real, long scripts (about 1000 pieces) and it handled it in a second! Did you read my code? I think the code is very dirty for you! Despite this, the plugin is still faster than its competitors.
I can’t prove that the plugin is correct and honest. But if someone is afraid to use it, let them install it locally. If I make it payable, would you believe me that it is fair?)
I don’t think setting up the plugin is long, less than 30 parameters in the settings! The fact that it has many settings is even a plus for the plugin. Or do you want 2 settings: require() and getfenv() like some outdated plugins?
Haha! That’s really true, I’m thinking of removing this nonsense altogether. I added it at first as a quick instruction, but then forgot to edit it properly.
Anyway, you’re the first person to leave a review! Thank you for accurately pointing out the shortcomings of the plugin! I really appreciate it! )
That last sentence was very nice! But despite this, the plugin is still (in my opinion) slightly better than the competition. (Although for a parent, their child is always the best)
Heh, I always had an .rbxl file with about 40 or so virus scripts collected from 2016 to 2022, always waiting for an antivirus to test it. So I decided to install your plugin, and check out what it finds in the test game.
First off, I think the tutorial UI can be improved and it should respect the window size of the widget it’s in.
After completing the tutorial, the plugin IMMEDIATELY started alerting me:
Which is a good thing, however there should be a setting to disable background scanning for low-end devices which may lag a lot.
As for detection, 35 out of 40 viruses were flagged:
(below are the remaining ones)
Which is absolutely amazing for a Roblox anti-virus, especially the fact that it was able to find obfuscated viruses too.
However, as @6Clu pointed out, this antivirus also flags completely innocent scripts. I revisited one of my older game projects and immediately 14 scripts (which I myself coded) were flagged, mostly by the “advanced scanner”. So there’s still room for improvement.
Nevertheless I’m glad that a new antivirus was developed after such a long time, and with actually good-looking UI. I hope that this antivirus can be improved and succeeds in the foreseeable future!
Wow! A truly magnificent review! You have given me a lot of happiness!
thank you so much for your plugin test, I unfortunately don’t have such a magic folder, so your test made me happy.
Yes, I’m just thinking about improving “notifications”! You reminded me of that horror!))) You’ve prompted me to consider the size of the window in the tutorial - thanks!
Background scanning can be turned off in the settings, it’s just signed as: “Scan Added Objects” and “Scan on Start”, so you probably didn’t find it.
About 14 scripts - although the plugin has a lot of false positives… as they say: better safe than sorry))))
I’ll try to live up to your expectations in the foreseeable future! Thank you so much for writing a good review, it’s very nice to read!
You should insert the top 100 or so models from the Toolbox, and search up some most common queries, and add the viruses that show up to your antivirus. That’s a good practice since some of the most popular virus types to date will be blocked. Also, try to detect obfuscation in scripts (e.g. lililililil type of variable naming triggers the alarm).
Notifications. I really liked this idea, it looks clean and very clear, it’s also easy to implement and really improves the user experience.
Sensitivity. This idea is very good, it solves the problem of too complicated interface and too many false alarms (which many people don’t like), and what you’ve done in the picture looks amazing! I will try to expand on this idea: for example - sensitivity is global or there is a different sensitivity for each setting.
Detecting new viruses: ok, I’ll try to do that and update the list of virus names regularly.
Your concept arts looks great - especially the scanner sensitivity. I will try to add these features in the near future (1-3 weeks, as adding sensitivity will be a challenge) - all ideas are very good. Thanks for your hard work, IAmVo! ;]
You should also be able to whitelist certain scripts, or scripts in certain places. Some scripts will use HttpService, and require. One of my scripts uses getfenv to set the script variable to nil to prevent Lua from complaining.
If something is moved to the quarantine, it should save the location the script was in so you can easily move it back if needed. I don’t know if that’s already added!
The WhiteList system is already in Defcodert! The demo video shows the WhiteList-ing process!
When Defcodert finds a threat, it moves it to quarantine, storing the object’s parent object in a special folder and some more information. On WhiteList-ing an object from quarantine Defcodert automatically moves it back to the parent, if the parent is no longer there, Defcodert will move it to Workspace!
I hope I have understood you correctly, and have answered your questions correctly.
there is 0 point in detecting setfenv… Sure it changes the ENV of a script but to make the changed ENV malicious they would have to use other stuff which is already detected