Bytecode Viewer
Bytecode Viewer is an advanced lightweight Java bytecode viewer and reverse engineering suite for Java 8+ JAR files and Android APKs. It provides a comprehensive GUI toolkit including decompilers, editors, debuggers, and a plugin system for custom analysis.
Description
Bytecode Viewer (BCV) is a powerful suite for reverse engineering Java bytecode and Android applications. It offers multiple GUI tools such as Java decompilers (Procyon, Krakatau, CFR, FernFlower), bytecode and Smali editors, APK and Dex editors/decompilers, DEX2Jar, Jar2DEX, Jar-Jar, hex viewer, code searcher, and debugger. This all-in-one tool enables security researchers and developers to analyze, edit, and understand Java classfiles and APK structures efficiently.
The tool includes a flexible plugin system that allows interaction with loaded classfiles using ASM's ClassNode ArrayList. Users can leverage pre-written plugins or develop custom ones, such as string deobfuscators or malicious code searchers, with support for Groovy scripting. This extensibility makes it suitable for advanced analysis tasks like malware detection or code hardening assessment.
Maintained by Konloch, Bytecode Viewer is presented by the Bytecode Club and is available as a Kali Linux package with a fat jar distribution (version 2.13.2).
How It Works
Bytecode Viewer loads Java classfiles or APK/Dex files and processes them using ASM for bytecode manipulation, providing ClassNode representations to plugins and editors. It integrates multiple decompilers and tools like DEX2Jar for format conversions, Smali/Baksmali for Dalvik disassembly, and supports Groovy scripts for custom processing of all loaded classes in batch.
Installation
sudo apt install bytecode-viewerFlags
Examples
bytecode-viewer -hbytecode-viewer example.jarbytecode-viewer example.apkbytecode-viewer example.dexbytecode-viewer example.classbytecode-viewer --plugin MyPlugin.groovy example.jar