https://github.com/xxDark/SSVM
Java VM running on a JVM
https://github.com/xxDark/SSVM
deobfuscation java vm
Last synced: about 2 months ago
JSON representation
Java VM running on a JVM
- Host: GitHub
- URL: https://github.com/xxDark/SSVM
- Owner: xxDark
- License: mit
- Created: 2022-01-08T22:42:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-25T18:56:28.000Z (about 1 year ago)
- Last Synced: 2025-02-25T23:41:39.898Z (about 2 months ago)
- Topics: deobfuscation, java, vm
- Language: Java
- Homepage:
- Size: 1.55 MB
- Stars: 184
- Watchers: 4
- Forks: 22
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - SSVM
README
# 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](EXAMPLE.md)
More simple cases can be found in the test cases: [ssvm-invoke tests](ssvm-invoke/src/test/java/dev/xdark/ssvm)
For complex examples, see: [Recaf v3](https://github.com/Col-E/Recaf/tree/dev3/recaf-core/src/main/java/me/coley/recaf/ssvm) _(Old, using SSVM 1.0)_
To add SSVM to your project, add it as a dependency via [JitPack](https://jitpack.io/#xxDark/SSVM).
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](https://github.com/xxDark/jlinker/), which is also available via [JitPack](https://jitpack.io/#xxDark/jlinker/)