Skip to content

Latest commit

 

History

History
21 lines (16 loc) · 1.83 KB

README.md

File metadata and controls

21 lines (16 loc) · 1.83 KB

LuaScout

LuaScout Logo
A command-line tool for finding Lua interpreters embedded within binaries.

Project rationale

This project was started to address a personal need to identify and interact with embedded Lua interpreters. Many applications use Lua as an internal scripting engine, to ease development and encourage extensibility. LuaScout facilitates (static) function pointer identification from signatures generated from any given Lua release, generating a portable C-code output capable of attaching hooks to these functions during runtime (a library injection tool is required - not provided here). Using compile-time options, this code can either dump a trace of calls to Lua functions, or act as a "man-in-the-middle" to hijack and modify Lua calls. Thanks to the architecture of the Lua language, this is actually rather simple. :)

Nomenclature guidelines

Object Type Guideline
Directory lowercase, no whitespace, no hyphenation
File CapitalCamelCase, no whitespace, no hyphenation
Class CapitalCamelCase, no whitespace, no hyphenation
Local var camelCase, no whitespace, no hyphenation

Dependencies

The only dependency of LuaScout is PLTHook, a library for modifying the Procedure Linkage Table of ELF-format executables and libraries across many operating systems and microarchitectures.

IMPORTANT NOTICE

As is inferred from the dependency on PLTHook, this library can only hook to Lua functions located within the PLT. If functions have been inlined (for example), this library will serve no purpose.