
KeylessUniversal

-- Product Purchase Vulnerability Demonstrator
-- Exploits improper purchase validation in vulnerable games
local Players = game:GetService("Players")
local MarketplaceService = game:GetService("MarketplaceService")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
-- Create ScreenGui
local gui = Instance.new("ScreenGui")
gui.Name = "ProductExploit"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
-- Try to parent to CoreGui for protection, fallback to PlayerGui
pcall(function()
gui.Parent = CoreGui
end)
if not gui.Parent then
gui.Parent = player:WaitForChild("PlayerGui")
end
-- Main Frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 400, 0, 350)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -175)
mainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = gui
-- Top Bar
local topBar = Instance.new("Frame")
topBar.Size = UDim2.new(1, 0, 0, 30)
topBar.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
topBar.BorderSizePixel = 0
topBar.Parent = mainFrame
-- Title
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -60, 1, 0)
title.Position = UDim2.new(0, 5, 0, 0)
title.BackgroundTransparency = 1
title.Text = "Product Exploit | Vulnerable Games Only"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.Font = Enum.Font.SourceSansBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = topBar
-- Minimize Button
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 25, 0, 25)
minimizeBtn.Position = UDim2.new(1, -55, 0, 2.5)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
minimizeBtn.Text = "-"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.TextScaled = true
minimizeBtn.Font = Enum.Font.SourceSansBold
minimizeBtn.Parent = topBar
-- Close Button
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 25, 0, 25)
closeBtn.Position = UDim2.new(1, -27, 0, 2.5)
closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextScaled = true
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.Parent = topBar
-- Content Frame (shown/hidden for minimize)
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -30)
contentFrame.Position = UDim2.new(0, 0, 0, 30)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame
-- Product ID Input
local idLabel = Instance.new("TextLabel")
idLabel.Size = UDim2.new(0, 100, 0, 30)
idLabel.Position = UDim2.new(0, 10, 0, 10)
idLabel.BackgroundTransparency = 1
idLabel.Text = "Product ID:"
idLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
idLabel.TextScaled = true
idLabel.Font = Enum.Font.SourceSans
idLabel.TextXAlignment = Enum.TextXAlignment.Left
idLabel.Parent = contentFrame
local idTextBox = Instance.new("TextBox")
idTextBox.Size = UDim2.new(0, 270, 0, 30)
idTextBox.Position = UDim2.new(0, 110, 0, 10)
idTextBox.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
idTextBox.BorderSizePixel = 0
idTextBox.Text = ""
idTextBox.PlaceholderText = "Enter Product ID or click item below"
idTextBox.TextColor3 = Color3.fromRGB(255, 255, 255)
idTextBox.TextScaled = true
idTextBox.Font = Enum.Font.SourceSans
idTextBox.ClearTextOnFocus = false
idTextBox.Parent = contentFrame
-- Buy Button
local buyBtn = Instance.new("TextButton")
buyBtn.Size = UDim2.new(0, 180, 0, 35)
buyBtn.Position = UDim2.new(0.5, -90, 0, 55)
buyBtn.BackgroundColor3 = Color3.fromRGB(60, 180, 60)
buyBtn.Text = "EXPLOIT PURCHASE"
buyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
buyBtn.TextScaled = true
buyBtn.Font = Enum.Font.SourceSansBold
buyBtn.Parent = contentFrame
-- Products List Frame
local listFrame = Instance.new("ScrollingFrame")
listFrame.Size = UDim2.new(1, -20, 0, 200)
listFrame.Position = UDim2.new(0, 10, 0, 100)
listFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
listFrame.BorderSizePixel = 0
listFrame.ScrollBarThickness = 4
listFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
listFrame.Parent = contentFrame
-- Status Label
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -20, 0, 20)
statusLabel.Position = UDim2.new(0, 10, 1, -25)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Ready | Only works on vulnerable games"
statusLabel.TextColor3 = Color3.fromRGB(100, 200, 100)
statusLabel.TextScaled = true
statusLabel.Font = Enum.Font.SourceSans
statusLabel.Parent = contentFrame
-- Dragging functionality
local dragging = false
local dragStart = nil
local startPos = nil
topBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end
end)
UserInputService.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.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
-- Load developer products
local function loadProducts()
statusLabel.Text = "Loading products..."
statusLabel.TextColor3 = Color3.fromRGB(200, 200, 100)
local success, products = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync():GetCurrentPage()
end)
if success and products then
local yPos = 5
for _, product in ipairs(products) do
local productBtn = Instance.new("TextButton")
productBtn.Size = UDim2.new(1, -10, 0, 40)
productBtn.Position = UDim2.new(0, 5, 0, yPos)
productBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
productBtn.BorderSizePixel = 0
productBtn.Text = string.format("%s | ID: %d | %d R$",
product.Name or "Unknown",
product.ProductId,
product.PriceInRobux or 0)
productBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
productBtn.TextScaled = true
productBtn.Font = Enum.Font.SourceSans
productBtn.Parent = listFrame
productBtn.MouseButton1Click:Connect(function()
idTextBox.Text = tostring(product.ProductId)
statusLabel.Text = "Selected: " .. (product.Name or "Unknown")
statusLabel.TextColor3 = Color3.fromRGB(100, 200, 100)
end)
yPos = yPos + 45
end
listFrame.CanvasSize = UDim2.new(0, 0, 0, yPos)
statusLabel.Text = "Products loaded | Select one"
statusLabel.TextColor3 = Color3.fromRGB(100, 200, 100)
else
statusLabel.Text = "No products found in this game"
statusLabel.TextColor3 = Color3.fromRGB(200, 100, 100)
end
end
-- Exploit purchase function
local function exploitPurchase()
local productId = tonumber(idTextBox.Text)
if not productId then
statusLabel.Text = "Invalid Product ID"
statusLabel.TextColor3 = Color3.fromRGB(200, 100, 100)
return
end
statusLabel.Text = "Attempting exploit..."
statusLabel.TextColor3 = Color3.fromRGB(200, 200, 100)
-- Primary exploit method - SignalPromptProductPurchaseFinished
local success1 = pcall(function()
MarketplaceService:SignalPromptProductPurchaseFinished(
player.UserId,
productId,
true
)
end)
-- Secondary method - Fire the signal directly
local success2 = pcall(function()
for _, connection in pairs(getconnections(MarketplaceService.PromptProductPurchaseFinished)) do
connection:Fire(player.UserId, productId, true)
end
end)
-- Tertiary method - Simulate receipt processing
local success3 = pcall(function()
local receipt = {
PlayerId = player.UserId,
ProductId = productId,
PurchaseId = HttpService:GenerateGUID(false),
CurrencyType = Enum.CurrencyType.Robux,
CurrencySpent = 0,
PlaceIdWherePurchased = game.PlaceId
}
-- Try to trigger any client-side handlers
for _, v in pairs(getgc()) do
if type(v) == "function" then
local info = debug.getinfo(v)
if info.name and string.find(info.name:lower(), "receipt") then
pcall(v, receipt)
end
end
end
end)
if success1 or success2 or success3 then
statusLabel.Text = "Exploit sent! Check inventory"
statusLabel.TextColor3 = Color3.fromRGB(100, 200, 100)
else
statusLabel.Text = "Game not vulnerable - uses ProcessReceipt"
statusLabel.TextColor3 = Color3.fromRGB(200, 100, 100)
end
end
-- Button connections
buyBtn.MouseButton1Click:Connect(exploitPurchase)
closeBtn.MouseButton1Click:Connect(function()
gui:Destroy()
end)
local minimized = false
minimizeBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
contentFrame.Visible = false
mainFrame.Size = UDim2.new(0, 400, 0, 30)
minimizeBtn.Text = "+"
else
contentFrame.Visible = true
mainFrame.Size = UDim2.new(0, 400, 0, 350)
minimizeBtn.Text = "-"
end
end)
-- Load products on start
spawn(loadProducts)
-- Notification
game.StarterGui:SetCore("SendNotification", {
Title = "Product Exploit Loaded",
Text = "Only works on games with improper purchase handling",
Duration = 5
})



yooo