Skip to content
This repository has been archived by the owner on Mar 21, 2021. It is now read-only.

Latest commit

 

History

History
47 lines (35 loc) · 2.93 KB

README.md

File metadata and controls

47 lines (35 loc) · 2.93 KB

lacuna

Travis Build Status

Lacuna is Java a process memory manipulation library and UI for Windows and Linux.

Note to reader

This project was started as a course project. It is feature complete, but it is not very efficient. The main point of interest for you may be that the library contains good examples for using JNA to enumerate processes and manipulating process memory on both Windows and Linux. Be wary of lots of premature abstraction. Notice also that the library makes assumptions about the sizes of the primitives.

Current state

The Lacuna library (lacuna-core) contains classes for enumerating processes, and reading and writing a process's memory on both Windows and Linux. Common primitive datatypes are supported in addition to raw bytes. The library is quite inefficient currently, as it opens and closes a process handle on each read or write (#14), and throws exceptions to signify failed reads (#12).

The GUI (lacuna-ui) can currently enumerate the processes, and read and write raw bytes with a hex editor component. Common data types can be written with a data inspector gadget.

Tested platforms:

  • Windows:
    • Microsoft Windows 8.1 Pro (Build 9600)
    • Microsoft Windows 10 Pro N (Build 14393)
  • Linux:
    • Ubuntu 16.04.1 LTS (Kernel 4.4.0-59-generic x86_64 GNU/Linux)

Links

Download

See Releases for ready jars. Run with java -jar lacuna-ui-<VERSION>.jar

For compilation instructions, see below.

Compiling

Maven

  1. Install Apache Maven. Lacuna uses Maven to manage dependencies and lifecycle scripts.
  2. Clone or download this repository.
  3. Go to the project folder: cd lacuna/lacuna
  4. Compile and package the project: mvn clean install package. This step generates the .jar files in each of the modules' target/ directories.
    • You may optionally choose to skip running unit tests: mvn clean install package -DskipTests
    • Note: the install phase is needed so that lacuna-ui finds lacuna-core.
  5. Run the Lacuna UI: java -jar lacuna-ui/target/lacuna-ui-<VERSION>.jar

License

Lacuna is licensed under the MIT License (Expat). See LICENSE. Lacuna uses third party libraries that are distributed under their own terms (see LICENSE-3RD-PARTY).