Giter VIP home page Giter VIP logo

luascout's Introduction

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.

luascout's People

Contributors

benjaminmordaunt avatar craben20 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.