An experimental JVM class file reverse engineering library for parsing, editing and writing class files as well as bytecode.
Like actually even if you're thinking about it please don't.
Just lookup all the // DESIGN:
comments and you'll quickly figure out how much stuff is subject to change sooner or later.
That being said, the Internals
namespace is fully done and production-ready, so you may use that. I don't guarantee that won't change either, though. It's just way less likely.
todo readme lol idk
- Merged jar files: Luna doesn't implement a custom .zip reader like LL-Java-Zip.
It's obfuscation-resilient and it's fast. I'm actually kinda optimizing this thing, I even benchmarked some stuff.
This is a personal project. The abstractions in this library are unconventional, for example LDC
is split into InsnPushDouble
, InsnPushFloat
, InsnPushInteger
, InsnPushLong
and InsnPushString
. The ToString() representations don't match any existing JVM bytecode schemes, leaning towards MSIL instead: IRETURN
-> return.i
, FSTORE
-> store.f
, LDC
-> push
.