首页
社区
课程
招聘
[讨论]发一条我所知的最长的IA32指令
发表于: 2010-5-17 21:39 5490

[讨论]发一条我所知的最长的IA32指令

2010-5-17 21:39
5490
C78458 00004000 08000000      mov     dword ptr [eax+ebx*2+400000], 8

足足是11字节,哪位兄有更长的

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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 295
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
楼主真博学123456
2010-5-18 05:21
0
雪    币: 615
活跃值: (1202)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
神谕 ???
2010-5-18 05:35
0
雪    币: 392
活跃值: (89)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
4
最长有15字节长的
2010-5-18 09:32
0
雪    币: 780
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
说来听听撒.
2010-5-18 09:50
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
跟我说一下是哪一条吧
2010-5-18 11:43
0
雪    币: 1407
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
搜了一下
In theory, by adding all appropriate prefix bytes you can obtain an
instruction that is up to 16 bytes long. However, the x86 will generate
an exception if the instruction length exceeds 15 bytes.

The longest x86 instruction is 15 bytes in 16-bit mode and 13 bytes in
32-bit mode:

[16-bit]
66 67 F0 3E 81 04 4E 01234567 89ABCDEF
add [ds:esi+ecx*2+0x67452301], 0xEFCDAB89

[32-bit]
F0 3E 81 04 4E 01234567 89ABCDEF
add [ds:esi+ecx*2+0x67452301], 0xEFCDAB89
2010-5-18 13:02
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
00401000 > $  81844E 01234567 89ABCDEF       add     dword ptr [esi+ecx*2+67452301], EFCDAB89
0040100B   .  90                             nop
0040100C   .  90                             nop
0040100D   .  90                             nop
0040100E   .  90                             nop
0040100F   .  90                             nop
00401010   .  F0:3E:81044E 01234567          lock add dword ptr [esi+ecx*2], 67452301
00401019   .  89AB CDEF0000                  mov     dword ptr [ebx+EFCD], ebp
0040101F   .  90                             nop
00401020   .  90                             nop

OD测试了一下 还是11字节
2010-5-18 13:39
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
上传的附件:
2010-5-18 14:03
0
雪    币: 724
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
11字节的指令加前缀就是了,可以加到15字节,再长就有异常了,段超越可以加多个,比如:
3E 3E 3E 3E 81 84 4E 67 45 23 01 ef cd ab 89
一些工具反汇的结果可能不正正确,显示前3个3E为非法指令,但实际它是合法的。
楼上的指令一定会异常,因为MOV不支持LOCK前缀。
2010-5-18 14:16
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
26:C78458 00004000 08000000         mov     dword ptr es:[eax+ebx*2+400000], 8

已经成功制造出12字节的了 还差一个字节就上珠穆朗玛了
2010-5-18 14:28
0
雪    币: 69
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
饿,4+3+1+1+4+4
2010-5-18 20:29
0
雪    币: 69
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
貌似没有记错,查下IA32文档
2010-5-18 20:30
0
游客
登录 | 注册 方可回帖
返回
//