2018-01-31 15:46:19 +00:00
# Bytecode Viewer
2021-07-11 12:01:16 +00:00
Bytecode Viewer - a lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More.
2018-01-31 15:46:19 +00:00
2019-04-17 06:45:15 +00:00
#### New Features
2022-01-19 18:40:29 +00:00
* Patched [CVE-2022-21675 ](https://github.com/Konloch/bytecode-viewer/security/advisories/GHSA-3wq9-j4fc-4wmc ) (Make sure to upgrade to v2.11.X)
2021-07-15 05:19:45 +00:00
* Dark mode with multiple themes
2021-07-13 16:39:07 +00:00
* Translated into over 30 languages including: Arabic, German, Japanese, Mandarin, Russian, Spanish
* Plugin Writer - create and edit external plugins from within BCV
* Fixed Java & Bytecode editing/compiling
2021-07-15 05:19:45 +00:00
* Tabbed plugin console
2021-07-30 04:22:45 +00:00
* Right-click menus on the resource and search panels
* Javap disassembler
2021-07-13 16:39:07 +00:00
* XAPK support
2021-04-14 11:00:30 +00:00
* Updated nearly all dependencies (incl. decompilers like CFR, JD-GUI etc.)
2021-03-15 15:07:09 +00:00
* Updated ASM library to version 9.1
* Added support to Java files compiled using JDK > 13
2021-03-30 20:09:22 +00:00
* Migrated to Maven
2018-01-31 15:46:19 +00:00
2019-04-17 06:47:10 +00:00
#### Links
2021-07-07 05:25:08 +00:00
* [BCV Discord ](https://discord.gg/aexsYpfMEf )
2021-06-27 09:35:18 +00:00
* [Website ](https://bytecodeviewer.com )
* [Source Code ](https://github.com/konloch/bytecode-viewer )
* [Bin/Archive ](https://github.com/konloch/bytecode-viewer/releases )
* [Java Docs ](https://the.bytecode.club/docs/bytecode-viewer/ )
* [License (Copyleft) ](https://raw.githubusercontent.com/Konloch/bytecode-viewer/master/LICENSE )
* [Credits ](https://github.com/Konloch/bytecode-viewer/blob/master/CREDITS.md )
* [Contributing ](https://github.com/Konloch/bytecode-viewer/blob/master/CONTRIBUTING.md )
* [Report Bugs ](https://github.com/Konloch/bytecode-viewer/issues )
* [Discussion Forum ](https://the.bytecode.club/forumdisplay.php?fid=69 )
2018-01-31 15:46:19 +00:00
2019-04-17 06:45:15 +00:00
#### Key Features
2021-06-29 19:15:09 +00:00
* 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
2021-06-29 19:16:48 +00:00
* 6 Built-in Java decompilers: Krakatau, CFR, Procyon, FernFlower, JADX, JD-GUI
2021-06-29 19:15:09 +00:00
* 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
2021-07-15 05:19:45 +00:00
* Translated Into over 30 Languages Including: Arabic, German, Japanese, Mandarin, Russian, Spanish)
2021-06-29 19:15:09 +00:00
* Export functionality as Runnable Jar, Zip, APK, Decompile All As Zip, Etc.
2018-01-31 15:46:19 +00:00
* And more! Give it a try for yourself!
2019-04-17 06:45:15 +00:00
#### Command Line Input
2018-01-31 15:46:19 +00:00
```
-help Displays the help menu
2021-07-11 12:01:16 +00:00
-clean Deletes the BCV directory
-english Forces English language translations
2018-01-31 15:46:19 +00:00
-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
```
2019-04-17 06:45:15 +00:00
## What is Bytecode Viewer?
2021-07-11 12:01:16 +00:00
Bytecode Viewer (BCV) is an Advanced Lightweight Java/Android Reverse Engineering Suite. Powered by several open source tools BCV is designed to aid in the reversing process.
BCV comes with 6 decompilers, 3 disassemblers, 2 assemblers, 2 APK converters, advanced searching, debugging & more.
2019-04-17 06:45:15 +00:00
2021-06-26 16:06:49 +00:00
It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.
2019-04-17 06:45:15 +00:00
2021-07-11 12:01:16 +00:00
## Is there a demo?
[![BCV Demo ](https://img.youtube.com/vi/I5GT6PoTGOw/0.jpg )](https://www.youtube.com/watch?v=I5GT6PoTGOw)
Please note this demo is from a very old version
2019-04-17 06:45:15 +00:00
## How do I install BCV?
2021-06-21 17:59:02 +00:00
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)
2018-01-31 15:46:19 +00:00
2021-07-11 12:01:16 +00:00
## How can I use BCV?
* Starting with a Jar, Zip, ClassFile or Android file (APK, DEX, XAPK, etc) drag it into BCV. It will start the decoding process automatically.
* From here you can select the decompilers you would like to use by selecting the View Pane>View 1, View 2, View 3, etc.
* The view panes are-used to display up to 3 decompilers side by side, you can also toggle edibility here.
* Select the resource you would like to open by navigating using the resource list, BCV will do its best to display it (Decompiling, Disassembling, etc).
* You can use plugins to help you search along with using the search pane in the left-hand bottom corner.
2018-01-31 15:46:19 +00:00
2021-06-26 16:06:49 +00:00
## 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.
2021-07-11 12:01:16 +00:00
You can either use one of the pre-written plugins, or write your own. The plugin system supports java and javascript scripting.
2021-06-26 16:06:49 +00:00
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.
2021-04-14 11:00:30 +00:00
## Instructions to compile
2021-06-21 07:25:35 +00:00
Just clone this repo and run ``mvn package``. It's that simple!
2021-04-14 11:00:30 +00:00
## Working on the source
2021-06-21 07:25:35 +00:00
Open the Maven project (e.g. in IntelliJ, open the ``pom.xml`` as a project file).
2021-06-21 17:59:02 +00:00
2021-07-21 21:26:31 +00:00
## Java Heap Space Issues (java.lang.OutOfMemoryError)
2021-06-21 22:54:05 +00:00
Start BCV with more RAM, e.g. `java -Xmx3G -jar BCV.jar`
2021-07-21 21:26:31 +00:00
## File Permission Issues (java.io.FileNotFoundException)
Right click on the jar file, go to Properties, and select Unblock under Security at the bottom of the General tab.
## APK File Permission Issues (java.io.FileNotFoundException)
Run BCV as administrator.
2021-06-21 19:39:46 +00:00
#### Are you a Java Reverse Engineer? Do you want to learn?
2021-06-21 18:33:53 +00:00
Join The Bytecode Club Today! - https://the.bytecode.club