Created
          December 24, 2014 00:35 
        
      - 
      
- 
        Save fnuecke/6bcbd66910b946b54ec7 to your computer and use it in GitHub Desktop. 
    Primitive remote code execution via OC network
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | local m=component.proxy(component.list("modem")()) | |
| m.open(2412) | |
| local function respond(...) | |
| local args=table.pack(...) | |
| pcall(function() m.broadcast(2412, table.unpack(args)) end) | |
| end | |
| local function receive() | |
| while true do | |
| local evt,_,_,_,_,cmd=computer.pullSignal() | |
| if evt=="modem_message" then return load(cmd) end | |
| end | |
| end | |
| while true do | |
| local result,reason=pcall(function() | |
| local result,reason=receive() | |
| if not result then return respond(reason) end | |
| respond(result()) | |
| end) | |
| if not result then respond(reason) end | |
| end | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | local component = require("component") | |
| local event = require("event") | |
| local modem = component.modem | |
| modem.open(2412) | |
| modem.broadcast(2412, "drone=component.proxy(component.list('drone')())") | |
| while true do | |
| local cmd=io.read() | |
| if not cmd then return end | |
| modem.broadcast(2412, cmd) | |
| print(select(6, event.pull(5, "modem_message"))) | |
| end | 
You need a wireless modem/network card, not a wired one (called "Network Card")
Also, edit the first line from "local m=component.proxy(component.list("modem")())" to "local m=component.proxy(component.list("modem"))())"
, because print(returnsfoo() will print returnsfoo(, which is an invalid lua command
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
            
Tried this and nothing happens when I parse commands.