Bytecode Viewer Changelog

What's new in Bytecode Viewer 2.12

Dec 18, 2023
  • Detect language from computer wide language settings - @Konloch
  • New Window Theme Default: Dark Theme - @Konloch
  • Add Auto Open Search Option - @Konloch
  • Add Looping Search For Non-Exact - @Konloch
  • Update dependencies again - @ThexXTURBOXx
  • Update dependencies - @ThexXTURBOXx
  • Add Popup Menu for close Tabs - @sinyear
  • Update dependencies - @ThexXTURBOXx
  • Add dex2jar exception handler - @ThexXTURBOXx
  • Removed last version of dnd. Added dnd support from weisJ theme. Also… - @Bl3nd
  • Fix many DnD errors related to #462 @ThexXTURBOXx
  • Swap to SafeYAML - @Konloch
  • Update HTTPRequest Library - @Konloch
  • Fixed exception when clicking a class that's already open. - @Bl3nd
  • Enabled tabs to be rearranged. Did not add functionality for a tab to… - @Bl3nd
  • Update dependencies as of this commit date - @nick-botticelli
  • Fix FernFlower "Rename ambiguous classes and class elements". - @Bl3nd
  • Fix dex2jar issues - @ThexXTURBOXx
  • Optimized resource tree building - @majonez
  • Update dependencies @ThexXTURBOXx
  • Malicious Code Scanner Fix - @Konloch
  • Add ASMifier support - @nick-botticelli
  • Change reference to -decompiler-list to -list - @nick-botticelli
  • Replace icons with more modern svg variants - @weisJ
  • Update dependencies - @ThexXTURBOXx
  • Update darklaf to version 3.0.0 - @weisJ
  • Fixed a lot of issues related to the GUI - @GraxCode
  • Better looking tab close button. - @GraxCode
  • Dex2Jar is now pulled from Maven Central - @ThexXTURBOXx
  • And more! Thank you to everyone who has contributed to this patch. @ThexXTURBOXx / @Konloch / @GraxCode / @weisJ / @nick-botticelli / @majonez / @Bl3nd / @sinyear

New in Bytecode Viewer 2.11.2 (Apr 11, 2022)

  • Java 18/19 support - @ThexXTURBOXx
  • Security Manager has been adjusted to work on Java 18+ - @ThexXTURBOXx
  • ASM update for Java 19 support - @ThexXTURBOXx
  • Added Croatian, Czech, Bulgarian, Danish and Serbian translations - @Konloch
  • Fixed running precompiled plugins - @Lucaskyy
  • CFR interface improvements - @GraxCode / @ThexXTURBOXx
  • Procyon update - @ThexXTURBOXx
  • FernFlower update - @ThexXTURBOXx
  • Jadx update - @ThexXTURBOXx
  • Dependency updates and fixes- @ThexXTURBOXx
  • Bytecode Disassembler improvements & additions - @GraxCode
  • General bug fixes and improvements - @Konloch / @ThexXTURBOXx / @GraxCode
  • And more! Thank you to everyone who has contributed to this patch. @ThexXTURBOXx / @Konloch / @GraxCode / @Lucaskyy

New in Bytecode Viewer 2.11.1 (Mar 1, 2022)

  • Issues Resolved:
  • Never-ending Python selection dialog #368
  • Error on Mac: BCV is awesome, blocking write #361
  • java.lang.SecurityException: BCV is awesome! Blocking exec: C:Program FilesPython39python.exe #332

New in Bytecode Viewer 2.11.0 (Jan 12, 2022)

  • Zip Slip exploit has been patched - Thanks to @ready-research for reporting it! Thanks to @ThexXTURBOXx for patching it!
  • FernFlower update - Thanks to @ThexXTURBOXx
  • Plugins template has been adjusted - Thanks to @ThexXTURBOXx
  • Dependency updates plus optimizations - Thanks to @ThexXTURBOXx
  • General bug fixes/improvements - Thanks to @ThexXTURBOXx
  • And more! Thank you to everyone who has contributed to this patch. @ThexXTURBOXx @sschr15 @lujiefsi @hajdam @thomasleplus

