Guest User

Untitled

a guest
Jul 23rd, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.99 KB | None | 0 0
  1. local target = ...
  2. if not target then
  3.   print("Usage: "..fs.getName(shell.getRunningProgram()).." [target]")
  4.   return
  5. end
  6.  
  7. local lastDumped = nil
  8. getfenv(parallel.waitForAny).os = setmetatable({pullEventRaw = function(...)
  9.   local i = 2
  10.   while true do
  11.     local success, result = pcall(function()
  12.       local fn = setfenv(i, getfenv(i))
  13.       return string.dump(fn)
  14.     end)
  15.     i = i + 1
  16.     if success then
  17.       lastDumped = result
  18.     else
  19.       if result:find("invalid level") then
  20.         break
  21.       end
  22.     end
  23.   end
  24.   getfenv(parallel.waitForAny).os = nil
  25.   return coroutine.yield(...)
  26. end}, {__index = os})
  27.  
  28. os.queueEvent("fake-event")
  29. os.pullEvent("fake-event")
  30.  
  31. getfenv(parallel.waitForAny).os = nil
  32.  
  33. if lastDumped then
  34.   print("Writing bios file...")
  35.  
  36.   local handle = fs.open(target, "wb")
  37.   for i=1,lastDumped:len() do
  38.     handle.write(lastDumped:byte(i))
  39.   end
  40.   handle.close()
  41.  
  42.   print("Successfully dumped (hopefully)!")
  43. else
  44.   print("Dump failed")
  45. end
Advertisement
Add Comment
Please, Sign In to add comment