0% found this document useful (0 votes)
42 views9 pages

音频窃取器gui

The document is a script for a Roblox audio logger GUI that allows users to log and manage audio assets in the game. It includes functionalities for minimizing, closing, saving audio data to files, and auto-scanning for new sounds. The script also handles user interactions and notifications within the game environment.

Uploaded by

3198200359
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views9 pages

音频窃取器gui

The document is a script for a Roblox audio logger GUI that allows users to log and manage audio assets in the game. It includes functionalities for minimizing, closing, saving audio data to files, and auto-scanning for new sounds. The script also handles user interactions and notifications within the game environment.

Uploaded by

3198200359
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

--演示:https://www.youtube.com/watch?

v=phKlINcOw70
--熟肉演示:https://b23.tv/r0sXki6
aa = game:GetObjects("rbxassetid://01997056190")[1]
aa.Parent = game.CoreGui
wait(0.2)
GUI = aa.PopupFrame.PopupFrame
pos = 0

ignore = {
"rbxasset://sounds/action_get_up.mp3",
"rbxasset://sounds/uuhhh.mp3",
"rbxasset://sounds/action_falling.mp3",
"rbxasset://sounds/action_jump.mp3",
"rbxasset://sounds/action_jump_land.mp3",
"rbxasset://sounds/impact_water.mp3",
"rbxasset://sounds/action_swim.mp3",
"rbxasset://sounds/action_footsteps_plastic.mp3"
}

GUI.Close.MouseButton1Click:connect(function()
GUI:TweenSize(UDim2.new(0, 360, 0, 0),"Out","Quad",0.5,true) wait(0.6)
GUI.Parent:TweenSize(UDim2.new(0, 0, 0, 20),"Out","Quad",0.5,true) wait(0.6)
aa:Destroy()
end)

local min = false


GUI.Minimize.MouseButton1Click:connect(function()
if min == false then
GUI:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true) min =
true
else
GUI:TweenSize(UDim2.new(0, 360, 0, 260),"Out","Quad",0.5,true) min =
false
end
end)

function printTable(tbl)
if type(tbl) ~= 'table' then return nil end
local depthCount = -15

local function run(val, inPrefix)


depthCount = depthCount + 15
-- if inPrefix then print(string.rep(' ', depthCount) .. '{') end
for i,v in pairs(val) do
if type(v) == 'table' then
-- print(string.rep(' ', depthCount) .. ' [' .. tostring(i)
.. '] = {')
GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ',
depthCount) .. ' [' .. tostring(i) .. '] = {'
run(v, false)
wait()
else
-- print(string.rep(' ', depthCount) .. ' [' .. tostring(i)
.. '] = ' .. tostring(v))
GUI.Store.Text = GUI.Store.Text..'\n'..string.rep(' ',
depthCount) .. ' [' .. tostring(i) .. '] = ' .. tostring(v)
wait()
end
end
-- print(string.rep(' ', depthCount) .. '}')
depthCount = depthCount - 15
end
run(tbl, true)
end

function refreshlist()
pos = 0
GUI.Logs.CanvasSize = UDim2.new(0,0,0,0)
for i,v in pairs(GUI.Logs:GetChildren()) do
v.Position = UDim2.new(0,0,0, pos)
GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
pos = pos+20
end
end

function FindTable(Table, Name)


for i,v in pairs(Table) do
if v == Name then
return true
end end
return false
end

function writefileExploit()
if writefile then
return true
end
end

