是否有用于将 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 */
我看过asmpure ,但是它需要修改才能在非 Windows 机器上运行。
实际上我需要一个汇编器和一个反汇编器,是否有同时提供两者的库?
最佳答案
有一座图书馆,看似幽灵;它的存在广为人知:
XED(X86编码解码器)
英特尔写道:https://software.intel.com/sites/landingpage/pintool/docs/71313/Xed/html/
可以用Pin下载:https://software.intel.com/en-us/articles/pintool-downloads
关于c 库 x86/x64 汇编程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001094/