루아 파일이 있습니다. 그것은 2 개의 파일, 하나의 "스크립트"파일, 하나의 "소스"파일을 읽습니다. lua 파일은 스크립트 파일을 해석하고 스크립트 파일의 일부 명령으로 소스 파일 (메모리)을 변경합니다. 그런 다음 수정 된 소스를 출력 파일로 출력합니다. 이것은 일종의 CR이 될 때까지 잘 작동합니다. 수정 된 소스가 CR 대신 CRLF로 수정됩니다. 이것은 많은 것들을 부러 뜨 렸고, 나는 이것을 고치는 법을 모른다. 루아 파일을 보냅니다.루아, CRLF 수정 CR
progargs = {...}
if #progargs ~= 3 then
print("Usage: patch <src> <script> <output>")
return "u didnt do it right"
end
opcodes = {
["\000"] = {
function(args)
local inp=outc:sub(pos,pos):byte()
strt={}
for j=1,#src do
table.insert(strt,outc:sub(j,j))
end
strt[pos]=string.char(inp-args[1])
outc=table.concat(strt,"")
end,
1
},
["\080"] = {
function(args)
local val = args[4] * 1 + args[3] * 256 + args[2] * 65536 + args[1] * 16777216
pos = val+1
end,
4
},
["\255"] = {
function(args)
local inp=outc:sub(pos,pos):byte()
strt={}
for j=1,#src do
table.insert(strt,outc:sub(j,j))
end
strt[pos]=string.char(inp+args[1])
outc=table.concat(strt,"")
end,
1
},
}
srcf = io.open(progargs[1])
src = srcf:read("*a")
srcf:close()
scrf = io.open(progargs[2])
scr = scrf:read("*a")
scrf:close()
i=1
pos=1
outc=src
while i<scr:len() do
local opc = scr:sub(i,i)
if opcodes[opc] ~= nil then
local argc = opcodes[opc][2]
local func = opcodes[opc][1]
local args = {}
for j=1,argc do
table.insert(args,scr:sub(i+j,i+j):byte())
end
func(args)
i=i+argc+1
else
print("unknown opcode xd fuck u")
i=i+1
end
end
print("doned")
outf = io.open(progargs[3], "w")
outf:write(outc)
outf:close()
이 문제를 해결하는 방법에 대해 알려 주시면 감사하겠습니다.
니스 * 알 수없는 연산 코드 * 메시지에서 당신은 거기에있다. –
@Michael 만 가장 좋은 – Epic8009