LuaForge Project Page: http://luaforge.net/projects/chunkspy/
ChunkSpy is a tool to disassemble a Lua 5 binary chunk into a
verbose listing that can then be studied. Its output bears a
resemblance to the output listing of assemblers. I wanted
something that can tell me in great detail what goes on inside a
Lua binary chunk file, not just the instructions. It is intended
to be a tool for learning Lua internals as well.
ChunkSpy is contained in a single Lua file, ChunkSpy.lua, so that it is very portable and very customizable; there are no C source files to compile. All you need is a copy of the Lua command line executable, lua, plus optionally the binary chunk compiler, luac, to generate those binary chunk files.
I have also written a brief guide to all Lua 5 virtual machine
instructions, for those who need such things: A No-Frills
Introduction to Lua 5.1 VM Instructions (available for version
5.0.2 and version 5.1; please follow the document links on the page for
the PDF and ODT files.) ChunkBake is a
Lua 5 assembler which
If you want to disassemble to source code, try LuaDec by Hisham
ChunkSpy can do the following:
This is a beta release, so it is NOT bug-free. Everything was done on self-compiled Lua 5.0.2 and Lua 5.1 executables, on Win32. Bug reports are welcome, as are enhancements. Please see the README in the release for more information on its features and limitations. Feedback and contributions are welcome.
You can get all the ChunkSpy files at LuaForge: http://luaforge.net/projects/chunkspy/
Latest version: ChunkSpy 0.9.8 (66KB
zip) is the Lua version.
Win32 binary (143KB zip) available for version 0.9.7 at the moment.
0.9.8. Complete support for Lua 5.1.
2006-03-13: Added A No-Frills Introduction to Lua 5.1 VM Instructions (in ODT or PDF)
2006-02-21: Updated A No-Frills Introduction to Lua 5 VM Instructions (in ODT or PDF)
2005-06-05: ChunkSpy 0.9.7. Experimental support for Lua 5.1wk6.
2005-03-25: ChunkSpy 0.9.6. Fixed OP_NEWTABLE decoding for Lua 5.1wk5 disassembler.
2005-03-03: ChunkSpy 0.9.5. Experimental support for Lua 5.1wk4. Upcoming Lua 5.1 support will be in the form of a separate script.
2004-11-28: Added A No-Frills Introduction to Lua 5 VM Instructions (in SXW or PDF), available from the Document Manager tab in ChunkSpy's LuaForge Project Page.
2004-11-21: ChunkSpy 0.9.4. Added comments for some instructions, and a Win32 stand-alone binary.
2004-11-14: ChunkSpy 0.9.3. Added binary chunk rewriting (--rewrite "plat") option, and non-native binary chunk load and execute (--run) option.
2004-11-09: ChunkSpy 0.9.2. Added interactive mode (--interact), brief listings (--brief), output file specification (-o <file>), and source to listing mode (--source <file>).
2004-11-07: ChunkSpy 0.9.1. Basic features, initial release on LuaForge.