首页
社区
课程
招聘
[已解决]
发表于: 2008-1-22 14:51 3781

[已解决]

2008-1-22 14:51
3781
为什么我这样调用MessageBoxTimeOutA或者W
总是不行呢
    .data?
Hdll DWORD ?
Hproc DWORD ?

    .data
dllname db "user32.dll",0
procname db "MessageBoxTimeOutA",0
haha db "test of MessageBoxTimeOut-_-",0
    .code

start:
invoke LoadLibrary,offset dllname
mov Hdll,eax
invoke GetProcAddress,Hdll,offset procname
mov Hproc,eax
push 2000
push 0
push MB_OK
push offset haha
push offset haha
push 0
call Hproc
invoke ExitProcess,NULL
调试了一下,LoadLibrary返回的都是正确的值,但是GetProcAddress却总是调用失败,返回的总是0,请问这是什么原因造成的?(把procname改成"MessageBoxA"能成功)
难道Undocumented API需要用什么特殊的方式调用?

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
将下面那句
procname db "MessageBoxTimeOutA",0
改成下面这样就可以了。
procname db "MessageBoxTimeoutA",0
2008-1-22 15:19
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
啊!!!
原来是这样,这个函数我也是在网上无意搜索到的,名字照搬的
成功了,非常感谢小虾版主,你总是如此热心 -_-
2008-1-22 15:25
0
游客
登录 | 注册 方可回帖
返回
//