New in Bytecode Viewer 2.10.16 (Aug 20, 2021)

  • Notable Changes:
  • Dex2Jar has been fixed, this should resolve opening APKs that would previously fail - Thanks to @ThexXTURBOXx
  • DarkLaf compatibility has been resolved - Thanks to @weisJ
  • Tabs have been introduced for windows that were previously individual panes
  • The plugin console has been redesigned to support multiple resources in a single workspace
  • Right-click context menus on the resource list, including quick-open and other useful commands
  • Improved searching through the search pane
  • BCV will now automatically import a resource instead of displaying the binary hex of known classfiles/archives
  • Most file leaks should be fixed - Thanks to @ThexXTURBOXx
  • All of the dependency warnings should be resolved - Thanks to @ThexXTURBOXx
  • General bug fixes/UI improvements (Anti aliasing & more)

New in Bytecode Viewer 2.10.15 (Jul 23, 2021)

  • More translation support
  • Limited GraalJS support (You will need to supply the Graal.JS dependencies - v2.11.0 will have full GraalJS support)
  • Better Hex-Viewer Dark Mode Thanks to @ThexXTURBOXx
  • Better zoom functionality Thanks to @ThexXTURBOXx
  • WebP support Thanks to @ThexXTURBOXx
  • Bug fixes Thanks to @ThexXTURBOXx
  • Bugs! Expect issues with this release, please report them!

New in Bytecode Viewer 2.10.14 (Jul 20, 2021)

  • Notable Changes:
  • Improved translations Thanks to @ThexXTURBOXx @TechComet @antonymcgreen @liuxilu @cn-fairy
  • Added javap disassembler
  • Automatic python path detection
  • Improved plugin console
  • Cleaned up settings dialogue
  • Dynamic width Hex-Viewer
  • Better resource handling
  • Lots of code cleanup
  • Patched a few Security Manager escapes
  • Bug fixes and general improvements Thanks to @ThexXTURBOXx
  • Bugs! Expect issues with this release, please report them!

New in Bytecode Viewer 2.10.13 (Jul 9, 2021)

  • Translated Into 25 Languages Including: Arabic, German, Japanese, Mandarin, Russian, Spanish - Thank you to everyone who helped provide translations! (Expect some translation issues, if you encounter any please help us fix them!)
  • Plugin Writer: Create and edit external plugins from within BCV
  • Fixed Krakatau & Smali Disassembler/Assembler
  • Fixed Java & Bytecode Editing/Compiling
  • Lots of code cleanup
  • Bug fixes and general improvements

New in Bytecode Viewer 2.10.12 (Jun 29, 2021)

  • Notable Changes:
  • Dark mode (Opt-in) & theme selection thanks to @ThexXTURBOXx
  • XAPK file support
  • Translation process has started
  • Javascript plugin support
  • Bug fixes and general improvements

New in Bytecode Viewer 2.10.11 (Jun 22, 2021)

  • Fixes java.lang.IllegalArgumentException: Unsupported api 589824 #295

New in Bytecode Viewer 2.9.22 (Jun 14, 2019)

  • The ASM Classwriter will now automatically update all pre-Java 1 classes to have the proper standard class format. It will also update the classes minor version from <= 2, to 3. (This should fix all of the decompilers inside of BCV)

