首页
社区
课程
招聘
[旧帖] 这条命令什么意思? 0.00雪花
发表于: 2009-1-1 21:11 3288

[旧帖] 这条命令什么意思? 0.00雪花

2009-1-1 21:11
3288
035A6E30  /$  A1 0833E703   mov     eax, dword ptr [3E73308]
035A6E35  |.  8B15 F0D5DC03 mov     edx, dword ptr [3DCD5F0]
035A6E3B  |.  8D48 01       lea     ecx, dword ptr [eax+1]
035A6E3E  |.  3BCA          cmp     ecx, edx
035A6E40  |.  7E 0E         jle     short 035A6E50
035A6E42  |.  C705 0C33E703>mov     dword ptr [3E7330C], 1
035A6E4C      83C8 FF       or      eax, FFFFFFFF
035A6E4F  |.  C3            retn
035A6E50  |>  8B15 E8D5DC03 mov     edx, dword ptr [3DCD5E8]                    ;  swds.03DCD620
035A6E56  |.  890D 0833E703 mov     dword ptr [3E73308], ecx
035A6E5C  |.  0FBE0402      movsx   eax, byte ptr [edx+eax]  //不明白这句话是什么意思 此句话过后中文的utf8(比如E7)会被扩展成FFFFFFE7,为什么??? 此处EDX 03DCD620的内存值是FFFF
035A6E60  \.  C3            retn

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
MOVSX  先符号扩展,再传送.
MOVZX  先零扩展,再传送.
2009-1-1 23:33
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

MOVSX 先符号扩展,再传送.
MOVZX 先零扩展,再传送.

那为什么有些是扩展00000000有些是扩展FFFFFFFF
2009-1-2 11:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
movsx   eax, byte ptr [edx+eax] 这条指令指定了操作数是字 MOVSX就是带符号扩展 就是把E7带符号扩展成字 E7化为2进制是11100111 符号就是1 因此 扩展成字就是1111111111100111 也就是FFFFFFE7 MOVZX是零扩展 也就是不论操作数什么符号 前面都用0填充 E7(11100111)如果零扩展成字的话 就是0000000011100111 也就是000000E7

多去看看汇编的资料...
2009-1-6 08:52
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很详细谢谢了
2009-1-6 10:14
0
游客
登录 | 注册 方可回帖
返回
//