自己做一个的网络防火墙(三):安装防火墙DLL

系列文章目录

文章一、技术介绍及环境搭建、编译过程:https://blog.csdn.net/weixin_42559271/article/details/115803399

文章二、HOOK函数介绍:https://blog.csdn.net/weixin_42559271/article/details/115956010



一、 前言

上一篇文章文章我们已经成功编写了自己的一个简单的防火墙,接下来自然需要的就是把我们写好的DLL注入到Windows中,这也是本节文章的一个目的。
另外需要注意的一点是,安装程序实质上是对Windows数据库的一次操作,和编写SPI时看到的概念关联性不太强,在编写SPI时所说的逻辑在这里具体体现为协议链。

二、 背景知识

先总结一下安装程序中需要掌握的一些概念:

  • Winsock目录
  • Winsock目录中的数据项
  • 描述数据项的数据结构
  • 相关的API函数

2.1 管理系统数据的几种方式

我们知道,在Windows中有着许多的数据库,用户通过自己配置这些数据库来配置自己的个性化系统。从这个角度来说,安装自己的分层协议更像是在系统的数据库中添加自己的一个数据项。一般来说,配置一个数据库可以通过以下几种方式:

  • 通过系统提供的数据库管理软件来实现,如Windows下的注册表就是一个最经典的代表,但是这种方式不利于自动化的进行,而是利于人机交互;
  • 通过一个具体的文本文件来进行处理,如Nginx的配置文件,这种方式兼顾了人机交互和程序编码,但是这种方式需要文件系统的支持,否则大量读取外存上的文件会造成I/O阻塞,比较经典的处理方式是Linux的“一切皆文件”的处理思想;
  • 系统提供编程API,编程者通过这些编程API来管理系统的数据库,这种方式的弊端在于编程者必须面对繁多的概念,必须以编写程序的思维去安装一个数据项,这通常会造成一些困惑;

2.2 Winsock目录

非常不幸的是,LSP技术仅能通过第三种方式来向系统数据库(具体而言叫做Winsock目录)添加自己的协议。
我们可以这样理解这样理解“Winsock目录”这个概念:它是一个位于Windows下的数据库,数据库中存储了OS支持的通讯协议接口,每当应用程序调用connects

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值