New in Bytecode Viewer 2.9.21 (Jun 14, 2019)

  • Fixed the pre-Java 1 class format bug in ASM - thanks to @ItzSomebody, not only for the Stop Decompiling My Java list (https://github.com/ItzSomebody/StopDecompilingMyJava), but also for open sourcing the fix for the ASM library (https://github.com/ItzSomebody/asm-fix).
  • CFR updated to v0.145
  • General bug fixes

New in Bytecode Viewer 2.9.20 (Jun 3, 2019)

  • Automatic RT.jar generation for JDK 9+ (thanks to @Storyyeller)
  • Smali Disassembly & Assembly is now working again (Still has a bug or two, please report them when you encounter them)
  • General bug fixes

New in Bytecode Viewer 2.9.18 (Apr 26, 2019)

  • WAR and JSP loading
  • JADX Decompiler added
  • Bug fixes

New in Bytecode Viewer 2.9.17 Pre-release (Apr 17, 2019)

  • I haven't fully tested this version so if anything goes wrong downgrade to v2.9.16.
  • This should fix all of the Bytecode Viewer related issues brought up at this awesome list - https://github.com/ItzSomebody/StopDecompilingMyJava/blob/master/QuickLinks.md
  • This also includes the latest CFR (0.143).

New in Bytecode Viewer 2.9.16 (Apr 17, 2019)

  • Fixed APK & dex loading
  • Fixed Java 10+ classfiles
  • Better visual feedback thanks to the new busy icon system
  • Synchronized viewing pane option & quick method selection (made by @DreamSworK)
  • Tons of bug fixes and general improvements
  • Updated most libraries to their 2019 versions (still a WIP)

New in Bytecode Viewer 2.9.16 Pre-release (Apr 17, 2019)

  • Fixed APK & dex loading
  • Fixed Java 10+ classfiles
  • Better visual feedback thanks to the new busy icon system
  • Synchronized viewing pane option & quick method selection (made by @DreamSworK)
  • Tons of bug fixes and general improvements
  • Updated most libraries to their 2019 versions (still a WIP)

New in Bytecode Viewer 2.9.15 Pre-release (Apr 14, 2019)

  • Fixed dex2jar for Android 8+ APKs, huge thanks to @Lanchon.

New in Bytecode Viewer 2.9.11 (Mar 30, 2018)

  • This version should work with JRE 8, 9 and 10, it's a 'FatJar' version that doesn't downstream any libraries from GitHub, this means you'll need to update BCV if any libraries release an update.
  • Hopefully we can go back to having the dynamic classloader in the future, but for now this should work for anyone using JRE 8.x, 9.x or 10.x (I've tested this with JRE 8, 9 and 10, however if isn't working please let me know)

New in Bytecode Viewer 2.9.10 (Mar 22, 2018)

  • Emergency patch released, this should fix the startup issues that have been happening over the past few days.
  • Java 9.x is not supported yet, I've included a little startup message to alert those on 9.x that it won't work. I'll try to push out a 2.9.11 this weekend that includes a 9.x patch.
  • Huge thanks to @ItzSomebody, without him this release would not be possible.
  • Instead of uploading a zip file with the exe file included, I've only included the jar file.

New in Bytecode Viewer 2.9.8 (Jul 31, 2015)

  • Fixed enjarify.
  • Bibl sexified the boot loading time.
  • Decode APK Resources is selected by default.
  • Made the security manager slightly safer, it can still be targeted but not as obviously now.
  • Added CLI to the boot page.
  • Added support for offline mode in case you cannot connect to github for some reason. (kicks in after 7 seconds)
  • Added fatjar option back, in case anyone wants a 100% portable version.
  • Made it so it now shows the decompiler it's using
  • Rewrote the file system, it now shows the path of the jar it's got loaded.
  • Now it shows if the decompiler is in editable mode or not.
  • Fixed Enjarify bug from new security manager.
  • Fixed a typo (Thanks affffsdsd)
  • Finally added icons to the File Navigator
  • JD-GUI is now the default decompiler for GUI.
  • Added Set Python 3.X to the UI.
  • Fixed krakatau/export as jar bug introduced by file system update.
  • Sped up krakatau decompiler/disassembler on big files.
  • Made it so when you press enter on the file navigation pane it opens the class.
  • The Quick file search now opens the files again.
  • Fixed opening single files and file folders into BCV
  • Added File>Reload Resources.
  • Fixed the view pane refresh after toggling a viewer, it's now flawless.
  • Fixed Krakatau Disassembler.
  • Mibbzz is gay once again.
  • Removed Janino Compiler & moved to Javac, it can now compile decompiled classes again.
  • Affssdd fixed the File Navigator Pane's Quick Class Search.
  • Fixed a process leak in KrakatauDisassembler.
  • Started working on converting all the decompilers to launch in their own process in an effort to reduce BCV resources (only for non-fatjar version).

New in Bytecode Viewer 2.9.7 (Jul 20, 2015)

  • Added ajustable font size.
  • Started working on the new Boot Screen.
  • Moved the font size to be under the view menu.
  • Fixed a bug with plugins not being able to grab the currently viewed class.
  • Started adding enjarify as an optional APK converter instead of Dex2Jar.
  • Finished the new Boot Screen
  • Fixed a process leak with krakatau decompiler.
  • Finished adding enjarify.
  • Supressed syntax exceptions due to JD-GUI.
  • Fixed refresh on non-refreshable resources.
  • Fixed opening a class and the name is so big, you cannot close because the [X] does not appear.
  • Added support for smaller screens for the boot screen.
  • Removed the FileFilter classes.
  • Updated the decompiler class to make more sense.
  • Started working on BCV CLI.
  • Finished BCV CLI.

New in Bytecode Viewer 2.9.6 (Jul 3, 2015)

  • Fixed a typo in the about window
  • Started importing JD-GUI Decompiler.
  • Compile on refresh and compile on save are now enabled by default.
  • Renamed the File>Save As options to be much more informative.
  • Fixed a logic error with the Field & Method searchers.
  • Updated Procyon & CFR to their latest versions.
  • Added JD-GUI Decompiler.

New in Bytecode Viewer 2.9.5 (May 2, 2015)

  • Added 'pingback' for statistics (to track how many people globally use BCV)

New in Bytecode Viewer 2.9.4 (Apr 29, 2015)

  • Added -O to be passed for Krakatau Decompiler/Disassembler/Assembler.
  • Added -skip to be passed for Krakatau Decompiler.
  • Changed the warning window for Python to recommend PyPy.
  • Started reworking the View Panes.
  • Finished reworking the View Panes
  • Updated CFR to 0_100.jar
  • Added CTRL + R for run.
  • Added CTRL + S for save files as.
  • Added CTRL + T for compile.
  • Added Krakatau optional library.
  • The about pane now provides a lot more up to date information.
  • Changed 'View Panes' to simply 'View'.

New in Bytecode Viewer 2.9.3 (Mar 25, 2015)

  • Added drag and drop for any file.
  • Added ctrl + w to close the current opened tab.
  • Updated to CFR 0_97.jar
  • Fixed a concurrency issue with the decompilers.
  • Added image resize via scroll on mouse.
  • Added resource refreshing.
  • Im Frizzy started working on Obfuscation.
  • Updated Dex2Jar to 2.0.
  • Updated CFR to 0_98.jar

New in Bytecode Viewer 2.9.2 (Feb 25, 2015)

  • Actually fixed the compiler

New in Bytecode Viewer 2.9.1 (Feb 25, 2015)

  • Fixed the third pane window not showing the search buttons.
  • Fixed some issues with the compiler functionality.

New in Bytecode Viewer 2.9.0 (Feb 24, 2015)

  • Added ZStringArray String Decrypter.
  • Moved the decompilers/disassemblers around.
  • Fixed a resource leak with Krakatau Decompiler/Disassembler/Assembler.
  • Fixed regex searching if your regex search contained a syntax error.
  • Added the compiler/decompiler instances to the BytecodeViewer API class.
  • Sped up the decompilers, each view pane runs its own decompiler thread.
  • Added Janino compiler, you can now compile the decompiled source code inside of BCV.
  • Added the editable option for almost all of the decompilers/disassemblers.
  • Cached the next/previous icons and added a resources class for all resources.
  • Renamed EZ-Injection as File-Run, however kept the plugin named EZ-Injection.
  • Dropped Groovy support, added .Java plugin compilation instead (now only 10mb).
  • Added support for reading resources, including displaying images, detecting pure ascii files and more.
  • Fixed an issue with loading an already selected node in the file navigation pane.
  • Added an error console to the Java compiler
  • Ensured the spawned Python/Krakatau processes are killed when closing BCV.
  • Made it more beginner friendly.
  • Fixed? The file navigation search.
  • Added more comments to non-api related classes.
  • Added APK resources.
  • MORE ANDROID LOVE! Added APKTool.jar's decode. (Takes a while so it's a setting, also pumped the jar back to 16MB)
  • Added close all but this tab menu.
  • Not really code related, but added _install.bat and _uninstall.bat for the exe version of BCV.
  • Back to ASM5, packed dex2jar in its own obfuscated jar.
  • Added the annotations back to the Bytecode Decompiler.
  • It once again works with Java 8 Jars.

