问题描述
我是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 (将#修改为@)