Awesome
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