Dll与Hook都是什么意思?Dll与Hook的区别解析

这篇博客探讨了DLL和Hook的概念及其差异。DLL是动态链接库,用于函数的动态加载,而Hook则是一种拦截机制,常用于调试和监控。文章通过C++示例解释了DLL的创建和使用,包括隐式和显式调用,并介绍了Hook的工作原理,如WH_CALLWNDPROC等不同类型的Hook。最后,博客提到了卸载Hook的方法。
摘要由CSDN通过智能技术生成

近期有空研究了一下DLL和HOOK的一些知识,故此做下笔记。下面以add,sub两函数和Point类为例来解释Dll与Hook的区别。

 简单的说一个是勾子,一个是动态库注入,hook起到拦截的作用,dll的使用就很常见了。任何函数的运行都需要动态或静态库。

一,Dll的简单使用

      使用 一个DLL,一般需要另外两个文件.H和.LIB。.H文件或.LIB文件。.H文件可用于使用.DLL的客户或是.DLL文件本身,其作用编译时期。.LIB文件是一个引入苦,用于客户程序,作用在链接时期。.DLL文件当然作用于运行时期了。

    打开VS2008,选择Win32,DLL空项目。新建一个DLL.CPP和DLL.H文件。

//DLL.H
#ifdef DLL_API
#else
#define DLL_API  _declspec(dllimport)
#endif

DLL1_API int add(int a,int b);
DLL1_API int subtract(int a,int b);

class DLL1_API Point
{
public:
    void output(int x,int y);
};

//DLL.CPP
#define DLL_API  _declspec(dllexport)
#include "Dll.h"
#include <stdio.h>

int  add(int a,int b)
{
	return a+b;
}

int  subtract(int a,int b)
{
	return a-b;
}

void Point::output(int x,int y)
{
	printf("x = %d,y = %d",x,y);
}

//Dll应用端
#include <iostream>
#include "Dll.h"
usin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值