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
More Translations
Most components should be translated. All of the components that were hardcoded for English now work with translations.
All of the translations now include any missing translation keys.
Added translations for: Farsi, Finnish, Greek, Indonesian, Bengali, Italian, Korean, Dutch, Polish, Swedish, Thai, Hebrew, Turkish, Ukrainian, Hungarian, Georgian, Javanese, Hausa, Swahili, Norwegian & Vietnamese
2021-07-08 08:22:39 +00:00
* Translated Into 25 Languages Including: Arabic, German, Japanese, Mandarin, Russian, Spanish
2021-07-01 22:23:02 +00:00
* Plugin Writer: Create and edit external plugins from within BCV
2021-07-06 20:47:45 +00:00
* Fixed Java & Bytecode Editing/Compiling
2021-07-12 13:07:17 +00:00
* Javap Support
2021-06-29 18:31:24 +00:00
* XAPK Support
2021-06-26 02:11:59 +00:00
* Dark Mode
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-11 12:05:20 +00:00
* Translated Into 25 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-06-21 22:54:05 +00:00
## Java Heap Space Issues
Start BCV with more RAM, e.g. `java -Xmx3G -jar BCV.jar`
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