New in Bytecode Viewer 2.8.1 (Feb 11, 2015)

  • Fixed UI bug with Krakatau/Krakatau Editable view panes.
  • Added CTRL + F.

New in Bytecode Viewer 2.8.0 (Feb 11, 2015)

  • Updated CFR and Proycon to latest versions.
  • Started working on implementing Krakatau.
  • Sexifixed the security manager a little bit.
  • Fully added Krakatau Java decompiler, just disassembly/assembly left.
  • Updated the about window.
  • Dropped JRuby and Jython support (BCV is now roughly 16mb, was 45mb).
  • Added Krakatau Disassembly.
  • Added Krakatau Assembly.

New in Bytecode Viewer 2.7.1 (Jan 29, 2015)

  • Fixed hide file.

New in Bytecode Viewer 2.7.0 (Jan 28, 2015)

  • Improved the Refresh Class function to be used as the default compile function.
  • Implemented better error handling for decompiling class files.
  • CTRL + O will open the add file interface.
  • CTRL + N will open the net workspace interface.
  • It will now save the last directory you opened.
  • Some how the URL for the auto updater change log got changed, this has been fixed.
  • Slightly updated the change log display, it'll now show all the changes since your version.
  • Made EZ-Injection UI look a bit nicer.
  • Decided to scrap the JVM Sandbox POC and use the Security Manager.
  • BCV now blocks exec and won't allow any ports to be bound.

