
Key RequiredUniversal

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Удаляем старый GUI, если есть
local oldGui = playerGui:FindFirstChild("RemoteScannerGui")
if oldGui then oldGui:Destroy() end
-- Создаём базовый GUI
local ScreenGui = Instance.new("ScreenGui", playerGui)
ScreenGui.Name = "RemoteScannerGui"
ScreenGui.ResetOnSpawn = false
-- Основная рамка
local Frame = Instance.new("Frame", ScreenGui)
Frame.Size = UDim2.new(0, 650, 0, 580)
Frame.Position = UDim2.new(0.5, -225, 0.5, -290)
Frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
Frame.BorderSizePixel = 0
Frame.ClipsDescendants = true
-- Заголовок
local TitleBar = Instance.new("Frame", Frame)
TitleBar.Size = UDim2.new(1, 0, 0, 30)
TitleBar.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
TitleBar.BorderSizePixel = 0
local TitleLabel = Instance.new("TextLabel", TitleBar)
TitleLabel.Text = "Remote Scanner"
TitleLabel.Size = UDim2.new(1, -40, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.TextColor3 = Color3.new(1, 1, 1)
TitleLabel.Font = Enum.Font.SourceSansBold
TitleLabel.TextSize = 18
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.TextYAlignment = Enum.TextYAlignment.Center
local CloseButton = Instance.new("TextButton", TitleBar)
CloseButton.Text = "✕"
CloseButton.Size = UDim2.new(0, 30, 1, 0)
CloseButton.Position = UDim2.new(1, -35, 0, 0)
CloseButton.BackgroundColor3 = Color3.fromRGB(150, 40, 40)
CloseButton.BorderSizePixel = 0
CloseButton.Font = Enum.Font.SourceSansBold
CloseButton.TextSize = 22
CloseButton.TextColor3 = Color3.new(1, 1, 1)
CloseButton.AutoButtonColor = true
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
-- Поисковое поле
local SearchBox = Instance.new("TextBox", Frame)
SearchBox.Size = UDim2.new(1, -10, 0, 30)
SearchBox.Position = UDim2.new(0, 5, 0, 35)
SearchBox.PlaceholderText = "Введите имя ремота для поиска..."
SearchBox.ClearTextOnFocus = false
SearchBox.Text = ""
-- ScrollingFrame для списка
local ScrollFrame = Instance.new("ScrollingFrame", Frame)
ScrollFrame.Size = UDim2.new(1, -10, 1, -75)
ScrollFrame.Position = UDim2.new(0, 5, 0, 70)
ScrollFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
ScrollFrame.BorderSizePixel = 0
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollFrame.ScrollBarThickness = 8
local UIListLayout = Instance.new("UIListLayout", ScrollFrame)
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
-- Dragging
local dragging, dragInput, dragStart, startPos
local function updatePosition(input)
local delta = input.Position - dragStart
Frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
TitleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
updatePosition(input)
end
end)
-- Функции для сбора ремотов
local function scanRemotes()
local remotes = {}
local function findRemotesIn(parent)
for _, child in pairs(parent:GetChildren()) do
if child:IsA("RemoteEvent") or child:IsA("RemoteFunction") then
table.insert(remotes, child)
end
findRemotesIn(child)
end
end
findRemotesIn(Workspace)
findRemotesIn(ReplicatedStorage)
return remotes
end
local remotes = scanRemotes()
local function createButton(text, sizeX, sizeY)
local btn = Instance.new("TextButton")
btn.Text = text
btn.Size = UDim2.new(0, sizeX, 0, sizeY)
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btn.BorderSizePixel = 0
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.SourceSans
btn.TextSize = 18
btn.AutoButtonColor = true
btn.Active = true
return btn
end
local function checkBackdoor(remote)
local name = remote.Name:lower()
local suspiciousKeywords = {"kick", "ban", "shutdown", "destroy", "remove", "delete", "exit", "stop"}
for _, word in pairs(suspiciousKeywords) do
if string.find(name, word) then
return true
end
end
return false
end
-- Функция обновления списка ремотов с учётом фильтра
local function updateRemoteList(filter)
filter = filter:lower()
-- Очищаем список
for _, child in pairs(ScrollFrame:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local filteredRemotes = {}
for _, remote in pairs(remotes) do
if remote.Name:lower():find(filter) then
table.insert(filteredRemotes, remote)
end
end
-- Создаём элементы для отфильтрованных ремотов
for index, remote in pairs(filteredRemotes) do
local remoteFrame = Instance.new("Frame", ScrollFrame)
remoteFrame.Size = UDim2.new(1, -10, 0, 40)
remoteFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
remoteFrame.BorderSizePixel = 0
remoteFrame.LayoutOrder = index
local nameLabel = Instance.new("TextLabel", remoteFrame)
nameLabel.Text = remote.Name
nameLabel.Size = UDim2.new(0.4, 0, 1, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.TextColor3 = Color3.new(1, 1, 1)
nameLabel.Font = Enum.Font.SourceSans
nameLabel.TextSize = 16
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.Position = UDim2.new(0, 10, 0, 0)
local fireBtn = createButton("Fire", 60, 30)
fireBtn.Parent = remoteFrame
fireBtn.Position = UDim2.new(0.45, 0, 0.15, 0)
local backdoorBtn = createButton("Backdoor", 90, 30)
backdoorBtn.Parent = remoteFrame
backdoorBtn.Position = UDim2.new(0.65, 0, 0.15, 0)
local copyBtn = createButton("Copy Code", 90, 30)
copyBtn.Parent = remoteFrame
copyBtn.Position = UDim2.new(0.85, 0, 0.15, 0)
fireBtn.MouseButton1Click:Connect(function()
if remote:IsA("RemoteEvent") then
print("Calling FireServer on "..remote:GetFullName())
remote:FireServer()
elseif remote:IsA("RemoteFunction") then
print("Calling InvokeServer on "..remote:GetFullName())
local success, result = pcall(function()
return remote:InvokeServer()
end)
if success then
print("Result: ", result)
else
warn("InvokeServer error:", result)
end
end
end)
backdoorBtn.MouseButton1Click:Connect(function()
local isSuspicious = checkBackdoor(remote)
if isSuspicious then
warn("Possible backdoor detected in "..remote:GetFullName())
-- Создаём сервер-сайд executor GUI
local execGui = Instance.new("ScreenGui", playerGui)
execGui.Name = "ServerSideExecutor"
execGui.ResetOnSpawn = false
local execFrame = Instance.new("Frame", execGui)
execFrame.Size = UDim2.new(0, 500, 0, 300)
execFrame.Position = UDim2.new(0.5, -250, 0.5, -150)
execFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
execFrame.BorderSizePixel = 0
local closeBtn = Instance.new("TextButton", execFrame)
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.Text = "X"
closeBtn.BackgroundColor3 = Color3.fromRGB(150, 40, 40)
closeBtn.TextColor3 = Color3.new(1,1,1)
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.TextSize = 20
closeBtn.AutoButtonColor = true
closeBtn.MouseButton1Click:Connect(function()
execGui:Destroy()
end)
local codeBox = Instance.new("TextBox", execFrame)
codeBox.MultiLine = true
codeBox.Size = UDim2.new(1, -20, 1, -60)
codeBox.Position = UDim2.new(0, 10, 0, 40)
codeBox.Text = ""
codeBox.ClearTextOnFocus = false
codeBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
codeBox.TextColor3 = Color3.new(1,1,1)
codeBox.Font = Enum.Font.Code
codeBox.TextSize = 18
codeBox.TextWrapped = true
local executeBtn = Instance.new("TextButton", execFrame)
executeBtn.Text = "Execute"
executeBtn.Size = UDim2.new(0, 100, 0, 30)
executeBtn.Position = UDim2.new(0, 10, 1, -40)
executeBtn.BackgroundColor3 = Color3.fromRGB(40, 120, 40)
executeBtn.TextColor3 = Color3.new(1,1,1)
executeBtn.Font = Enum.Font.SourceSansBold
executeBtn.TextSize = 18
executeBtn.MouseButton1Click:Connect(function()
local code = codeBox.Text
-- Здесь вставляй код для выполнения сервер-сайд (по твоему механизму)
print("Executing server-side code:\n"..code)
end)
local clearBtn = Instance.new("TextButton", execFrame)
clearBtn.Text = "Clear"
clearBtn.Size = UDim2.new(0, 100, 0, 30)
clearBtn.Position = UDim2.new(1, -110, 1, -40)
clearBtn.BackgroundColor3 = Color3.fromRGB(120, 40, 40)
clearBtn.TextColor3 = Color3.new(1,1,1)
clearBtn.Font = Enum.Font.SourceSansBold
clearBtn.TextSize = 18
clearBtn.MouseButton1Click:Connect(function()
codeBox.Text = ""
end)
else
print("No suspicious keywords found in "..remote:GetFullName())
end
end)
copyBtn.MouseButton1Click:Connect(function()
local code = ""
if remote:IsA("RemoteEvent") then
code = ("game:GetService('ReplicatedStorage'):WaitForChild('%s'):FireServer()"):format(remote.Name)
elseif remote:IsA("RemoteFunction") then
code = ("game:GetService('ReplicatedStorage'):WaitForChild('%s'):InvokeServer()"):format(remote.Name)
end
pcall(function()
setclipboard(code)
end)
print("Copied code to clipboard:\n"..code)
end)
end
RunService.Heartbeat:Wait()
local contentSize = UIListLayout.AbsoluteContentSize
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, contentSize.Y + 10)
end
SearchBox:GetPropertyChangedSignal("Text"):Connect(function()
updateRemoteList(SearchBox.Text)
end)
updateRemoteList("")



У меня лучше но с выбором ивента не получилось