/LuaAssemblyTools

Lua Assembly/Bytecode Tools. Has functions for virtually all aspects of LASM, including reading/writing, verifying, stripping debug info, LASM decompilation, and LASM parsing.

Primary LanguageLuaOtherNOASSERTION

Lua Bytecode/Assembly Tools (LAT) is a Lua bytecode library written in Lua 5.1 (but should be 5.2 compatible)

To use LuaAssemblyTools in your project, just require "LAT".

Inspired by:
LuaDbg (http://www.roblox.com/Item.aspx?id=52358617), 
LASM Compiler Suite (http://www.roblox.com/Item.aspx?id=26966291),
MODS (http://www.roblox.com/Item.aspx?id=44474190 or https://github.com/NecroBumpist/MODS),
ChunkBake (http://luaforge.net/projects/chunkbake),
and ChunkSpy (http://luaforge.net/projects/chunkspy).

Eventually, i hope to have full support for all available Lua versions.
This is not going to happen in the near future though.

Language Implementations
--------------------------------------------------------
2.4-5.0          No
5.1              Yes
5.2              Yes
5.3              No


(If not specified, its for Lua 5.1 and 5.2 operations)
Completed        Operation                        Description
-------------------------------------------------------------------------------------
Yes              Read                             Reads bytecode
Yes              Write                            Writes bytecode
Yes              Edit                             Inject, remove, and change bytecode
Yes              LASM Decompiler                  Decompiles chunks to LASM
Yes              LASM Parser                      Parses LASM and generates LuaFile's
No               Decompiler                       Decompiles bytecode to Lua
No               Version converter (2.4-5.2)      Convert chunks to different versions
Partial [2]      Platform converter               Converts platforms (SizeT, IntegerSize, BigEndian, etc..,)
Yes              Verifier                         Verifies bytecode is valid
Yes              Strip/Remove debugging info      Removes debugging info
Yes              Add/Edit debugging info          Adds and/or edits debugging info

[2] - Might not work correctly. My tests failed, but it can still round-trip x86 standard chunks.