New in Bytecode Viewer 2.6.0 (Jan 12, 2015)

  • Now saves if maximized or not.
  • For all save as functions, it will now append the correct extension if not added by the user.
  • You can no longer use use the save functions if no classes are loaded (fixes a crash issue).
  • Moved the Update Check to the Settings menu.
  • Added an extremely basic code sqeuence diagram plugin.
  • Updated CFR to CFR_0.93.jar
  • Threaded the Add files function.
  • Finally implemented Kontainer's HTTPRequest wrapper now that I've open sourced it.
  • Set the panes to be non-editable.
  • Sexified the view pane selection.
  • Started working on Smali Editing support, finished decompiler so far.
  • Fixed a bug with saving.
  • Added add entire directory.
  • Fixed import .DEX files.
  • Finished Smali Editing.
  • Fixed a class opening issue with sychronization.
  • Threaded all of the save functions.
  • Removed all instances of the setCursor to busy.
  • Added are you sure you wish to overwrite this existing file to all the other save functions.
  • All of the decompiling names are now randomly generated instead of a counting number.
  • Updated CFR to CFR_0.94.jar
  • Updated to the latest version of FernFlower.
  • Fixed an extension appending issue with save Java file.

New in Bytecode Viewer 2.5.2 (Jan 7, 2015)

  • Completely fixed the search function with Android APKs.

New in Bytecode Viewer 2.5.1 (Jan 7, 2015)

  • Silenced the error connecting to update server for offline mode.
  • Fixed a search function with Android APKs.

New in Bytecode Viewer 2.5.0 (Jan 6, 2015)

  • Improved the outdated version pane by including an automatic downloader
  • Updated CFR to cfr_0.92.jar
  • Adrianherrera updated the Malicious Code Scanner to detect the security manager being set to null.
  • Added refresh class on decompiler/pane view change
  • Moved all of the settings into a settings pane
  • Added some debug code when you first start it up, it also includes how long it took to fully load up.
  • Cached the busy icon.
  • ADDED APK SUPPORT, had to downgrade to ASM 3.3, which means losing some annotation debugging for the Bytecode Decompiler.
  • Wrapped the search pane in a JScrollPane.
  • Added save as DEX and import .dex files.

