简介
Bytecode Viewer 是一款基于图形界面的 Java 反编译器,Java 字节码编辑器,APK 编辑器,APK 反编译器,Dex 编辑器,DEX 反编译器,其集成了 6 个 Java 反编译库(包含 Procyon、CFR 和 Fernflower),Andorid 反编译类库和字节码类库。不仅如此,它还是一款 Hex 查看器,代码搜索器和代码调试器。除此之外,它还具备 Smali 和 Baksmali 等汇编器的相关功能。
它完全用 Java 编写,并且是开源的。 它目前由 Konloch 维护和开发。
还有一个插件系统可以让您与加载的类文件进行交互,例如您可以编写一个字符串反混淆器、恶意代码搜索器或其他您能想到的东西。
您可以使用预先编写的插件之一,也可以编写自己的插件。 它支持 Groovy、Python 和 Ruby 脚本。
一旦插件被激活,它会将文件系统中加载的每个类的 ClassNode ArrayList 发送到执行函数,这允许用户使用 ASM 完全处理它。
下载
网址:https://the.bytecode.club/pages.php?page=bytecode-viewer
使用
反编译
双击 BytecodeViewer 2.8.1.jar 即可启动,将 class
、jar
、apk
文件拖动到左侧 Files 窗口即可反编译:
视图窗口
菜单栏 View Panes 中可以设置 Work Space 窗口显示内容,下面的操作可以在窗口 3 中显示 class
文件对应的十六进制:
设置
-
Procyon:[?pr??s??n] 【天】南河三 (小犬座 α)。它是一套 Java 元编程工具,专注于代码生成和分析。 它包括以下库:
- 核心框架:包含其他 Procyon API 使用的通用支持类。 它的功能包括字符串操作、集合扩展、文件系统/路径实用程序、可冻结对象和集合、附加数据存储和一些运行时类型助手。
- 反射框架:提供了丰富的反射和代码生成 API,完全支持泛型、通配符和其他高级 Java 类型概念。 它基于 .NET 的 System.Reflection 和 System.Reflection.Emit API,旨在解决核心 Java 反射 API 的许多缺点,后者为泛型类型检查提供了相当有限且繁琐的支持。 它的代码生成工具包括一个 TypeBuilder、MethodBuilder 和一个字节码发射器。
- 表达式框架:提供了一种更自然的代码生成形式。 与 procyon-reflection 和其他流行的库(如 ASM)一样,不需要直接发出字节码,procyon-expression 可以使用声明式表达式树实现代码组合。 然后可以将这些表达式树直接编译为回调或与 MethodBuilder 结合使用。 procyon-expressions API 几乎是来自 .NET 的动态语言运行时的 System.Linq.Expressions 的直接端口,减去动态调用站点支持(以及关于类型转换的更宽松的规则)。
- 编译器工具集(实验性):
- 基于 Mono.Cecil 的类元数据和字节码检查/操作工具
- 基于ILSpy的优化反编译框架
- Java 反编译器(实验性):procyon-compilertools 中包含的 Java 反编译器的独立前端。 所有依赖项都嵌入在 JAR 中,以便于重新分发。
-
CFR(Class File Reader):将反编译现代 Java 功能 - 直到并包括 Java 9、12 和 14 的大部分内容,但完全用 Java 6 编写,因此可以在任何地方使用! 它甚至可以很好地将其他 JVM 语言的类文件转换回 Java!
-
Fernflower:IDEA 内置的反编译器。它是是第一个实际工作的 Java 分析反编译器,一般来说可能是一种高级编程语言。
插件
包含时序图、恶意代码扫描、字符串解码、EZ Inject(没整明白怎么用的)等功能。