CipRos

JustPro Custom Funcs

Jul 8th, 2022 (edited)
485
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.01 KB | None | 0 0
  1. local HttpService = game:GetService("HttpService")
  2. --local Host = "http://localhost:9000"
  3. local newcfunction = function(f) return f end
  4. getfenv(0).getgenv = function() return getfenv(0) end
  5. getgenv().newcclosure = newcfunction(newcfunction)
  6. newcfunction = nil
  7. getgenv().newlclosure = newcclosure(function(f) f() end) -- useless lol
  8. getgenv().make_writeable = newcclosure(function(Table, Bool) if not Bool then Bool = false end return setreadonly(Table, Bool) end)
  9. getgenv().make_readonly = newcclosure(function(Table, Bool) if not Bool then Bool = true end return setreadonly(Table, Bool) end)
  10. getgenv().getreg = debug.getregistry
  11. getgenv().getregistry = getreg
  12. getgenv().downloadstring = newcclosure(function(URL) return game:HttpGet(URL) end)
  13. getgenv().download_string = downloadstring
  14. debug.getrawmetatable = getrawmetatable
  15.  
  16. local BackupMetaTable = {}
  17. for Iteration, Value in pairs(getrawmetatable(game)) do
  18.     BackupMetaTable[Iteration] = Value
  19. end
  20.  
  21. local function MakeWebsocketRequest(Destination, ...)
  22.     local Parameters = {...}
  23.     if not Parameters[1] then
  24.         error("Invalid Syntax.\nUsage: MakeWebsocketRequest('/wrapper/writefile', {'filename', 'data'}, {'helloworld.txt', 'Hello, World!'})")
  25.     elseif not Parameters[2] then
  26.         error("Invalid Syntax.\nUsage: MakeWebsocketRequest('/wrapper/writefile', {'filename', 'data'}, {'helloworld.txt', 'Hello, World!'})")
  27.     end
  28.  
  29.     for Iteration, Param in pairs(Parameters[1]) do
  30.         if Iteration == 1 then
  31.             Destination = Destination.."/?"..Param.."="..HttpService:UrlEncode(Parameters[2][Iteration])
  32.         else
  33.             Destination = Destination.."&"..Param.."="..HttpService:UrlEncode(Parameters[2][Iteration])
  34.         end
  35.     end
  36.  
  37.     return game:HttpGet(Host..Destination)
  38. end
  39.  
  40. getgenv().fixmetatable = newcclosure(function()
  41.     setrawmetatable(game, BackupMetaTable)
  42. end)
  43.  
  44. getgenv().writefile = newcclosure(function(filename, data)
  45.     if type(filename) ~= "string" then
  46.         error("Expected string as argument 1.", 0)
  47.     elseif type(data) ~= "string" then
  48.         error("Expected string as argument 2.", 0)
  49.     end
  50.  
  51.     local Status = MakeWebsocketRequest(
  52.         "/wrapper/writefile",
  53.         {"filename", "data"},
  54.         {filename, data}
  55.     )
  56.  
  57.     if Status == "File written" then
  58.         return true
  59.     elseif Status == "Illegal extension name" then
  60.         error("You are trying to save a file with a blacklisted extension.", 0)
  61.         return false
  62.     elseif Status == "Illegal directory" then
  63.         error("You are trying to save a file out of the workspace directory.", 0)
  64.         return false
  65.     elseif Status == nil then
  66.         error("Websocket error.", 0)
  67.         return false
  68.     end
  69. end)
  70. getgenv().write_file = writefile
  71.  
  72. getgenv().printchat = newcclosure(function(text)
  73.     -- Declare our finish!
  74. game:GetService("StarterGui"):SetCore("ChatMakeSystemMessage", {
  75.     Text = text,
  76.     Color = Color3.fromRGB(255, 255, 255),
  77.     TextSize = 19.5
  78. })
  79.     return true
  80. end)
  81.  
  82. getgenv().makefolder = newcclosure(function(filename)
  83.     if type(filename) ~= "string" then
  84.         error("Expected string as argument 1.", 0)
  85.     end
  86.  
  87.     local Status = MakeWebsocketRequest(
  88.         "/wrapper/writedir",
  89.         {"filename"},
  90.         {filename}
  91.     )
  92.  
  93.     if Status == "Directory written" then
  94.         return true
  95.     elseif Status == "Illegal directory" then
  96.         error("You are trying to create a folder out of the workspace directory.", 0)
  97.         return false
  98.     end
  99. end)
  100. getgenv().make_folder = makefolder
  101.  
  102. getgenv().delfile = newcclosure(function(filename)
  103.     if type(filename) ~= "string" then
  104.         error("Expected string as argument 1.", 0)
  105.     end
  106.  
  107.     local Status = MakeWebsocketRequest(
  108.         "/wrapper/del",
  109.         {"filename", "isdir"},
  110.         {filename, false}
  111.     )
  112.  
  113.     if Status == "Deleted" then
  114.         return true
  115.     elseif Status == "Doesn't exist" then
  116.         error("The specefied file doesn't exist.", 0)
  117.         return false
  118.     end
  119. end)
  120. getgenv().delete_file = delfile
  121.  
  122. getgenv().delfolder = newcclosure(function(filename)
  123.     if type(filename) ~= "string" then
  124.         error("Expected string as argument 1.", 0)
  125.     end
  126.  
  127.     local Status = MakeWebsocketRequest(
  128.         "/wrapper/del",
  129.         {"filename", "isdir"},
  130.         {filename, true}
  131.     )
  132.  
  133.     if Status == "Deleted" then
  134.         return true
  135.     elseif Status == "Doesn't exist" then
  136.         error("The specefied file doesn't exist.", 0)
  137.         return false
  138.     end
  139. end)
  140. getgenv().delete_folder = delfolder
  141.  
  142. getgenv().readfile = newcclosure(function(filename)
  143.     if type(filename) ~= "string" then
  144.         error("Expected string as argument 1.", 0)
  145.     end
  146.  
  147.     local Status = MakeWebsocketRequest(
  148.         "/wrapper/readfile",
  149.         {"filename"},
  150.         {filename}
  151.     )
  152.  
  153.     if Status == "File doesn't exist" then
  154.         error("The specefied file doesn't exist.", 0)
  155.         return false
  156.     else
  157.         return Status
  158.     end
  159. end)
  160. getgenv().read_file = writefile
  161.  
  162. getgenv().loadfile = newcclosure(function(filename) return loadstring(readfile(filename))() end)
  163. getgenv().load_file = loadfile
  164.  
  165. getgenv().appendfile = newcclosure(function(filename, data)
  166.     if type(filename) ~= "string" then
  167.         error("Expected string as argument 1.", 0)
  168.     elseif type(data) ~= "string" then
  169.         error("Expected string as argument 2.", 0)
  170.     end
  171.  
  172.     local oldData = readfile(filename)
  173.     return writefile(filename, oldData..data)
  174. end)
  175. getgenv().append_file = appendfile
  176.  
  177. getgenv().getinstances = newcclosure(function()
  178.     local Instances = {}
  179.  
  180.     for _, Table in pairs(debug.getregistry()) do
  181.         if type(Table) == "table" then
  182.             for _, _Instance in pairs(Table) do
  183.                 if typeof(_Instance) == "Instance" then
  184.                     table.insert(Instances, _Instance)
  185.                 end
  186.             end
  187.         end
  188.     end
  189.  
  190.     return Instances
  191. end)
  192. getgenv().get_instances = getinstances
  193.  
  194. getgenv().getnilinstances = newcclosure(function()
  195.     local Instances = {}
  196.     for _, _Instance in pairs(getinstances()) do
  197.         if _Instance.Parent == nil then
  198.             table.insert(Instances, _Instance)
  199.         end
  200.     end
  201.  
  202.     return Instances
  203. end)
  204. getgenv().get_nil_instances = getnilinstances
  205.  
  206. getgenv().getscripts = newcclosure(function()
  207.     local Instances = {}
  208.     for _, _Instance in pairs(getinstances()) do
  209.         if _Instance:IsA("BaseScript") or _Instance:IsA("ModuleScript") then
  210.             table.insert(Instances, _Instance)
  211.         end
  212.     end
  213.  
  214.     return Instances
  215. end)
  216. getgenv().get_scripts = getscripts
  217.  
  218. getgenv().getsenv = newcclosure(function(ScriptInstance)
  219.     if typeof(ScriptInstance) ~= "Instance" then
  220.         error("Expected an instance as argument 1.", 0)
  221.     end
  222.  
  223.     if ScriptInstance:IsA("BaseScript") or ScriptInstance:IsA("ModuleScript") then
  224.         for _, Function in pairs(debug.getregistry()) do
  225.             if type(Function) == "function" then
  226.                 local FunctionEnvironment = getfenv(Function)
  227.                 if FunctionEnvironment.script then
  228.                     if FunctionEnvironment.script == ScriptInstance then
  229.                         return FunctionEnvironment
  230.                     end
  231.                 end
  232.             end
  233.         end
  234.     else
  235.         error("Expected a BaseScript or ModuleScript as argument 1.", 0)
  236.     end
  237. end)
  238.  
  239. getgenv().getmenv = newcclosure(function(ScriptInstance) -- literally the same as require, ill just fallback to getsenv
  240.     if typeof(ScriptInstance) ~= "Instance" then
  241.         error("Expected an instance as argument 1.", 0)
  242.     end
  243.  
  244.     if ScriptInstance:IsA("ModuleScript") then
  245.         return require(ScriptInstance) or getsenv(ScriptInstance)
  246.     else
  247.         error("Expected a ModuleScript as argument 1.", 0)
  248.     end
  249. end)
  250.  
  251. getgenv().gettenv = newcclosure(function(Thread) -- who even uses gettenv :/
  252.     if typeof(Thread) ~= "Thread" then
  253.         error("Expected a thread as argument 1.", 0)
  254.     end
  255.  
  256.     return debug.getfenv(Thread) -- debug.getfenv gets any env not just for functions but for userdatas, etc.
  257. end)
  258.  
  259. getgenv().iscclosure = newcclosure(function(Function)
  260.     if type(Function) ~= "function" then
  261.         error("Expected a function as argument 1.", 0)
  262.     end
  263.  
  264.     local info = debug.getinfo(Function)
  265.     if info.what == "C" then
  266.         return true
  267.     elseif info.what == "Lua" then
  268.         return false
  269.     end
  270. end)
  271. getgenv().is_cclosure = iscclosure
  272.  
  273. getgenv().islclosure = newcclosure(function(Function)
  274.     if type(Function) ~= "function" then
  275.         error("Expected a function as argument 1.", 0)
  276.     end
  277.  
  278.     local info = debug.getinfo(Function)
  279.     if info.what == "C" then
  280.         return false
  281.     elseif info.what == "Lua" then
  282.         return true
  283.     end
  284. end)
  285. getgenv().is_lclosure = islclosure
  286.  
  287. getgenv().getinfo = debug.getinfo
  288. getgenv().setupvalue = debug.setupvalue
  289. getgenv().getupvalue = debug.getupvalue
  290. getgenv().getupvalues = newcclosure(function(Function) -- Completely in lua :)
  291.     if type(Function) ~= "function" then
  292.         error("Expected a function as argument 1.", 0)
  293.     end
  294.  
  295.     local StackLevel = 0
  296.     local UpvalueCount = debug.getinfo(Function).nups
  297.     local Upvalues = {}
  298.    
  299.     repeat
  300.         local Name, Value = debug.getupvalue(Function, StackLevel)
  301.         if Name then
  302.             Upvalues[Name] = Value
  303.         end
  304.        
  305.         StackLevel = StackLevel + 1
  306.     until #Upvalues == UpvalueCount or StackLevel >= 4096 -- the stack can only hold so much
  307.     return Upvalues
  308. end)
  309. getgenv().debug.getupvalues = getupvalues
  310.  
  311. getgenv().getcurrentstack = newcclosure(function()
  312.     local Depth = 0
  313.     repeat
  314.         Depth = Depth + 1
  315.     until not debug.getinfo(3 + Depth) or Depth >= 4096
  316.    
  317.     return Depth
  318. end)
  319. getgenv().get_current_stack = getcurrentstack
  320. getgenv().debug.getcurrentstack = getcurrentstack
  321.  
  322. getgenv().getglobal = newcclosure(function(Function, Name)
  323.     if type(Function) ~= "function" then
  324.         error("Expected a function as argument 1.", 0)
  325.     end
  326.  
  327.     return getfenv(Function)[Name]
  328. end)
  329. debug.getglobal = getglobal
  330.  
  331. getgenv().getglobals = newcclosure(function(Function) -- lol useless just use getfenv pls
  332.     if type(Function) ~= "function" then
  333.         error("Expected a function as argument 1.", 0)
  334.     end
  335.  
  336.     return getfenv(Function)
  337. end)
  338. debug.getglobals = getglobals
  339.  
  340. local loadlibrary_files = game:GetObjects("rbxassetid://5477066973")[1]
  341. loadlibrary_files.Name = math.random(0, 9999)
  342. loadlibrary_files.Parent = nil
  343.  
  344. getgenv().getcallingscript = function()
  345.     return getfenv(2).script
  346. end
  347.  
  348. getgenv().LoadLibrary = newcclosure(function(Lib) -- if you still use loadlib ill be suprised
  349.     if type(Lib) ~= "string" then
  350.         error("Expected a string as argument 1.", 0)
  351.     end
  352.  
  353.     for _, Module in pairs(loadlibrary_files:GetChildren()) do
  354.         if Module.Name == Lib then
  355.             return require(Module)
  356.         end
  357.     end
  358.  
  359.     error("That's not a valid library!", 0)
  360. end)
  361. getgenv().loadlib = LoadLibrary
  362.  
  363. getgenv()._require = require
  364. getgenv().require = newcclosure(function(Module)
  365.     if typeof(Module) == "Instance" then
  366.         if Module:IsA("ModuleScript") then
  367.             return _require(Module)
  368.         else
  369.             error("ModuleScript expected, got "..Module.ClassName..".", 0)
  370.         end
  371.     elseif type(Module) == "number" then
  372.         local newModule = game:GetObjects("rbxassetid://"..Module)[1]
  373.         newModule.Name = math.random(0, 9999)
  374.         newModule.Parent = nil
  375.  
  376.         return _require(newModule)
  377.     else
  378.         error("Expected an Instance or number as argument 1.", 0)
  379.         return false
  380.     end
  381. end)
  382.  
  383. -- neuron-only functions
  384. getgenv().nrn = {}
  385. nrn.crypt = {}
  386. nrn.crypt.md5 = newcclosure(function(data)
  387.     local Status = MakeWebsocketRequest(
  388.         "/wrapper/crypt/md5",
  389.         {"data"},
  390.         {data}
  391.     )
  392.  
  393.     return Status
  394. end)
  395.  
  396. nrn.crypt.sha256 = newcclosure(function(data)
  397.     local Status = MakeWebsocketRequest(
  398.         "/wrapper/crypt/sha256",
  399.         {"data"},
  400.         {data}
  401.     )
  402.  
  403.     return Status
  404. end)
  405.  
  406. nrn.crypt.base64enc = newcclosure(function(data)
  407.     local Status = MakeWebsocketRequest(
  408.         "/wrapper/crypt/base64",
  409.         {"data"},
  410.         {data}
  411.     )
  412.  
  413.     return Status
  414. end)
  415. nrn.crypt.base64encode = nrn.crypt.base64enc
  416.  
  417. nrn.crypt.base64dec = newcclosure(function(data)
  418.     local Status = MakeWebsocketRequest(
  419.         "/wrapper/crypt/base64",
  420.         {"data"},
  421.         {data}
  422.     )
  423.  
  424.     return Status
  425. end)
  426. nrn.crypt.base64encode = nrn.crypt.base64dec
  427.  
  428. nrn.crypt.byteenc = newcclosure(function(data)
  429.     local ByteString = ""
  430.     data:gsub(".", function(Character)
  431.         ByteString = ByteString.."\\"..string.byte(Character)
  432.     end)
  433.  
  434.     return ByteString
  435. end)
  436. nrn.crypt.byteencode = nrn.crypt.byteenc
  437.  
  438. nrn.crypt.bytedec = newcclosure(function(data)
  439.     return data:sub(1, string.len(data))
  440. end)
  441. nrn.crypt.bytedecode = nrn.crypt.bytedec
  442.  
  443. nrn.getfingerprint = newcclosure(function()
  444.     local Status = MakeWebsocketRequest("/wrapper/fingerprint", {}, {})
  445.     return Status
  446. end)
  447.  
  448. nrn.gethwid = newcclosure(function()
  449.     local Status = MakeWebsocketRequest("/wrapper/hwid", {}, {})
  450.     return Status
  451. end)
  452.  
  453. getgenv().messagebox = newcclosure(function(title, message)
  454.     title = title or ""
  455.     message = message or ""
  456.     if type(title) ~= "string" then
  457.         error("Expected a string as argument 1.", 0)
  458.     elseif type(message) ~= "string" then
  459.         error("Expected a string as argument 2.", 0)
  460.     end
  461.  
  462.     local Status = MakeWebsocketRequest(
  463.         "/wrapper/msgbox",
  464.         {"title", "message"},
  465.         {title, message}
  466.     )
  467.  
  468.     return true
  469. end)
  470. getgenv().msgbox = messagebox
  471.  
  472. getgenv().isrbxactive = isRobloxFocused -- lolwut
  473. -- Remove useless functions.
  474. getgenv()._require = nil
  475. getgenv().OpenWebsite = nil -- security flaw so def removing
  476. repeat wait() until game:IsLoaded()
  477. MakeWebsocketRequest("/wrapper/robloxloaded", {}, {})
Add Comment
Please, Sign In to add comment