New in Bytecode Viewer 2.4.0 (Dec 23, 2014)

  • Afffsdd made the Bytecode Viewer directory hidden.
  • Added save Java file as, for singular class file decompilation (this is threaded).
  • Removed unused Bytecode Decompiler debug code.
  • Made a new outdated pane - http://i.imgur.com/xMxkwJ9.png
  • Added an expand/collapse the packages in the file navigator.
  • Moved all of the settings to the.bytecode.club.bytecodeviewer.Settings
  • If the class file does not start with CAFEBABE it won't be processed.
  • Properly handled file not found error.
  • Fixed the Refresh Class causing a dupe.

New in Bytecode Viewer 2.3.0 (Dec 23, 2014)

  • Started updating the class viewer.
  • Finished a basic concept of the new class viewer.
  • Fixed an error with importing some jars.
  • Fixed the about window.
  • Finished the final concept for the new class viewer.
  • Threaded save Java files as zip, it now runs in a background thread.
  • Save Java files as zip now prompts you to select a decompiler.
  • Removed the cursor waiting for save Java files as zip.
  • Wrapped the save Java files as zip around an exception handler, it will now safely show the exception if any is thrown.
  • Fixed not escaping the Java strings by default for the Bytecode decompiler.
  • Used Eclipse's code formatting tool and formatted the code
  • Priav03 fixed the quick class searcher.

New in Bytecode Viewer 2.2.1 (Dec 23, 2014)

  • Fixed an issue with the Bytecode Decompiler.

New in Bytecode Viewer 2.2.0 (Dec 23, 2014)

  • Added a text search function to the plugin console.
  • When you press enter in the text search bar, it will now search.
  • The Bytecode Decompiler now shows the method's description in a comment.
  • Fixed an issue with the text search function.
  • Search results are now clickable.

New in Bytecode Viewer 2.1.1 (Dec 23, 2014)

  • Updated CFR to cfr_0_91.

New in Bytecode Viewer 2.1.0 (Dec 23, 2014)

  • Started working on the EZ-Inject plugin.
  • Fixed the ClassNodeDecompiler creating unnessessary objects. (thanks bibl).
  • Finished an alpha version of EZ-Inject.
  • Started working on a basic obfuscator.
  • The Obfuscator now sucessfully renames all field names.
  • Updated CFR to cfr_0_90.
  • Started working on the API for BCV.
  • Decided to make a graphical reflection kit.
  • Made some progress with the obfuscator, almost finished EZ-Injection.
  • Been doing various updates to EZ-Injection, Obfucsation, Reflection Kit and the BCV API.
  • Added the option to launch BCV command line as java -jar bcv.jar C:/test.jar C:/example/whatever.jar
  • Fixed an issue with the out of date checking UI still activating when not selected.
  • Added annotatitons/local variables to the methodnode decompiler (Thanks Bibl).
  • Decided to release it with the obfuscator/reflection kit unfinished, they're currently disabled for future use.

New in Bytecode Viewer 2.0.1 (Dec 23, 2014)

  • Fixed the search function.
  • Removed an unused package containing some unused classes.

New in Bytecode Viewer 2.0 (Dec 23, 2014)

  • Officially been 1 month of development.
  • Replaced ""+ with String.valueOf (cheers bibl).
  • Changed how the temp directory was created.
  • Put a file.seperator to the end of tempDirectory.
  • Made the exit button work.
  • Added a GUI for all Exception Stack Trace's.
  • The plugin system now shows a message instead of just printing to the console when it's not going to run a plugin.
  • Updated the search function, it's now perfect.
  • Made the Show All Strings plugin instant.
  • Kinda added middle mouse button closes tab (only if you click the exit button).
  • Improved the Malicious Code Scanner, also made it instant.
  • Added icons to the program (cheers Fluke).

New in Bytecode Viewer 1.5.3 Beta (Dec 23, 2014)

  • Settings/Temp file are now in a global directory.
  • The GUI setttings now save.
  • Removed the option to disable syntax highlighting (since it's lightweight now).
  • About window now contains the version number and the BCV directory.
  • Added an option to toggle to outdated status.

New in Bytecode Viewer 1.5.2 Beta (Dec 23, 2014)

  • Fixed Refresh Class.