基于数据包过滤的网址过滤软件--(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下无需管理员权限即可正常工作。
留言列表:
API HOOK。Hook mswsock.dll导出表的Ntdll!NtDeviceIoControlFile
或者可以告诉我怎实现的~!