BlackFeather'S Blog 我的技术小博 -- C/C++,Python,Golang

基于数据包过滤的网址过滤软件--(VB+PB)

 

这一段时间做了几个程序,今天贴出来一个,不过不开源啦,需要代码的直接加我QQ

开源啦:http://fenlog.com/post/74.html

原来写过一个程序:绿盾上网助手(绿坝二代) 贴在是这个http://fenlog.com/post/51.html ,用了BHO技术所以只能用于IE浏览器(是只能用于微软的IE浏览器,其他IE内核的浏览器也不能用),不能用于别的浏览器,虽然还用但是局限性相当大。但是现在是个网络科技公司就出自己的浏览器,什么搜狗、360、TT、XXXX,数不尽数,还有GOOGLE浏览器和Opera等国外的,就搞不定了。后来有人需要这个,就想了一个方法实现了过滤所有浏览器网址的功能。

浏览器访问网站都是通过HTTP协议来完成的。比如输入www.baidu.com就会变成http://www.baidu.com这就是使用HTTP协议来打开网站(有人说还有https,一会我再解释这个)。浏览器打开网页的时候首先发送一个GET或者POST的HTTP包来请求网页信息,然后服务器返回一个HTTP包包含请求的内容。而HTTP协议是明文的,直接抓下来数据包就能读出来要打开网页的URL和HOST等信息,返回的数据包直接就是网页代码。通过这里获取到的信息我们可以过滤网址和关键字,禁止访问的网址直接把这个数据包丢弃或者直接返回,关键字replace一下,达到了过滤的目的。再了说一下HTTPS协议打开网站时,发送的HTTP包的内容都是经过SSL加密的(比如工行网上银行登录的时候就是SSL加密的,看看网址就是https://mybank.icbc.com.cn/),所以没办法过滤。这也是这种方法的一个缺陷。不过网站都HTTPS了,应该就比较正规,不会是被和谐的一类网站了。。。

 

 
功能实现:
1、过滤网址
2、限制计算机使用时间,超出限制则锁定计算机
3、记录浏览历史,并且可以对浏览过的网站进行白名单和黑名单的归类操作
4、计算机使用记录

 

 
技术:
1、API HOOK。Hook mswsock.dll导出表的Ntdll!NtDeviceIoControlFile,这是ring3下socket最底层的函数,HOOK这个函数相当隐蔽,并且数据过滤很全面(TCP发送接收,UDP发送接收都要调用这个函数)。
2、TCP数据包过滤
3、全局钩子
4、文件映射和消息机制(进程间通信)
5、ACCESS数据库(保存配置信息)
6、虚拟桌面技术

 

 

截图:

 

 

 

 

 

 

设置百度为黑名单后,搜狗浏览器的访问结果:

 

设置百度为黑名单后,火狐浏览器的访问结果:

 

超出使用时间后,屏幕锁定:

 

输入管理密码解锁后,进入成年人模式,显示桌面:

 

 

程序下载:浏览器网址过滤(URLFilter)    (如果杀毒软件报毒,这是误报。。。中国的杀软,不是白名单的都杀。。。无奈啊。。。。)

 

默认管理密码为:123

 

使用方法:第一次运行先运行一键安装(win7和VISTA下用管理员权限运行),然后直接运行URLFilter.exe即可,以后直接运行URLFilter.exe。一键安装默认添加了自启动,一键卸载可以删除自启动项。

 

运行环境:除了WIN7+IE8,都能正常运行。WIN7下无需管理员权限即可正常工作。

 

2010年5月12日 | 发布:blackfeather | 分类:VB编程 | 评论:3

留言列表:

  • 有点难 发布于 2011/12/18 20:51:42  回复
  • 博主QQ是多少啊,能不能发源码给我呀
  • a153957 发布于 2011/3/24 16:33:17  回复
  • 请问能开源吗?我想看看
    API HOOK。Hook mswsock.dll导出表的Ntdll!NtDeviceIoControlFile
    或者可以告诉我怎实现的~!
  • 你好 发布于 2011/3/22 0:32:43  回复
  • 能不能增加一个关键字过滤功能?因为这样一个个网站加太麻烦了,只要浏览器的URL里有某个关键字,就禁止访问这样的功能可以实现吗?
    • blackfeather 发布于 2011/3/22 14:07:37  回复
    • 这个功能问题比较多 测试了好久最后也没完成

发表留言: