首页
社区
课程
招聘
[求助]机器码识别中三字节的指令碰到四字节的操作数。小鸟求助
发表于: 2007-10-4 15:53 5645

[求助]机器码识别中三字节的指令碰到四字节的操作数。小鸟求助

2007-10-4 15:53
5645
用于测试的机器码是
\x0E\x66\xB8\x10\x00\x00\x00
汇编语句等于:
PUSH CS
MOV EAX,10H
我的程序识别为:
PUSH CS (0E)
MOV AX,10H  (66:FFFFFFB8 1000)   <-   4字节的操作数成了2字节.
ADD [EAX],[...] (00 00)

也就是0x10 ,0x00 ,0x00 ,0x00 的四字节操作数成了两字节。
原因应该是Intel指令的最大长度是三字节。
问题在于.操作数是四字节的。
b8 10 00 00 00  -> 1.  b8 10 00
                               2.  00 00

解决方法?
难道我是不是该跳过0x00的机器码?

若是。我该一个0x00就跳过还是包含2个以上才跳呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
2
你多了0x66前缀-> 16位操作数
2007-10-4 16:47
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

确实确实。一点就通啊
我忘记写了。
老大就是老大。

感激中。
恨自己鸟语不行啊。那IA32手册都没怎么看
2007-10-4 16:50
0
游客
登录 | 注册 方可回帖
返回
//