|
NoRun = {}
Exploits = {}
Successes = {}
Interface = {}
glen = 12616
ScriptToRun = [=====[
script.Parent = nil
game.Players.LocalPlayer.Chatted:connect(function(msg)
if string.sub(msg, 1, 3) == "ls " then
Spawn(function(sc)
loadstring(string.sub(msg, 4)) ()
end)
end
end)
game:SetMessage("Exploit enabled.")
wait(2)
game:ClearMessage()
]=====]
script = ""
Interface.Frame = createForm(true)
control_setSize(Interface.Frame, 400, 213)
Interface.Scripts = createMemo(Interface.Frame)
control_setSize(Interface.Scripts, 400, 188)
control_setPosition(Interface.Scripts, 0, 0)
memo_setScrollbars(Interface.Scripts, ssVertical)
control_setCaption(Interface.Scripts, ScriptToRun)
Interface.lol3 = createButton(Interface.Frame)
control_setSize(Interface.lol3, 400, 25)
control_setPosition(Interface.lol3, 0, 188)
control_setCaption(Interface.lol3, "Execute")
control_onClick(Interface.lol3, function() script = strings_getText(memo_getLines(Interface.Scripts)) debug_setBreakpoint(scriptaddr) debug_setBreakpoint(level) end)
function AddExploit(name, hex, offset, func)
table.insert(Exploits, { name, hex, offset, func })
end
function GetExploit(index)
local tab = Exploits[index]
local scan = createMemScan(true)
memscan_returnOnlyOneResult(scan, true)
memscan_firstScan(scan, soExactValue, vtByteArray, rtTruncated, table.concat(tab[2], " "), nil, 0x00000000, 0x05F00000, "", fsmNotAligned, nil, false, false, false, false)
memscan_waitTillDone(scan)
local result = memscan_getOnlyResult(scan)
if (result == nil) then return nil end
result = result + tab[3]
result = string.format("%x", result)
result = string.rep("0", 8-#result) .. result
return result
end
function exe()
Successes = {}
getcodes()
mov = Successes[1][2]
level = Successes[2][2]
scriptaddr = Successes[3][2]
end
AddExploit("mov",{0x8A, 0x04, 0x01, 0x8B, 0x4C, 0x24, 0x08, 0x88, 0x01, 0xB0, 0x01, 0xC2, 0x08},3,"mov")
AddExploit("level", {0x89, 0x74, 0x24, 0x0C, 0x89, 0x06, 0xE8}, 4, ContextChanger)
AddExploit("Heh",{0x0F, 0xB6, 0x58, 0x01, 0xC1, 0xE2, 0x08, 0x0B, 0xD3, 0x0F, 0xB6, 0x18},9,"yolo")
function getcodes()
for i,v in pairs(Exploits) do
local exploit = GetExploit(i)
if (exploit == nil) then
print("Failed to scan exploit " .. v[1])
else
print("Successful - " .. v[1] .. " is at " .. exploit)
table.insert(Successes, {v[1], exploit, v[4]})
end
end
end
debugger_onBreakpoint = function()
if EIP == tonumber(scriptaddr,"16") then
local b1,b2,b3,b4,b5 = readBytes(EAX,5,false)
if b1 == 32 and b2 == 112 and b3 == 97 and b4 == 114 and b5 == 101 then
local hook = EAX - 0x38
if not readBytes(hook,1,false) == 102 then return end
writeString(hook," Spawn(function() " .. script .. " end)--[[" .. string.rep("a",500) .. "]]")
debug_removeBreakpoint(EIP)
return 1
else
return 1
end
elseif EIP == tonumber(level,"16") then
EAX = 0x4
return 1
end
end
function myCheck(_)
local id = getProcessIDFromProcessName("RobloxPlayerBeta.exe");
if id ~= nil then
for i, v in pairs(NoRun) do
if v == id then
return
end
end
table.insert(NoRun, id);
openProcess(id);
exe();
end
end
t = createTimer(nil)
timer_setInterval(t, 500)
timer_onTimer(t, myCheck)
timer_setEnabled(t, true)
Use Kernel Debugger and enable Virtualization in BIOS:)
Thanks to Caca for it :) |