如何使用Rust的iced-x86从指令字符串生成操作码

问题描述

我是Rust的新手,我在弄乱iced库来分解内容,这非常有用。

我似乎无法理解的是如何使用Encoder字符串而不是Instruction结构生成操作码。

据我所知iced-x86文档未涵盖此内容。

根据文档:The encoder can be used to re-encode decoded instructions at any address-没有说明有关对字符串中的指令进行编码

这是我基本上要实现的目标:

use iced_x86::*;

let instr = "xchg ah,[rdx+rsi+16h]";

let mut encoder = Encoder::new(64);
match encoder.encode(&instr,0x5555_5555) {
    Ok(len) => assert_eq!(4,len),Err(err) => panic!("{}",err),}
// We're done,take ownership of the buffer
let buffer = encoder.take_buffer();
assert_eq!(vec![0x86,0x64,0x32,0x16],buffer);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...