Skip to content

xxDark/SSVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d559ea9 · Mar 4, 2024
Jul 26, 2022
May 1, 2022
Jun 28, 2023
Mar 4, 2024
Feb 3, 2024
Jun 28, 2023
Mar 4, 2024
Jan 8, 2022
May 14, 2023
Aug 20, 2023
Jan 10, 2022
Sep 6, 2023
Jul 18, 2023
Feb 4, 2022
Jan 8, 2022
Jun 28, 2023

Repository files navigation

SSVM - Stupidly Simple VM

Capabilities

  • InvokeDynamic
  • Reflection
  • Class loading
  • File system (part of it)
  • Mapped I/O streams between VM & host OS
  • sun/misc/Unsafe implementation
  • JDK 8/9 bootstrapping
  • Multi-threading (see ThreadManager)
  • Interface to modify VM behaviour, similar to JVM TI
  • Instruction rewriting: rewrite parts of methods as the VM executes

Usage

For a basic example, see: EXAMPLE.md

More simple cases can be found in the test cases: ssvm-invoke tests

For complex examples, see: Recaf v3 (Old, using SSVM 1.0)

To add SSVM to your project, add it as a dependency via JitPack. Be sure to use the "commits" tab to pull the latest version, as 2.0.0 has not officially been tagged for release yet.

SSVM depends on JLinker, which is also available via JitPack