反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken介绍

以下为你介绍的反编译工具都可用在Linux系统上:Cutter-GUI(radare2 逆向工程框架的 GUI)、JD-Core(Java 反编译开发包)、jd-eclipse(Eclipse 的 Java 反编译插件)、Bokken(开源逆向代码工程)。

1、Cutter-GUI(radare2 逆向工程框架的 GUI)

反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken介绍

Cutter 是 radare2 逆向工程框架的免费开源图形用户界面。它的目标是打造一个先进的、可定制的、自由和开放源码软件逆向工程平台,同时将用户体验牢记在心。Cutter 是由逆向工程师为逆向工程师创造的。

Cutter 适用于所有平台(Linux、MacOS、Windows)。

下载发行版:

1]、macOS:下载最新的.dmg文件或使用Homebrew Cask安装。

2]、Windows:下载最新的Zip文件。

3]、Linux:下载最新的AppImage文件,然后,使其可执行并运行:

chmod +x <appimage_file>

./<appimage_file>

下载地址:https://gitee.com/mirrors/cutter-gui

2、JD-Core(Java 反编译开发包)

JD-Core 是 Java 反编译开发包,基于这个开发包有一个 GUI 的项目 jd-gui 和一个 Eclipse 插件项目 jd-eclipse。

编译 jd-core 的方法:

> git clone https://github.com/java-decompiler/jd-core.git

> cd jd-core

> ./gradlew build

使用方法:

实现 jd.core.loader.Loader 接口。

实现 jd.core.printer.Printer 接口。

调用方法 "decompile(loader, printer, internalTypeName);"。

示例代码:

1]、Implement the Loader interface:

Loader loader = new Loader() {

@Override

public byte[] load(String internalName) throws LoaderException {

InputStream is = this.getClass().getResourceAsStream("/" + internalName + ".class");

if (is == null) {

return null;

} else {

try (InputStream in=is; ByteArrayOutputStream out=new ByteArrayOutputStream()) {

byte[] buffer = new byte[1024];

int read = in.read(buffer);

while (read > 0) {

out.write(buffer, 0, read);

read = in.read(buffer);

}

return out.toByteArray();

} catch (IOException e) {

throw new LoaderException(e);

}

}

}

@Override

public boolean canLoad(String internalName) {

return this.getClass().getResource("/" + internalName + ".class") != null;

}

};

2]、Implement the Printer interface

Printer printer = new Printer() {

protected static final String TAB = "  ";

protected static final String NEWLINE = "\n";

protected int indentationCount = 0;

protected StringBuilder sb = new StringBuilder();

@Override public String toString() { return sb.toString(); }

@Override public void start(int maxLineNumber, int majorVersion, int minorVersion) {}

@Override public void end() {}

@Override public void printText(String text) { sb.append(text); }

@Override public void printNumericConstant(String constant) { sb.append(constant); }

@Override public void printStringConstant(String constant, String ownerInternalName) { sb.append(constant); }

@Override public void printKeyword(String keyword) { sb.append(keyword); }

@Override public void printDeclaration(int flags, String internalTypeName, String name, String descriptor) { sb.append(name); }

@Override public void printReference(int flags, String internalTypeName, String name, String descriptor, String ownerInternalName) { sb.append(name); }

@Override public void indent() { this.indentationCount++; }

@Override public void unindent() { if (this.indentationCount > 0) this.indentationCount--; }

@Override public void startLine(int lineNumber) { for (int i=0; i<indentationCount; i++) sb.append(TAB); }

@Override public void endLine() { sb.append(NEWLINE); }

@Override public void extraLine(int count) { while (count-- > 0) sb.append(NEWLINE); }

@Override public void startMarker(int type) {}

@Override public void endMarker(int type) {}

};

3]、And call the method "decompile(loader, printer, internalTypeName);"

ClassFileToJavaSourceDecompiler decompiler = new ClassFileToJavaSourceDecompiler();

decompiler.decompile(loader, printer, "path/to/YourClass");

String source = printer.toString();

下载地址:https://github.com/java-decompiler/jd-core

3、jd-eclipse(Eclipse 的 Java 反编译插件)

反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken介绍

jd-eclipse 是 Eclipse 的一个用来对 Java 进行反编译的插件,基于 Java Decompiler 开发。

如何构建JD-Eclipse:

> git clone https://github.com/java-decompiler/jd-eclipse.git

> cd jd-eclipse

> ./gradlew build

生成“build/distributions/jd-eclipse-x.y.z.zip”。

安装说明:

构建或下载并解压缩“jd-eclipse-site-x.y.z.zip”。

启动Eclipse。

单击“帮助>安装新软件...”。

单击按钮“添加...”以添加新的存储库。

输入“JD-Eclipse更新站点”,然后选择本地站点目录。

选中“Java Decompiler Eclipse插件”。

下一步,下一步,下一步...,然后重新启动。

卸载JD-Eclipse说明:

单击“帮助>关于Eclipse>安装详细信息”。

选择“JD-Eclipse插件”。

点击“卸载...”。

下载地址:https://github.com/java-decompiler/jd-eclipse

4、Bokken(开源逆向代码工程)

Bokken 是开源逆向代码工程,非常直观,对用户友好,支持二进制分析,有大量的特性和视觉工具。

支持二进制分析:支持 PE、Elf 和 mach0 文件格式。支持 ARM、i386 和 x86-64 架构。调用/系统调用识别。代码/数据交叉引用等等。

反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken介绍

用户界面:

反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken介绍

注明

以上就是反编译工具Cutter-GUI、JD-Core、jd-eclipse、Bokken的介绍内容,这些反编译工具都能使用在Linux操作系统中。

栏目相关文章