首页
社区
课程
招聘
[求助]汇编IMUL指令求解!
发表于: 2016-10-24 11:48 5195

[求助]汇编IMUL指令求解!

2016-10-24 11:48
5195
EAX=1F25D27E

IMUL EAX,EAX,1FFFF

得出结果:3E4B 85D62D82

我看解释是:EAX=EAX*1FFFF 即 1F25D27E*1FFFF,然后存放到EDX:EAX里面,EAX=85D62D82

我的问题是 EDX 应该为 3E4B 才对吗?但是我用OD查看 EDX=00000000

或者我有 EAX=1F25D27E 与计算结果 85D62D82 的值,如何得出 1FFFF?

85D62D82 / 1F25D27E 这样计算不对啊.

汇编菜鸟,往大神讲解一下!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 3279
活跃值: (1997)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是相乘运算。
2016-10-24 12:09
0
雪    币: 1
活跃值: (366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢回答!

相乘运算我知道的,得出结果:3E4B 85D62D82 EAX=85D62D82;那 3E4B 呢?不应该放入EDX吗?但是此时EDX却等于0
2016-10-24 12:36
0
雪    币: 3279
活跃值: (1997)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
什么软件?那个EDX的值可能是其实运算保存的。
2016-10-24 13:50
0
雪    币: 1
活跃值: (366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我是在一个CALL里面,EDX一直是00000000
2016-10-24 13:53
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mov EAX,1F25D27E
MOV ECX,0x1FFFF
IMUL ECX
edx , ecx = 3E4B , 85D62D82
2016-10-24 14:13
0
雪    币: 1
活跃值: (366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢回答!

如果只有 ECX=85D62D82 和 EAX=1F25D27E 的值,如何计算出 1FFFF 呢?

ECX / EAX ? 不对呢,因为程序的EDX一直是00000000,imul后EDX也是0
2016-10-24 14:27
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
8
004AD072 >    33D2                    xor     edx, edx
004AD074      B8 7ED2251F             mov     eax, 0x1F25D27E
004AD079      69C0 FFFF0100           imul    eax, eax, 0x1FFFF

将最后的计算结果 放到EAX当中,超出的数值,舍弃,这相当是于2个32位的数相乘,结果可能会是64位数,但是我只放到一个32位的数中,所以只有低位。高32位,舍弃。

004AD080      33D2                    xor     edx, edx
004AD082      B8 7ED2251F             mov     eax, 0x1F25D27E
004AD087      F7E8                    imul    eax                              ;  这里结果放EDX:EAX
004AD089      69C0 FFFF0100           imul    eax, eax, 0x1FFFF                ;  这里结果只放EAX
004AD08F      90                      nop
2016-10-24 14:36
0
雪    币: 1
活跃值: (366)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
也就是说没有办法逆向推算出 1FFFF 了 对吗?因为高位已经被舍弃了
2016-10-24 14:52
0
游客
登录 | 注册 方可回帖
返回
//