基于windows防火墙系统开发
来源:互联网 发布:淘宝店铺名称大全女装 编辑:程序博客网 时间:2024/04/30 03:35
好久没有自己想做的软件了,以前做防火墙想做了很久,但一直没有时间,或许觉得很难,周末实在无聊,就开始着手做这个了,比想的要简单多了
实现了,按照自定义法则(根据IP,端口,应用程序)通过 /丢弃数据包,监控进程,基本实现天网防火墙的业务功能,加上自己一些想法
主要用了hook,内存映射,一些api函数,如果对这些感兴趣的朋友,可以讨论哈
hook提供思路性的代码
function NEWWSARecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD; var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD;
lpOverlapped: LPWSAOVERLAPPED; lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;
type
tWSARecv = function(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD; var lpNumberOfBytesRecvd: DWORD; var lpFlags: DWORD;
lpOverlapped: LPWSAOVERLAPPED; lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;
var
ip: string;
port: integer;
localport: Integer;
i: integer;
ProtId: string;
begin
//恢复入口
// MessageBeep(1000);
GetIPAndPort(s, ip, port, localport, ProtId);
bRec := bRec + lpNumberOfBytesRecvd;
if CheckRule(s, Mode_IN, ip, port, localport, ProtId) then
begin
Hook[4].Restore;
result := tWSARecv(hook[4].OldFunction)(s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd, lpFlags, lpOverlapped, lpCompletionRoutine);
Hook[4].Change;
end
else
begin
WSASetLastError(WSAENETDOWN);
result := SOCKET_ERROR;
end;
end;
Hook[4] := THookClass.Create(Trap, @WSARecv, @NEWWSARecv);
- 基于windows防火墙系统开发
- 配置Windows 7系统防火墙
- windows网络防火墙开发二三事
- 基于Linux系统的包过滤防火墙
- 基于Linux系统的包过滤防火墙
- 转:开发基于Windows2000/XP的防火墙
- DOS命令 关闭windows系统防火墙
- 解析Windows 7系统的防火墙配置
- Windows系统下ORACLE穿透防火墙问题解决
- 基于Windows CE的嵌入式系统开发流程
- 基于Windows CE的嵌入式系统开发流程
- 在Windows 2000/XP下开发防火墙
- 开发Windows 2000/XP下的防火墙
- 开发Windows 2000/XP下的防火墙
- 基于IMD驱动ARP防火墙设计(windows平台)
- Windows 防火墙
- 配置Windows Server 2008防火墙让系统更安全
- Windows系统防火墙端口批量添加 VBS实现
- MyEclipse + Weblogic8.1 开发 EJB(1)
- 今天之前是昨天
- 生产 数据库中 存储过程+参数+类型
- 双服务器热备系统软件开发
- DotNet(C#)学习-你学到什么程度!
- 基于windows防火墙系统开发
- 让弹出窗口在屏幕中间显示,没有滚动条,并且点击某行,窗口大小不变化.
- blog更新预告
- 一个Popup的日历控件
- Win32汇编语言教程
- 从Visual Studio 2003到Visual Studio 2005的演化
- 用好VS2005之扩展membership服务
- C#基础全接触
- 软件项目开发《七十五条》不可以原谅的错误及相关解释