用SEH技术实现API Hook,网上已经有帖子了,可是那些帖子太老,太陈旧,只是适用于95、95时代。
在XP上,网上说的方法根本行不通。

小弟刚学API HOOK, 有幸发现在XP上自由使用SEH链的方法,现在把成果公布出来大家一起分享^_^
各位大侠如果已经知道了,不要笑话小弟^_^

设置SEH链:
PVOID AddVectoredExceptionHandler(int 顺序,PVOID ErrorHander)

移除SEH链:
RemoveVectoredExceptionHandler(PVOID ErrorHander)

ErrorHander函数声明:
LONG WINAPI ErrorHandler(struct _EXCEPTION_POINTERS *ep)

好,我的方案是获得Debug权限(这样才能OpenProcess),然后把我的Dll绑到目标程序上。
Dll把SEH链设置好,就等着它上钩^_^

当然,因为SEH链是什么错误都处理的,上钩的不一定是我们想要的鱼,这时我们只要判断EIP就知道是不是我们要的鱼啦^_^

废话不多说,下面附上HOOK了DrawTextExW和TextOutW的程序,带源代码^_^

上传的附件 DrawRedTextW.rar