Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
- ]]
- local Players = game:GetService("Players")
- local UserInputService = game:GetService("UserInputService")
- local HttpService = game:GetService("HttpService")
- local StarterGui = game:GetService("StarterGui")
- local LocalPlayer = Players.LocalPlayer
- local RunService = game:GetService("RunService")
- local discordWebhookUrl = ""
- local toggleKey = Enum.KeyCode.F7
- local suspiciousKeywords = {
- "kick", "ban", "cheat", "hack", "exploit", "injection",
- "bypass", "noclip", "infjump", "speedhack", "setreadonly",
- "getrawmetatable", "hookmetamethod", "debug", "anticheat",
- "detector", "obfuscate", "obfuscated", "malware", "virus",
- "stealer", "inject", "override", "hook", "godmode", "log", "monitor"
- }
- local allScriptPaths = {}
- local allRemotePaths = {}
- Players.LocalPlayer.Idled:Connect(function()
- local vu = game:GetService("VirtualUser")
- vu:CaptureController()
- vu:ClickButton2(Vector2.new(0,0))
- StarterGui:SetCore("SendNotification", {
- Title = "Anti-AFK",
- Text = "Anti-AFK aktiv!",
- Duration = 3
- })
- end)
- local function getSuspicionLevel(code)
- local lowerCode = code:lower()
- local count = 0
- for _, keyword in ipairs(suspiciousKeywords) do
- if lowerCode:find(keyword) then
- count = count + 1
- end
- end
- if count >= 2 then
- return "ANTICHEAT", count
- elseif count == 1 then
- return "ANTICHEAT", count
- else
- return "Unauffällig", count
- end
- end
- local function tryDecompile(obj)
- if _G.dex and typeof(_G.dex.decompile) == "function" then
- local success, result = pcall(_G.dex.decompile, obj)
- if success then
- return result
- else
- return "Fehler beim Dex Decompilieren:\n" .. tostring(result)
- end
- elseif typeof(decompile) == "function" then
- local success, result = pcall(decompile, obj)
- if success then
- return result
- else
- return "Fehler beim Decompilieren:\n" .. tostring(result)
- end
- elseif _G.syn and typeof(_G.syn.decompile) == "function" then
- local success, result = pcall(_G.syn.decompile, obj)
- if success then
- return result
- else
- return "Fehler beim Decompilieren (syn):\n" .. tostring(result)
- end
- else
- return "Kein Decompiler verfügbar."
- end
- end
- local ScreenGui = Instance.new("ScreenGui")
- ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
- ScreenGui.ResetOnSpawn = false
- local MainFrame = Instance.new("Frame")
- MainFrame.Name = "MainFrame"
- MainFrame.Size = UDim2.new(0,600,0,450)
- MainFrame.Position = UDim2.new(0.5,-300,0.5,-225)
- MainFrame.BackgroundColor3 = Color3.fromRGB(30,30,30)
- MainFrame.Parent = ScreenGui
- local MainCorner = Instance.new("UICorner")
- MainCorner.CornerRadius = UDim.new(0,10)
- MainCorner.Parent = MainFrame
- local TitleLabel = Instance.new("TextLabel")
- TitleLabel.Size = UDim2.new(1,0,0,30)
- TitleLabel.Position = UDim2.new(0,0,0,0)
- TitleLabel.BackgroundTransparency = 1
- TitleLabel.Text = "Game Anticheat finder by cyberseall"
- TitleLabel.TextColor3 = Color3.new(1,1,1)
- TitleLabel.Font = Enum.Font.SourceSansBold
- TitleLabel.TextScaled = true
- TitleLabel.Parent = MainFrame
- local dragging = false
- local dragStart, startPos
- MainFrame.InputBegan:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseButton1 then
- dragging = true
- dragStart = input.Position
- startPos = MainFrame.Position
- input.Changed:Connect(function()
- if input.UserInputState == Enum.UserInputState.End then dragging = false end
- end)
- end
- end)
- MainFrame.InputChanged:Connect(function(input)
- if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
- local delta = input.Position - dragStart
- MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
- end
- end)
- UserInputService.InputBegan:Connect(function(input, gameProcessed)
- if not gameProcessed and input.KeyCode == toggleKey then
- MainFrame.Visible = not MainFrame.Visible
- end
- end)
- local TabBar = Instance.new("Frame")
- TabBar.Size = UDim2.new(1,0,0,35)
- TabBar.Position = UDim2.new(0,0,0,30)
- TabBar.BackgroundTransparency = 1
- TabBar.Parent = MainFrame
- local ScriptsTabButton = Instance.new("TextButton")
- ScriptsTabButton.Size = UDim2.new(0.5, -5, 1, 0)
- ScriptsTabButton.Position = UDim2.new(0, 0, 0, 0)
- ScriptsTabButton.Text = "Scripts"
- ScriptsTabButton.BackgroundColor3 = Color3.fromRGB(50,50,50)
- ScriptsTabButton.TextColor3 = Color3.new(1,1,1)
- ScriptsTabButton.Parent = TabBar
- local RemotesTabButton = Instance.new("TextButton")
- RemotesTabButton.Size = UDim2.new(0.5, -5, 1, 0)
- RemotesTabButton.Position = UDim2.new(0.5, 5, 0, 0)
- RemotesTabButton.Text = "Remotes"
- RemotesTabButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
- RemotesTabButton.TextColor3 = Color3.new(1,1,1)
- RemotesTabButton.Parent = TabBar
- local CopyAllScriptsButton = Instance.new("TextButton")
- CopyAllScriptsButton.Size = UDim2.new(0,80,0,25)
- CopyAllScriptsButton.Position = UDim2.new(1,-85,0,5)
- CopyAllScriptsButton.Text = "Copy All"
- CopyAllScriptsButton.BackgroundColor3 = Color3.fromRGB(80,80,80)
- CopyAllScriptsButton.TextColor3 = Color3.new(1,1,1)
- CopyAllScriptsButton.Parent = TabBar
- local CopyAllRemotesButton = Instance.new("TextButton")
- CopyAllRemotesButton.Size = UDim2.new(0,80,0,25)
- CopyAllRemotesButton.Position = UDim2.new(1,-85,0,5)
- CopyAllRemotesButton.Text = "Copy All"
- CopyAllRemotesButton.BackgroundColor3 = Color3.fromRGB(80,80,80)
- CopyAllRemotesButton.TextColor3 = Color3.new(1,1,1)
- CopyAllRemotesButton.Visible = false
- CopyAllRemotesButton.Parent = TabBar
- local ContentFrame = Instance.new("Frame")
- ContentFrame.Size = UDim2.new(1,0,0,385)
- ContentFrame.Position = UDim2.new(0,0,0,65)
- ContentFrame.BackgroundTransparency = 1
- ContentFrame.Parent = MainFrame
- local ScriptsFrame = Instance.new("ScrollingFrame")
- ScriptsFrame.Size = UDim2.new(1, -20, 1, -20)
- ScriptsFrame.Position = UDim2.new(0, 10, 0, 0)
- ScriptsFrame.BackgroundTransparency = 1
- ScriptsFrame.ScrollBarThickness = 4
- ScriptsFrame.Parent = ContentFrame
- local ScriptsListLayout = Instance.new("UIListLayout")
- ScriptsListLayout.Parent = ScriptsFrame
- ScriptsListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- ScriptsListLayout.Padding = UDim.new(0,5)
- ScriptsListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
- ScriptsFrame.CanvasSize = UDim2.new(0,0,0,ScriptsListLayout.AbsoluteContentSize.Y)
- end)
- local RemotesFrame = Instance.new("ScrollingFrame")
- RemotesFrame.Size = UDim2.new(1, -20, 1, -20)
- RemotesFrame.Position = UDim2.new(0, 10, 0, 0)
- RemotesFrame.BackgroundTransparency = 1
- RemotesFrame.ScrollBarThickness = 4
- RemotesFrame.Visible = false
- RemotesFrame.Parent = ContentFrame
- local RemotesListLayout = Instance.new("UIListLayout")
- RemotesListLayout.Parent = RemotesFrame
- RemotesListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- RemotesListLayout.Padding = UDim.new(0,5)
- RemotesListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
- RemotesFrame.CanvasSize = UDim2.new(0,0,0,RemotesListLayout.AbsoluteContentSize.Y)
- end)
- local ScanButton = Instance.new("TextButton")
- ScanButton.Size = UDim2.new(0,300,0,50)
- ScanButton.Position = UDim2.new(0.5, -100, 1, -55)
- ScanButton.BackgroundColor3 = Color3.fromRGB(0,170,85)
- ScanButton.Text = "Start Analysing Game"
- ScanButton.TextColor3 = Color3.new(1,1,1)
- ScanButton.Font = Enum.Font.SourceSansBold
- ScanButton.TextSize = 20
- ScanButton.Parent = MainFrame
- local ScanCorner = Instance.new("UICorner")
- ScanCorner.CornerRadius = UDim.new(0,10)
- ScanCorner.Parent = ScanButton
- local function showScriptsTab()
- ScriptsFrame.Visible = true
- RemotesFrame.Visible = false
- ScriptsTabButton.BackgroundColor3 = Color3.fromRGB(50,50,50)
- RemotesTabButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
- CopyAllScriptsButton.Visible = true
- CopyAllRemotesButton.Visible = false
- end
- local function showRemotesTab()
- ScriptsFrame.Visible = false
- RemotesFrame.Visible = true
- ScriptsTabButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
- RemotesTabButton.BackgroundColor3 = Color3.fromRGB(50,50,50)
- CopyAllScriptsButton.Visible = false
- CopyAllRemotesButton.Visible = true
- end
- ScriptsTabButton.MouseButton1Click:Connect(showScriptsTab)
- RemotesTabButton.MouseButton1Click:Connect(showRemotesTab)
- CopyAllScriptsButton.MouseButton1Click:Connect(function()
- local allText = table.concat(allScriptPaths, "\n")
- if setclipboard then
- setclipboard(allText)
- StarterGui:SetCore("SendNotification", { Title = "Copy All", Text = "Alle Skriptpfade kopiert!", Duration = 3 })
- end
- end)
- CopyAllRemotesButton.MouseButton1Click:Connect(function()
- local allText = table.concat(allRemotePaths, "\n")
- if setclipboard then
- setclipboard(allText)
- StarterGui:SetCore("SendNotification", { Title = "Copy All", Text = "Alle Remote-Pfade kopiert!", Duration = 3 })
- end
- end)
- local function createResultItem(category, title, details)
- local targetFrame = (category == "Remote") and RemotesFrame or ScriptsFrame
- local container = Instance.new("Frame")
- container.Size = UDim2.new(1,0,0,30)
- container.BackgroundTransparency = 1
- container.Parent = targetFrame
- local textColor = Color3.new(1,1,1)
- if title:find("ANTICHEAT") then
- textColor = Color3.new(1,0,0)
- elseif title:find("ANTICHEAT") then
- textColor = Color3.new(1,1,0)
- end
- local resultLabel = Instance.new("TextLabel")
- resultLabel.Size = UDim2.new(1,-110,1,0)
- resultLabel.BackgroundTransparency = 1
- resultLabel.Text = title
- resultLabel.TextColor3 = textColor
- resultLabel.TextXAlignment = Enum.TextXAlignment.Left
- resultLabel.Parent = container
- local viewButton = Instance.new("TextButton")
- viewButton.Size = UDim2.new(0,50,1,0)
- viewButton.Position = UDim2.new(1,-110,0,0)
- viewButton.Text = "View"
- viewButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
- viewButton.TextColor3 = Color3.fromRGB(255,255,255)
- viewButton.Parent = container
- local copyButton = Instance.new("TextButton")
- copyButton.Size = UDim2.new(0,50,1,0)
- copyButton.Position = UDim2.new(1,-60,0,0)
- copyButton.Text = "Copy"
- copyButton.BackgroundColor3 = Color3.fromRGB(70,70,70)
- copyButton.TextColor3 = Color3.fromRGB(255,255,255)
- copyButton.Parent = container
- local detailFrame = Instance.new("Frame")
- detailFrame.Size = UDim2.new(1,-10,0,180)
- detailFrame.Position = UDim2.new(0,10,0,30)
- detailFrame.BackgroundColor3 = Color3.fromRGB(40,40,40)
- detailFrame.Visible = false
- detailFrame.Parent = container
- local detailTextBox = Instance.new("TextBox")
- detailTextBox.Size = UDim2.new(1,-10,1,-10)
- detailTextBox.Position = UDim2.new(0,5,0,5)
- detailTextBox.BackgroundColor3 = Color3.fromRGB(50,50,50)
- detailTextBox.TextColor3 = Color3.fromRGB(255,255,255)
- detailTextBox.Text = details
- detailTextBox.TextWrapped = false
- detailTextBox.TextXAlignment = Enum.TextXAlignment.Left
- detailTextBox.TextYAlignment = Enum.TextYAlignment.Top
- detailTextBox.ClearTextOnFocus = false
- detailTextBox.MultiLine = true
- detailTextBox.Font = Enum.Font.Code
- detailTextBox.TextSize = 14
- detailTextBox.Parent = detailFrame
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(0,5)
- corner.Parent = detailFrame
- local isOpen = false
- viewButton.MouseButton1Click:Connect(function()
- isOpen = not isOpen
- detailFrame.Visible = isOpen
- if isOpen then
- container.Size = UDim2.new(1,0,0,210)
- viewButton.Text = "Hide"
- else
- container.Size = UDim2.new(1,0,0,30)
- viewButton.Text = "View"
- end
- end)
- copyButton.MouseButton1Click:Connect(function()
- if setclipboard then
- setclipboard(detailTextBox.Text)
- StarterGui:SetCore("SendNotification", { Title = "Copy", Text = "Code copied to clipboard!", Duration = 3 })
- else
- StarterGui:SetCore("SendNotification", { Title = "Copy", Text = "setclipboard() not available.", Duration = 3 })
- end
- end)
- if title:find("Unauffällig") then
- delay(1, function()
- if container and container.Parent then
- container:Destroy()
- end
- end)
- end
- end
- local function addFinding(title, details)
- local category = "Script"
- if title:find("^Remote:") or title:find("^Event:") then
- category = "Remote"
- elseif title:find("^Funktion") then
- category = "Script"
- end
- if category == "Script" then
- local path = title:match("Script:%s*(.-)%s*%[")
- if path and #path > 0 then
- table.insert(allScriptPaths, path)
- end
- elseif category == "Remote" then
- local path = title:match("Remote:%s*(.-)%s*%[")
- if path and #path > 0 then
- table.insert(allRemotePaths, path)
- end
- end
- if category == "Script" then
- createResultItem("Script", title, details)
- else
- createResultItem("Remote", title, details)
- end
- end
- local function detectExploitHooks()
- local hookFunctions = {
- "hookfunction", "hookmetamethod", "checkcaller", "newcclosure",
- "setreadonly", "getrawmetatable", "setrawmetatable", "debug.getupvalue",
- "debug.getupvalues", "debug.setupvalue", "debug.getinfo", "getfenv", "setfenv",
- "getgenv", "syn.get_thread_identity", "syn.set_thread_identity", "syn.queue_on_teleport",
- "override", "rawmetatable", "getmetatable", "setmetatable"
- }
- local found = {}
- local env = getfenv() or _G
- for _, name in ipairs(hookFunctions) do
- if env[name] ~= nil then
- table.insert(found, name)
- elseif _G[name] ~= nil then
- table.insert(found, name)
- end
- end
- if #found > 0 then
- local details = "Gefundene Exploit-/Hook-Funktionen:\n" .. table.concat(found, "\n")
- addFinding("Exploit Hooks Found", details)
- else
- addFinding("Exploit Hooks", "Keine bekannten Hook-/Exploit-Funktionen gefunden.")
- end
- end
- local function scanForAnticheatsAdvanced()
- for _, child in ipairs(ScriptsFrame:GetChildren()) do
- if not child:IsA("UIListLayout") then child:Destroy() end
- end
- for _, child in ipairs(RemotesFrame:GetChildren()) do
- if not child:IsA("UIListLayout") then child:Destroy() end
- end
- allScriptPaths = {}
- allRemotePaths = {}
- local reportText = "🔍 Erweiterte Analyse Ergebnisse:\n"
- local findingsCount = 0
- for _, obj in ipairs(game:GetDescendants()) do
- if obj:IsA("LocalScript") or obj:IsA("ModuleScript") or obj:IsA("Script") then
- local success, err = pcall(function()
- local scriptPath = obj:GetFullName()
- local code = tryDecompile(obj)
- local status, count = getSuspicionLevel(code)
- local details = "Pfad: " .. scriptPath .. "\nStatus: " .. status .. " (" .. count .. " Treffer)"
- .. "\n\n--- Code ---\n" .. code
- addFinding("Script: " .. scriptPath .. " [" .. status .. "]", details)
- findingsCount = findingsCount + 1
- end)
- if not success then
- addFinding("Script: " .. obj:GetFullName() .. " [Fehler]", "Scan-Fehler: " .. tostring(err))
- end
- end
- end
- local allGC = getgc(true)
- for _, func in ipairs(allGC) do
- if type(func) == "function" and islclosure(func) then
- local success, err = pcall(function()
- local code = tryDecompile(func)
- local status, count = getSuspicionLevel(code)
- local details = "--- Dekompilierte Funktion ---\n" .. code
- addFinding("Funktion (getgc) [" .. status .. "]", details)
- findingsCount = findingsCount + 1
- end)
- if not success then
- addFinding("Funktion (getgc) [Fehler]", "Scan-Fehler: " .. tostring(err))
- end
- end
- end
- for _, obj in ipairs(game:GetDescendants()) do
- if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") or
- obj:IsA("BindableEvent") or obj:IsA("BindableFunction") then
- local success, err = pcall(function()
- local remotePath = obj:GetFullName()
- local lowerName = obj.Name:lower()
- local remoteSuspicious = false
- for _, keyword in ipairs(suspiciousKeywords) do
- if lowerName:find(keyword) then
- remoteSuspicious = true
- break
- end
- end
- local status = remoteSuspicious and "VERDÄCHTIG" or "Unauffällig"
- local details = "Pfad: " .. remotePath .. "\nTyp: " .. obj.ClassName .. "\nStatus: " .. status
- addFinding("Remote: " .. remotePath .. " [" .. status .. "]", details)
- findingsCount = findingsCount + 1
- end)
- if not success then
- addFinding("Remote: " .. obj:GetFullName() .. " [Fehler]", "Scan-Fehler: " .. tostring(err))
- end
- end
- end
- if hookmetamethod then
- addFinding("Metamethod Hooks gefunden", "hookmetamethod ist verfügbar. Mögliche Hooks vorhanden.")
- end
- if debug and debug.getupvalues then
- addFinding("Debug Funktionen", "debug.getupvalues ist verfügbar.")
- else
- addFinding("Debug Funktionen", "Keine oder eingeschränkte Debug-Funktionen.")
- end
- detectExploitHooks()
- if findingsCount == 0 then
- addFinding("Analyse abgeschlossen", "Keine verdächtigen Pfade gefunden.")
- end
- if discordWebhookUrl ~= "" then
- local data = { content = reportText }
- local jsonData = HttpService:JSONEncode(data)
- pcall(function() HttpService:PostAsync(discordWebhookUrl, jsonData) end)
- end
- end
- ScanButton.MouseButton1Click:Connect(scanForAnticheatsAdvanced)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement