首页
社区
课程
招聘
[求助]拦截 MessageBoxA 函数的返回值
发表于: 2014-4-20 19:07 8261

[求助]拦截 MessageBoxA 函数的返回值

2014-4-20 19:07
8261
不知道怎么删帖  被喷很无奈  反正还是有热心朋友的 确实 eax就是函数返回值 直接给eax传值再ret就可以了    VB调试下正常 E里调试崩溃. 可能就是跟编译器有关系了. 感谢2楼 8楼 18楼的热心朋友

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 1392
活跃值: (5147)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
2
EAX就是返回值。
2014-4-20 19:09
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=ffggddss;1276574]不太懂dll的返回值 运行机制  找找半天堆栈 寄存器 都没找到返回值放在哪里- -


直接把函数入口处 修改成 ret 0x10 可以直接返回0
谁能教下 怎么让他返回1 或者2 呢
[/QUOTE]

这个与“dll”有什么直接或者间接关系吗……你这不叫“不怎么懂dll”,是不怎么懂“什么叫计算机”
2014-4-20 19:41
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
现在这些人,全都是急功近利的伸手党……从来不会考虑自己真正去学点东西……连最起码的基础都没有,就开始搞这些了……挂钩,外挂这些,真是一门神奇的技术啊,感觉貌似扫地大妈哪天厌倦了,也随便搞点代码玩玩……不过人家扫地大妈做事够踏实
2014-4-20 19:47
0
雪    币: 68
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哈哈 我笑喷了
2014-4-20 19:48
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
该怎么做才能让他正常运行呢 直接给eax值后 ret  od里没事 调试器里输出返回值 会崩溃
2014-4-20 19:53
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
无语 我这跟外挂 伸手党有什么关系? 我直接从调用处改他返回值不就行了 我何必非要从函数这里改他返回值呢? 懂的话 说 要么给文章 你没新手过?
2014-4-20 20:06
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
你跑人家MessageBoxA里改什么咯。  你直接在CALL下面 加一条 改EAX的值就好了啊。
2014-4-20 20:09
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
晕死 我只是想知道这怎么改 到外面直接改 我知道 但我只是想知道该怎么里面改!
2014-4-20 20:17
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
。。。。  你看那个地址。 MessageBoxA 是一个函数,他只是个调用。怎么能在里面改。不信,你试试 改掉能保存呢
2014-4-20 20:27
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不可能吧  MessageBoxA 是有返回值的 点的确定 返回0 点的取消返回1   我只是想改下这个返回值!!! 难道这个函数的返回值只能到外面改- -!
2014-4-20 20:31
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
我会先学好起码的常识再做该做的事
2014-4-20 20:32
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
删了回复吧
2014-4-20 20:40
0
雪    币: 7344
活跃值: (4044)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
算了,还是删了回复吧
2014-4-20 20:48
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
你这不叫“技多”,你这是起码的基础都没有,与学没学过某个具体的技能比如逆向没有任何关系
2014-4-20 20:49
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
删了回复吧
2014-4-20 20:54
0
雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
恩 数值这个我注意到了  测试了下VB里 直接ret返回值  是不会出问题的 返回值输出增长 程序也没崩溃 E里就崩溃 鬼知道咋回事 !
2014-4-20 21:11
0
雪    币: 1392
活跃值: (5147)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
18
mov eax,1
retn 0x10
注意堆栈平衡retn 0x10就可以了。返回的就是1了
想返回0
mov eax,0
ret 0x10

崩溃一般是堆栈没有平衡好
2014-4-20 21:13
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼主我是来虚心学习的
看你这图,好像根本就没对messagebox的返回值进行处理啊。
你这里的返回根本不是它的返回值
一般api函数的话
call xxx
mov xx,eax
这个时候的eax就是返回值
你这里估计就是起个提示作业
我也是新手,不敢妄评
2014-4-20 22:33
0
雪    币: 2747
活跃值: (1097)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
MessageBox存在于User32.dll中,这个是系统文件。
你不会为了修改一个程序而把他修改了吧,那么其他程序调用这个API时就不正常啦
所以如果想修改消息框的消息,只能从程序传递参数时入手,还要涉及一点点汇编
建议楼主看一看动态链接库(dll)方面的知识,有了基础这些就自然知道了,加油~
另外可以看看MSDN的帮助文档,了解API后才能胸有成竹嘛。
2014-4-20 22:36
0
游客
登录 | 注册 方可回帖
返回
//