关于
Bytecode Viewer (BCV)被设计成对用户和初学者非常友好,因此,几乎所有的东西都可以通过界面、设置、工具等方式进行访问。
将Jar/APK/Class文件拖到资源列表中。
设置
- 预览副本: {previewCopy}
- Fat Jar: {fatJar}
- Java: {java}
- Javac: {javac}
- BCV 目录: {bcvDir}
- Python 2.7 (or PyPy): {python}
- Python 3.X (or PyPy): {python3}
- RT.jar: {rt}
- 可选库: {lib}
- BCV Krakatau: {krakatauVersion}
- Krakatau 目录: {krakatauDir}
- BCV Enjarify: {enjarifyVersion}
- Enjarify 目录: {enjarifyDir}
命令行界面 (CLI)
- -帮助 显示帮助菜单
- -列表显示可用的反编译程序
- -反编译 [decompiler]选择反编译器,默认为procyon
- -i [input file] 选择输入文件 (Jar, Class, APK, ZIP, DEX all work automatically)
- -o [output file] 选择输出文件 (Java or Java-Bytecode)
- -t [target classname] 必须是完全合格的类名,或者是 "all "来反编译所有的zip
- -nowait 不要等待用户阅读命令行界面消息
文件
- Add (Ctrl + O) - I如果你添加了一个jar/zip,BCV将解压它,如果你添加了一个APK或DEX文件,BCV将运行dex2jar,然后运行jar输入进程。
- 重新打开最近的文件(Ctrl + L) -重新打开最近打开的文件。
- 新工作区域(Ctrl + N) -它清除打开的罐子/资源。
- 运行(Ctrl + R) -在一个安全的沙盒JVM实例中运行您已经加载到BCV的类文件,您可以完全调试该实例。
- 编译(Ctrl + T) -尝试编译您选择的所有可编辑面板,如果是Java,它将使用Ranino编译。Krakatau和*Smali使用自己的装配工。
- 另存为Jar - 将类文件和加载的资源导出为可运行的Jar文件。
- 另存为DEX - 运行jar2dex并将类文件导出为dex。
- 将文件另存为 - 将所有的类文件和资源保存为zip文件。
- 将 Java 文件另存为- 保存当前打开的反编译类文件。
- 将 Java 文件另存为zip - 将所有反编译的类文件保存为zip文件。
- 最近打开的文件 - 你在BCV打开的最后25个文件/目录。
- 关于 - 一个关于BCV的小信息窗口。
- 退出 - 关闭BCV。
视图面板
- Editable - 预定义视图面板是否可编辑。
- 无 - 不会显示任何内容。
- Procyon - 使用Procyon反编译程序反编译。
- CFR - 使用CFR反编译程序反编译。
- FernFlower - 使用FernFlower反编译程序反编译。
- JD-GUI - 使用JD-GUI反编译程序反编译.
- Krakatau Java - 用Krakatau反编译程序反编译。
- Krakatau Bytecode - 用Krakatau反汇编程序反汇编.
- Smali - 用 Smali反汇编
- 字节码 - 通过CFIDE反编译字节码。不可编辑。
- 十六进制代码 - 在十六进制查看器中显示类文件。不可编辑。
设置
- 编译在保存 —— 如果您在执行File>Save *函数时被选中,它将在保存之前尝试编译。
- 编译在刷新 —— 如果在按下refresh时选中,则在重新加载资源/类之前编译。
- 检查更新 ——如果您选择了它,请查询https://github.com/Konloch/bytecode-viewer以确保您获得了最新的的版本。
- 视图更改时刷新 —— 如果您在视图窗格中更改一个选项时选中,它将刷新当前打开的资源/类。
- 解码的APK资源 —— 如果在添加APK时选中,它将首先运行APKTool.jar来解码资源。
- 设置Python 2.7可执行文件 —— 如果你想要Krakatau反编译器/反汇编器/汇编器,请设置Python 2.7可执行文件去工作。
- 设置JRE RT库 —— 设置Krakatau反编译器的JRE RT库。
插件
- 打开插件 —— 打开为BCV创建的.java插件。
- 最近的插件 —— 你用BCV打开的最后25个插件。
- 代码程序表 —— 为当前打开的类文件构建一个原始的代码序列图。
- 恶意代码扫描 —— 允许您定义要搜索的内容,并输出找到的内容。
- 显示主要方法 —— 检测并输出所有的public static void main(String[])函数。
- 显示所有字符串 —— 抓取然后输出每个类文件中的所有字符串。
- 替换字符串 —— 允许您对类文件字符串执行简单的永久.replace操作,这对URL交换非常有用。
- Allatori 字符串解码器 —— 解密Allatori混淆/加密字符串。
- ZKM 字符串解码器 —— 解密ZKM混淆/加密字符串。
- ZStringArray字符串解码器 —— 解密ZStringArray混淆/加密字符串。
已使用来自不同项目的代码,包括但不限于
- J-RET作者WaterWolf
- JHexPane作者Sam Koivu
- RSynaxPane作者Robert Futrell
- Commons IO作者Apache
- ASM作者OW2
- FernFlower作者Stiver
- Procyon作者Mstrobel
- CFR作者Lee Benfield
- CFIDE作者 Bibl
- Smali作者JesusFreke
- Dex2Jar作者pxb1988
- Krakatau作者Storyyeller
- JJava-Decompiler团队的JD-GUI + JD-Core
- 用Storyyeller的话来形容
笔记