외교관계는 인간관계와 같이 끝이 없다. 한 가지 문제를 해결하면 또 다른 문제가 생기니까. ―제임스 레스턴(美 시사평론가)
* luac.lua 소스는 다음과 같습니다. (배포본에 포함된 소스에 버그가 있습니다. "w" -> "wb"로 고쳐서 이진화일형태로 열어야합니다)
string.dump()는 함수값에 담겨있는 루아 청크를 문자열로 바꾸어 반환합니다. (0이 중간에 끼어있을 수 있습니다만, string.len() 함수는 정상적으로 길이를 반환하는 것으로보아 길이를 따로 관리하는 듯합니다)
만일 특정 루아코드를 문자열로 덤프하고 싶으면 다음과 같이 합니다.
실험결과, 코드의 내용이 완벽하게 숨겨지지 않기 때문에(예: 주석문이 드러납니다) 덤프를 통한 이진방식으로 바꾸어도 용량이 줄어드는 경우는 거의 없습니다. 네트워크로 전송할 짤막한 길이의 코드라면 그냥 암호화된 코드 text자체를 보내는 것도 좋은 방법이라 생각됩니다.
-- bare-bones luac in Lua
-- usage: lua luac.lua file.lua
assert(arg[1]~=nil,"usage: lua luac.lua file.lua")
f=assert(io.open("luac.out","wb"))
f:write(string.dump(loadfile(arg[1])))
io.close(f)
dump_ = string.dump(loadstring([[..... 코드 내용 ....]]))dump_에 결과 덤프화일이 담겨있게 됩니다.









![[http]](/wiki/imgs/http.png)
