首页
社区
课程
招聘
[求助]这样调用MessageboxA为什么不兼容呢?
发表于: 2009-7-15 18:23 4784

[求助]这样调用MessageboxA为什么不兼容呢?

2009-7-15 18:23
4784
今天想给一个程序加一个猥琐的窗口,就写了下面这几行代码

01032000 >  6A 00           push    0
01032002    68 50120301     push    01031250         ;DDDDDDDD
01032007    68 60120301     push    01031260          ;YYYYYYYYYYY
0103200C    6A 00           push    0
0103200E    FF15 19300301   call    dword ptr [<&user32.MessageBoxA>>; user32.MessageBoxA

但是这个程序在除了本机上的XP系统上不能弹出窗口。本机的虚拟机上的2003可以弹窗居然。
求真相~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
放完整代码.
2009-7-17 08:26
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
不知道你调用的api 函数是 什么样的地址,是硬编码,还是动态调用的。
2009-7-17 08:36
0
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
4
从机器码反推:call    dword ptr [1033019]
应不是硬编码,感觉解决的办法,还是OD调试跟踪一下。
2009-7-17 09:24
0
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
跟踪一下应该可以解决问题的~~~
2009-7-17 09:53
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1.你的虚拟机是32位?,本机64位?
2.MessageBoxW试试
2009-7-17 13:09
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
不知道。
看起来应该没问题恶的,你调试下看看为什么不行。
2009-7-17 13:21
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=wyfe;656755]从机器码反推:call    dword ptr [1033019]
应不是硬编码,感觉解决的办法,还是OD调试跟踪一下。[/QUOTE]

如何知道不是硬编码?地址 1033019 处的内容并不知道是什么啊。
2009-7-17 13:22
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
OD跟踪吧...我只能想到这个办法了...
2009-7-17 20:30
0
雪    币: 546
活跃值: (1672)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
10
看你的基址,好像是dll中的,如果是dll,那就涉及到重定位了。不知道我说的对不对。
2009-7-17 22:01
0
游客
登录 | 注册 方可回帖
返回
//