c库x86/x64汇编程序

Tyi*_*ilo 16 c 64-bit x86 assembly

是否有用于将x86/x64汇编字符串组装到操作码的C库?

示例代码:

/* size_t assemble(char *string, int asm_flavor, char *out, size_t max_size); */

unsigned char bytes[32];
size_t size = assemble("xor eax, eax\n"
                       "inc eax\n"
                       "ret",
                       asm_x64, &bytes, 32);

for(int i = 0; i < size; i++) {
    printf("%02x ", bytes[i]);
}

/* Output: 31 C0 40 C3 */
Run Code Online (Sandbox Code Playgroud)

我看过asmpure,但它需要修改才能在非Windows机器上运行.

我实际上都需要一个汇编程序和一个反汇编程序,是否有一个提供两者的库?

小智 7

有一个看似鬼的图书馆; 它的存在是众所周知的:

XED(X86编码器解码器)

英特尔写道:https://software.intel.com/sites/landingpage/pintool/docs/71313/Xed/html/

它可以通过Pin下载:https://software.intel.com/en-us/articles/pintool-downloads


Tyi*_*ilo 1

Keystone现在似乎是一个不错的选择,但当我问这个问题时它还不存在。