Backdoor Scanner
Downloaded a free, cracked or leaked resource? Drop it here before it touches your server. Every Lua file is scanned
for the patterns real backdoors use — obfuscated \x strings, hidden loaders, HTTP exfiltration,
os.execute and known malware-panel signatures. Nothing is uploaded — the scan runs in your browser.
How server backdoors hide — and what to do
Short, plain explanations of the patterns above. Written by Dispersia; the community reference we learned the most from is credited under each item.
Obfuscated \x / hex strings
Malware rarely writes PerformHttpRequest in plain text — it hides it as
"\x50\x65\x72\x66...", which Lua turns back into the real word at runtime. A normal script has no
reason to spell its own function names in hex. A block of these escapes is the single strongest signal that code
is trying not to be read.
What to do: decode it (this scanner does) and see what it builds. If it rebuilds load,
assert, an event name or a URL, delete the resource.
Reference: JG / Yorick security notes on FiveM backdoors — docs.yorick.gg/Security/Backdoors.
load() / assert(load(...)) runtime loaders
These run code that is assembled while the script starts, so the dangerous part never appears in the file you
read. assert(load(decode(...)))() is the classic backdoor shape: decode a blob, compile it, run it,
all on one line. Legitimate resources almost never build and execute code from a string.
What to do: treat any load/loadstring fed by concatenation, a decoder or a
downloaded string as hostile until proven otherwise.
Reference: docs.yorick.gg/Security/Backdoors.
Hidden HTTP calls (data exfiltration)
PerformHttpRequest to an address that is not the script's own update or license server is how a
backdoor sends your server data — tokens, player counts, connection strings — to its owner. The Cipher
panel, for example, phones home to cipher-panel.me. This scanner flags outbound HTTP and highlights
that host specifically.
What to do: confirm every URL the resource contacts. One you do not recognise is a reason to remove it.
Signatures for the Cipher panel were shared within the MenanAk47 / server-owner community.
os.execute, io.open, io.popen
A FiveM resource has no legitimate need to run shell commands or read and write arbitrary files on the host. These calls let a backdoor install a persistent loader, edit other resources, or run a program on your machine.
What to do: any of these in a gameplay resource is a red flag — verify the exact use or remove it.
Reference: docs.yorick.gg/Security/Backdoors.
Events that trust the client
A server RegisterNetEvent that hands out money, items or admin rights without checking who fired it
is not a hidden backdoor but an open door: any player can trigger it. This is the most common way servers get
drained. It is a design flaw, not obfuscation, so read the handler, not just the name.
What to do: every money/item/permission event must verify the source server-side. Never trust values the client sends.
Reference: docs.yorick.gg security notes.
This scanner matches known patterns; it cannot prove a resource is safe, only flag the signs of the common ones. Deep obfuscation can still hide. When in doubt, do not run untrusted code on a live server.