Skip to content

firstfault/Trinity

Repository files navigation

Trinity logo

Trinity

One tool to rule them all.

A next-generation Java reverse-engineering workspace for exploring, understanding, and rewriting bytecode.

GitHub release License: Apache 2.0 Java 17+ Gradle 8.4 GitHub stars

Self-Maintained Decompiler · Text Assembler · Extensive Cross-referencing · Instant Refactoring

Screenshot

What makes Trinity stand out?

Decompiler

Trinity approaches decompilation differently. Built on the battle-tested Fernflower, it integrates directly with the decompiler engine instead of treating the generated Java as plain text. Numerous bugs and anti-decompilation exploits are fixed.

Renaming

Rename variables, fields, methods, and classes in place. Trinity updates every known usage across the workspace immediately, so you can turn an unreadable codebase into something understandable as you investigate it.

Renaming Example

Cross-referencing

Trinity's cross-reference (Xref) search is instant and exceptionally thorough. It follows references throughout the bytecode, including class literals, annotations, casts, method parameters, return types, field accesses, and invocations.

Xref Example

Constant search

Search constants across the entire project instantly, not just the strings visible in decompiled source. Strings, numbers, class literals, annotation values, bootstrap arguments, and other class-pool constants are all discoverable.

Constants Example

Workspaces

Load one or several files into a workspace, edit their classes and members, and save the complete project as a compressed Trinity database (.tdb), letting you resume your work right where you left it off.

...and more!

Built-in refactoring / deobfuscation, custom themes, a built-in theme editor, configurable key mappings, among many others

Building

Running Trinity requires Java 17 or newer. Gradle 8.4 builds require JDK 17-20; build and run with the checked-in wrapper:

git clone https://github.com/firstfault/Trinity.git
cd Trinity
./gradlew run

The executable fat JAR is produced at build/libs/Trinity.jar by ./gradlew build. Pre-built versions are available from GitHub Releases.

Authors

Contributing

Contributions are massively appreciated. Please feel free to open an issue or pull request if anything you need is missing.

Please review the planned features before requesting a feature addition!

Libraries Used

Who is this meant for?

Hackers, hobbyists, professionals, everyone is welcome.

Context

Originally Trinity started out as an obfuscator with an interactive interface. Over time, I began using it as a decompiler, and eventually it evolved into this awesome tool.

About

Software reverse engineering tool for Java

Topics

Resources

License

Stars

64 stars

Watchers

3 watching

Forks

Packages

 
 
 

Contributors

Languages