首页
社区
课程
招聘
[旧帖] [讨论]对MessageBoxA的HOOK 0.00雪花
发表于: 2013-12-13 16:52 1574

[旧帖] [讨论]对MessageBoxA的HOOK 0.00雪花

2013-12-13 16:52
1574
最近在学习inline hook,就从简单的MessageBoxA下手,因为此前在看雪中有前辈发过相关的帖子,原文请参见(http://bbs.pediy.com/showthread.php?t=98184),但是经过实验,是有一些问题的,小弟就附上自己修改过的代码(实验平台:XP SP3 编译工具:VC6),以及对上一帖中存在问题的分析。如果有不对的地方,请大家指正。

堆栈没有保持平衡,有2个地方:
1. MyMessageBox定义没有加__declspec(naked),编译器就会增加修改保存EBP,并修改EBP的代码

2. 在于这个函数内部,它调用了Srcs(),OldMessageBox(),调用本身其实就是一个把参数压栈,保存返回地址以及跳转的过程,所以这也会导致堆栈的不平衡

还有一点,其实我觉得不需要将MesasgeBoxA的前5字节写死,进行比对;可以把前五字节保存起来,然后进行HOOK,当不需要HOOK的时候,用保存的代码进行恢复。

也不肯定一定正确,所以请大家指正。

如果对inline hook感兴趣也可以参考另一篇文章:
http://bbs.pediy.com/showthread.php?t=98493

附件用法:
正确编译之后,写一个windows程序,加载dll,并且调用InstallEngine接口。然后再写一个测试程序调用MessageBoxA。

谢谢

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶一下,LZ可以尝试改造下成通用的HOOK代码
2013-12-19 21:56
0
雪    币: 3
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
小白 不懂inline hook是什么
2013-12-19 22:55
0
游客
登录 | 注册 方可回帖
返回
//