繁体   English   中英

任何面向对象的灵活Java x86反汇编程序库?

[英]Any Object-Oriented Flexible Java x86 Disassembler Library?

我正在寻找应该具有以下功能的Java x86反汇编程序库:

  • 拆卸X86代码
  • 用Java类和对象描述X86命令
  • 命令类应接受具有通用返回值的访问者

所以,如果我有一些这样分解的代码:

MOV EAX, EBX
CALL 1234
JMP 88

然后该库应为MOV,CALL和JMP创建三个对象。 然后,我实现了一个访问者,该访问者执行各种操作(例如:解释,转换为x64或另一种处理器体系结构的指令)。

提前致谢。

好吧,不完全是。 但是有Java绑定,例如Capstone

这是maven绑定 您可以在此处下载本机库。 是一个Java代码示例。

// Test.java
import capstone.Capstone;

public class Test {

  public static byte [] CODE = { 0x55, 0x48, (byte) 0x8b, 0x05, (byte) 0xb8,
    0x13, 0x00, 0x00 };

  public static void main(String argv[]) {
    Capstone cs = new Capstone(Capstone.CS_ARCH_X86, Capstone.CS_MODE_64);
    Capstone.CsInsn[] allInsn = cs.disasm(CODE, 0x1000);
    for (int i=0; i<allInsn.length; i++)
      System.out.printf("0x%x:\t%s\t%s\n", allInsn[i].address,
          allInsn[i].mnemonic, allInsn[i].opStr);
  }
}

我不知道任何这样的库完全用Java实现。 虽然,我确实听说过distorm反汇编程序。 它是用C语言开发的。但是Java包装器可用于该库。 看看它。 这可能对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM