如何解决如何使用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 举报,一经查实,本站将立刻删除。