【转】利用SEH和INT3实现API HOOK

标 题: 【原创】利用SEH和INT3实现API
HOOK
作 者: weizehua
时 间:
2011-03-27,23:50:38
链 接:
http://bbs.pediy.com/showthread.php?t=131457

用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的程序,带源代码^_^

http://yunpan.cn/cyqFFqxYEyV8h  提取码 5104

时间: 2024-10-12 16:49:54

【转】利用SEH和INT3实现API HOOK的相关文章

API HOOK介绍 【转】

什么是“跨进程 API Hook”? 众所周知Windows应用程序的各种系统功能是通过调用API函数来实现.API Hook就是给系统的API附加上一段小程序,它能监视甚至控制应用程序对API函数的调用.所谓跨进程也就是让自己的程序来控制别人程序的API调用了. API Hook 理论 通过对Win32 PE文件的分析(如果你还不熟悉PE文件格式,可以看看Iczelion的PE教程或者LUEVELSMEYER的<<The PE File Format>>).我们知道在PE文件中的

API Hook完全手册

文章来源: http://blog.csdn.net/atfield 原文作者: ATField 整理日期: 2008-07-16 发表评论 字体大小: 小 中 大 注:本文是根据我两年前写的一个系统行为监测程序写成(参考了一些书籍和文章).最近在论坛上看到有不少人在问关于API Hook的问题,便写成此文,希望能对朋友们在写API Hook代码的时候能够有所帮助. 1 基本原理 API Hook是什么我就不多说了,直接进入正题.API Hook技术主要有下面的技术难点: 如何将自己的的代码In

Windows Dll Injection、Process Injection、API Hook

catalogue 1. 引言 2. 使用注册表注入DLL 3. 使用Windows挂钩来注入DLL 4. 使用远程线程来注入DLL 5. 使用木马DLL来注入DLL 6. 把DLL作为调试器来注入 7. 使用createprocess来注入代码 8. api拦截 9. Detours - Inline Hook 1.  引言 应用程序需要跨越进程边界来访问另一个进程的地址空间的情况如下 1. 我们想要从另一个进程创建的窗口派生子类窗口 2. 我们需要一些手段来辅助调试,例如我们需要确定另一个进

API HOOK及其注入技术详解

大家有没有想过,一些系统监控软件是如何得知我们所进行的操作的?杀软启发式分析是如何对病毒行为进行拦截和监控的?外挂又是如何读取到游戏的内部数据的?这些功能的实现,基本都有API HOOK存在.API HOOK分为ring0和ring3层,这里我们以ring3层API HOOK 进行讲解分析. API HOOK 在ring 3的实现,分为inline 和修改导入表2种方法,所谓inline,是指直接写入并覆盖函数开头字节汇编码的方法,这种方法有一个问题,便是他被杀软重点监控,成功率极低,而修改导入

[封装]简单易用的Api Hook函数 - MyApiHookFun

使用方法:0.首先使用者请保证跑我的函数时已经注入到目标程序中1.引用外部变量extern DWORD *g_pApiAddr;extern BYTE *g_pOldCode;2.建立一个hook后工作函数 以下是hook后的测试函数LPVOID _declspec(naked) WINAPI TestFun(LPVOID UnKnow1, LPVOID UnKnow2){    ::MessageBox(NULL, TEXT("这是一个hook提示"), TEXT("提示&

API HOOK

API HOOK技术是一种用于改变API执行结果的技术,Microsoft 自身也在Windows操作系统里面使用了这个技术,如Windows兼容模式等. API HOOK 技术并不是计算机病毒专有技术,但是计算机病毒经常使用这个技术来达到隐藏自己的目的. API HOOK解释 在windows系统下编程,应该会接触到api函数的使用,常用的api函数大概有2000个左右.今天随着控件,stl等高效编程技术的出现,api的使用概率在普通的用户程序上 就变得越来越小了.当诸如控件这些现成的手段不能

程序破解之 API HOOK技术 z

API HOOK,就是截获API调用的技术,在程序对一个API调用之前先执行你的函数,然后根据你的需要可以执行缺省的API调用或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socket API : recv,recvfrom, send, sendto等等,当然你可以用网络抓包工具,这里只介绍通过API HOOK的方式来实现, 主要原理是在程序运行中动态修改目标函数地址的内存数据,使用jmp语句跳转到你的函数地址,执行完后再恢复内存数据, 汇编代码是: mov eax, pNe

API HOOK技术

API HOOK技术是一种用于改变API执行结果的技术,Microsoft 自身也在Windows操作系统里面使用了这个技术,如Windows兼容模式等. API HOOK 技术并不是计算机病毒专有技术,但是计算机病毒经常使用这个技术来达到隐藏自己的目的. 外文名 API HOOK      用于 改变API执行结果的技术 应用 如Windows兼容模式等  目的 计算机病毒隐藏自己的技术                                                      

API Hook基本原理和实现

2009-03-14 20:09 windows系统下的编程,消息message的传递是贯穿其始终的.这个消息我们可以简单理解为一个有特定意义的整数,正如我们看过的老故事片中的“ 长江长江,我是黄河”一个含义.windows中定义的消息给初学者的印象似乎是“不计其数”的,常见的一部分消息在winuser.h头文件中定义. hook与消息有着非常密切的联系,它的中文含义是“钩子”,这样理解起来我们不难得出“hook是消息处理中的一个环节,用于监控消息在系统中的传递,并在这些消息到达最终的消息处理过