Konloch's Bytecode Viewer, but it uses Vineflower instead of FernFlower
Find a file
Konloch 2ef221f6e1 Resource Viewing Improvements
All of the components that update resources should now function as normal again

The decompiler gui API has been improved to use less boilerplate when adding a new decompiler
2021-07-11 01:44:37 -07:00
install 2.9.8 2015-07-30 13:39:17 -06:00
libs Darcula Swapped With DarkLAF 2021-06-28 17:27:17 -07:00
plugins BCV API Change 2021-07-06 21:36:11 -07:00
src/main Resource Viewing Improvements 2021-07-11 01:44:37 -07:00
.gitignore Ignore shaded pom 2021-04-14 20:57:32 +02:00
BCV Icon.ico 2.9.0 2015-02-23 23:55:53 -08:00
BCV Icon.png Added Icon 2014-12-18 00:44:16 -08:00
CONTRIBUTING.md v2.9.16 2019-04-17 00:45:15 -06:00
CREDITS.md Update CREDITS.md 2021-06-21 08:06:07 -07:00
LICENSE Reverting to a build that doesn't bug when saving a new zip -_- 2018-01-31 07:03:53 -08:00
pom.xml Version Bump 2021-07-08 19:31:59 -07:00
README.md More Translations 2021-07-08 01:22:39 -07:00
VERSION Version change 2018-01-31 08:12:09 -08:00

Bytecode Viewer

Bytecode Viewer - a lightweight user friendly Java Bytecode Viewer.

New Features

  • Translated Into 25 Languages Including: Arabic, German, Japanese, Mandarin, Russian, Spanish
  • Plugin Writer: Create and edit external plugins from within BCV
  • Fixed Java & Bytecode Editing/Compiling
  • XAPK Support
  • Dark Mode
  • Updated nearly all dependencies (incl. decompilers like CFR, JD-GUI etc.)
  • Updated ASM library to version 9.1
  • Added support to Java files compiled using JDK > 13
  • Migrated to Maven

Key Features

  • Simply drag and drop to decompile and search Java Jars & Android APKs
  • File format support for: Class, Jar, XAPK, APK, DEX, WAR, JSP, Image Resources, Text Resources & More
  • 6 Built-in Java decompilers: Krakatau, CFR, Procyon, FernFlower, JADX, JD-GUI
  • 3 Built-in Bytecode disassemblers, including 2 assemblers: Krakatau and Smali/BakSmali
  • APK/DEX Support from Dex2Jar and Enjarify
  • Built-in Java Compiler
  • Advanced static-search functionality
  • Customizable UI
  • Plugins + Script Engine Design
  • Malicious code scanning API
  • Translations (English, Mandarin)
  • Export functionality as Runnable Jar, Zip, APK, Decompile All As Zip, Etc.
  • And more! Give it a try for yourself!

Command Line Input

	-help                         Displays the help menu
	-list                         Displays the available decompilers
	-decompiler <decompiler>      Selects the decompiler, procyon by default
	-i <input file>               Selects the input file (Jar, Class, APK, ZIP, DEX all work automatically)
	-o <output file>              Selects the output file (Java or Java-Bytecode)
	-t <target classname>         Must either be the fully qualified classname or "all" to decompile all as zip
	-nowait                       Doesn't wait for the user to read the CLI messages

What is Bytecode Viewer?

Bytecode Viewer (BCV) is an Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger and more.

It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.

How do I install BCV?

Download the latest version from https://github.com/konloch/bytecode-viewer/releases and run the Bytecode-Viewer-2.10.x.jar. You may need to execute it via command line java -jar Bytecode-Viewer-2.10.x.jar (replace the X with the current minor version)

How do I use BCV?

All you have to do is add a jar, class or APK file into the workspace. Then select the file you'd like to view from the workspace. BCV will automatically start decompiling the class in the background. When it's done it will show the Source code, Bytecode and Hexcode of the class file you chose (depending on the View panes you have selected). If you are trying to view a resource BCV will attempt to display it the best it can with code highlighting or by embedding the resources itself.

How do the plugins work?

There is also a plugin system that will allow you to interact with the loaded classfiles. You could for example write a String deobfuscator, a malicious code searcher, or anything else you can think of.

You can either use one of the pre-written plugins, or write your own. The plugin system supports groovy, python, ruby, java and javascript scripting.

Once a plugin is activated, it will execute the plugin with a ClassNode ArrayList of every single class loaded in BCV, this allows the user to handle it completely using ASM.

Instructions to compile

Just clone this repo and run mvn package. It's that simple!

Working on the source

Open the Maven project (e.g. in IntelliJ, open the pom.xml as a project file).

Java Heap Space Issues

Start BCV with more RAM, e.g. java -Xmx3G -jar BCV.jar

Are you a Java Reverse Engineer? Do you want to learn?

Join The Bytecode Club Today! - https://the.bytecode.club