注意が必要なのはloadstring
、関連する関数が lua コードと lua バイト コードの両方を受け入れることです。その呼び出しにloadstring
は、lua ソース コードではなく、バイト コンパイルされた lua が渡されます。
バイトコンパイルされた lua を簡単に入手できます。このような例を得ることができます
- lua ファイルを作成します。
- luac でコンパイルして lauc.out を生成する
- 16 進数ビューアーでファイルの内容を確認します。
空の lua ファイルの場合、次のようになります。
0000000: 1b4c 7561 5100 0104 0804 0800 0900 0000 .LuaQ...........
0000010: 0000 0000 4066 6f6f 2e6c 7561 0000 0000 ....@foo.lua....
0000020: 0000 0000 0000 0002 0201 0000 001e 0080 ................
0000030: 0000 0000 0000 0000 0001 0000 0001 0000 ................
0000040: 0000 0000 0000 0000 00 .........
最初の 8 バイトを 10 進数に変換すると、次のようになります。
27, 76, 117, 97, 81, 0, 1, 4
文字列内のエスケープ文字と一致します。
チャンク内のコードが何をするかについてさらに詳細が必要な場合は、チャンクをファイルに書き出し、lua 逆コンパイル ツールを使用して調査する必要があります。ChunkSpy、luadec15、およびunluacは両方とも lua wikiツール ページに記載されています。
あなたが提供したチャンクには、それをさらに進めるのに十分なコンテンツがありません。切り捨てられたと思いますか?