writeaudio = {}
running = false
GUI.SS.MouseButton1Click:connect(function()
if writefileExploit() then
if running == false then
GUI.Load.Visible = true running = true
GUI.Load:TweenSize(UDim2.new(0, 360, 0,
20),"Out","Quad",0.5,true) wait(0.3)
for _, child in pairs(GUI.Logs:GetChildren()) do
if child:FindFirstChild('ImageButton') then local bttn =
child:FindFirstChild('ImageButton')
if bttn.BackgroundTransparency == 0 then
writeaudio[#writeaudio + 1] = {NAME =
child.NAME.Value, ID = child.ID.Value}
end
end
end
GUI.Store.Visible = true
printTable(writeaudio)
wait(0.2)
local filename = 0
local function write()
local file
pcall(function() file =
readfile("Audios"..filename..".txt") end)
if file then
filename = filename+1
write()
else
local text = tostring(GUI.Store.Text)
text = text:gsub('\n', '\r\n')
writefile("Audios"..filename..".txt", text)
end
end
write()
for rep = 1,10 do
GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency
+ 0.1
wait(0.05)
end
GUI.Load.Visible = false
GUI.Load.BackgroundTransparency = 0
GUI.Load.Size = UDim2.new(0, 0, 0, 20)
running = false
GUI.Store.Visible = false
GUI.Store.Text = ''
writeaudio = {}
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Saved audios\n(Audios'..filename..'.txt)',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end
else
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Exploit cannot writefile :(',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end
end)

GUI.SA.MouseButton1Click:connect(function()
if writefileExploit() then
if running == false then
GUI.Load.Visible = true running = true
GUI.Load:TweenSize(UDim2.new(0, 360, 0,
20),"Out","Quad",0.5,true) wait(0.3)
for _, child in pairs(GUI.Logs:GetChildren()) do
writeaudio[#writeaudio + 1] = {NAME = child.NAME.Value, ID
= child.ID.Value}
end
GUI.Store.Visible = true
printTable(writeaudio)
wait(0.2)
local filename = 0
local function write()
local file
pcall(function() file =
readfile("Audios"..filename..".txt") end)
if file then
filename = filename+1
write()
else
local text = tostring(GUI.Store.Text)
text = text:gsub('\n', '\r\n')
writefile("Audios"..filename..".txt", text)
end
end
write()
for rep = 1,10 do
GUI.Load.BackgroundTransparency =
GUI.Load.BackgroundTransparency + 0.1
wait(0.05)
end
GUI.Load.Visible = false
GUI.Load.BackgroundTransparency = 0
GUI.Load.Size = UDim2.new(0, 0, 0, 20)
running = false
GUI.Store.Visible = false
GUI.Store.Text = ''
writeaudio = {}
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Saved audios\n(Audios'..filename..'.txt)',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end
else
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Exploit cannot writefile :(',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end
end)

selectedaudio = nil
function getaudio(place)
if running == false then
GUI.Load.Visible = true running = true
GUI.Load:TweenSize(UDim2.new(0, 360, 0, 20),"Out","Quad",0.5,true)
wait(0.3)
for _, child in pairs(place:GetDescendants()) do
spawn(function()
if child:IsA("Sound") and not
GUI.Logs:FindFirstChild(child.SoundId) and not FindTable(ignore,child.SoundId) then
local id = string.match(child.SoundId,
"rbxasset://sounds.+") or string.match(child.SoundId, "&hash=.+") or
string.match(child.SoundId, "%d+")
if id ~= nil then
local newsound = GUI.Audio:Clone()
if string.sub(id, 1, 6) == "&hash=" or
string.sub(id, 1, 7) == "&0hash=" then
id = string.sub(id, (string.sub(id, 1, 6)
== "&hash=" and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
newsound.ImageButton.Image =
'rbxassetid://1453863294'
end
newsound.Parent = GUI.Logs
newsound.Name = child.SoundId
newsound.Visible = true
newsound.Position = UDim2.new(0,0,0, pos)
GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
pos = pos+20
local function findname()
Asset =
game:GetService("MarketplaceService"):GetProductInfo(id)
end
local audioname = 'error'
local success, message = pcall(findname)
if success then
newsound.TextLabel.Text = Asset.Name
audioname = Asset.Name
else
newsound.TextLabel.Text = child.Name
audioname = child.Name
end
local data = Instance.new('StringValue')
data.Parent = newsound data.Value = child.SoundId data.Name = 'ID'
local data2 = Instance.new('StringValue')
data2.Parent = newsound data2.Value = audioname data2.Name = 'NAME'
local soundselected = false

newsound.ImageButton.MouseButton1Click:Connect(function()
if GUI.Info.Visible ~= true then
if soundselected == false then
soundselected = true

newsound.ImageButton.BackgroundTransparency = 0
else soundselected = false

newsound.ImageButton.BackgroundTransparency = 1
end
end
end)

newsound.Click.MouseButton1Click:Connect(function()
if GUI.Info.Visible ~= true then
GUI.Info.TextLabel.Text = "Name:
" ..audioname.. "\n\nID: " .. child.SoundId .. "\n\nWorkspace Name: " .. child.Name
selectedaudio = child.SoundId
GUI.Info.Visible = true
end
end)
end
end
end)
end
end
for rep = 1,10 do
GUI.Load.BackgroundTransparency = GUI.Load.BackgroundTransparency + 0.1
wait(0.05)
end
GUI.Load.Visible = false
GUI.Load.BackgroundTransparency = 0
GUI.Load.Size = UDim2.new(0, 0, 0, 20)
running = false
end

GUI.All.MouseButton1Click:connect(function() getaudio(game)end)
GUI.Workspace.MouseButton1Click:connect(function() getaudio(workspace)end)
GUI.Lighting.MouseButton1Click:connect(function()
getaudio(game:GetService('Lighting'))end)
GUI.SoundS.MouseButton1Click:connect(function()
getaudio(game:GetService('SoundService'))end)
GUI.Clr.MouseButton1Click:connect(function()
for _, child in pairs(GUI.Logs:GetChildren()) do
if child:FindFirstChild('ImageButton') then local bttn =
child:FindFirstChild('ImageButton')
if bttn.BackgroundTransparency == 1 then
bttn.Parent:Destroy()
refreshlist()
end
end
end
end)
GUI.ClrS.MouseButton1Click:connect(function()
for _, child in pairs(GUI.Logs:GetChildren()) do
if child:FindFirstChild('ImageButton') then local bttn =
child:FindFirstChild('ImageButton')
if bttn.BackgroundTransparency == 0 then
bttn.Parent:Destroy()
refreshlist()
end
end
end
end)
autoscan = false
GUI.AutoScan.MouseButton1Click:connect(function()
if autoscan == false then autoscan = true
GUI.AutoScan.BackgroundTransparency = 0.5
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Auto Scan ENABLED',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
else autoscan = false
GUI.AutoScan.BackgroundTransparency = 0
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Auto Scan DISABLED',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end
end)

game.DescendantAdded:connect(function(added)
wait()
if autoscan == true and added:IsA('Sound') and not
GUI.Logs:FindFirstChild(added.SoundId) and not FindTable(ignore,added.SoundId) then
local id = string.match(added.SoundId, "rbxasset://sounds.+") or
string.match(added.SoundId, "&hash=.+") or string.match(added.SoundId, "%d+")
if id ~= nil then
local newsound = GUI.Audio:Clone()
if string.sub(id, 1, 6) == "&hash=" or string.sub(id, 1, 7)
== "&0hash=" then
id = string.sub(id, (string.sub(id, 1, 6) == "&hash="
and 7) or (string.sub(id, 1, 7) == "&0hash=" and 8), string.len(id))
newsound.ImageButton.Image =
'rbxassetid://1453863294'
end
local scrolldown = false
newsound.Parent = GUI.Logs
newsound.Name = added.SoundId
newsound.Visible = true
newsound.Position = UDim2.new(0,0,0, pos)
if GUI.Logs.CanvasPosition.Y ==
GUI.Logs.CanvasSize.Y.Offset - 230 then
scrolldown = true
end
GUI.Logs.CanvasSize = UDim2.new(0,0,0, pos+20)
pos = pos+20
local function findname()
Asset =
game:GetService("MarketplaceService"):GetProductInfo(id)
end
local audioname = 'error'
local success, message = pcall(findname)
if success then
newsound.TextLabel.Text = Asset.Name
audioname = Asset.Name
else
newsound.TextLabel.Text = added.Name
audioname = added.Name
end
local data = Instance.new('StringValue') data.Parent =
newsound data.Value = added.SoundId data.Name = 'ID'
local data2 = Instance.new('StringValue') data2.Parent =
newsound data2.Value = audioname data2.Name = 'NAME'
local soundselected = false
newsound.ImageButton.MouseButton1Click:Connect(function()
if GUI.Info.Visible ~= true then
if soundselected == false then soundselected =
true

newsound.ImageButton.BackgroundTransparency = 0
else soundselected = false

newsound.ImageButton.BackgroundTransparency = 1
end
end
end)
newsound.Click.MouseButton1Click:Connect(function()
if GUI.Info.Visible ~= true then
GUI.Info.TextLabel.Text = "Name:
" ..audioname.. "\n\nID: " .. added.SoundId .. "\n\nWorkspace Name: " .. added.Name
selectedaudio = added.SoundId
GUI.Info.Visible = true
end
end)
--230'
if scrolldown == true then
GUI.Logs.CanvasPosition = Vector2.new(0,
9999999999999999999999999999999999999999999, 0, 0)
end
end
end
end)

GUI.Info.Copy.MouseButton1Click:Connect(function()
if pcall(function() Synapse:Copy(selectedaudio) end) then
else
local clip = setclipboard or Clipboard.set
clip(selectedaudio)
end
game:FindService('StarterGui'):SetCore('SendNotification', {
Title = 'Audio Logger',
Text = 'Copied to clipboard',
Icon = 'http://www.roblox.com/asset/?id=176572847',
Duration = 5,
})
end)

GUI.Info.Close.MouseButton1Click:Connect(function()
GUI.Info.Visible = false
for _, sound in
pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
if sound.Name == 'SampleSound' then
sound:Destroy()
end
end
GUI.Info.Listen.Text = 'Listen'
end)

GUI.Info.Listen.MouseButton1Click:Connect(function()
if GUI.Info.Listen.Text == 'Listen' then
local samplesound = Instance.new('Sound') samplesound.Parent =
game:GetService('Players').LocalPlayer.PlayerGui
samplesound.Looped = true samplesound.SoundId = selectedaudio
samplesound:Play() samplesound.Name = 'SampleSound'
samplesound.Volume = 5
GUI.Info.Listen.Text = 'Stop'
else
for _, sound in
pairs(game:GetService('Players').LocalPlayer.PlayerGui:GetChildren()) do
if sound.Name == 'SampleSound' then
sound:Destroy()
end
end
GUI.Info.Listen.Text = 'Listen'
end
end)

function drag(gui)
spawn(function()
local UserInputService = game:GetService("UserInputService")
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
gui:TweenPosition(UDim2.new(startPos.X.Scale, startPos.X.Offset +
delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y), "InOut", "Quart", 0.04,
true, nil)
end
gui.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or
input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = gui.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
gui.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or
input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end)
end
drag(aa.PopupFrame)

You might also like