在 LUA 中使用二进制文件进行异或操作

我正在尝试通过将二进制文件作为输入来创建一个异或二进制文件,执行异或操作并将其写入另一个文件中,以及一旦完成,需要通过读取 xor_file 作为输入并将其写入文件来反转整个过程,这将与原始文件相同。

我尝试以 HEX 格式读取文件,但在转换和将其写入新文件中时遇到了问题。

local out = assert(io.open(arg[2], "wb"))
local f = assert(io.open(arg[1], "rb"))
local block = 10
while true do
  local bytes = f:read(block)
  if not bytes then break end
  for b in string.gmatch (bytes, ".") do
    local value = string.format("%02X ", string.byte(b))
    io.write(value)
    out:write(value)
  end
end
assert(out:close())
点赞