pianist
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2003-12-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1405回复:5

请教一个关于防火墙的问题。高手们请进。  

楼主#
更多 发布于:2003-09-22 21:07
我有一个设想:我们能不能自己编一个过滤函数DLL,然后设法找到防火墙原过滤函数的地址,把它替换成我们自己编的过滤函数的地址,让数据只经过我们的函数来进行过滤。这样系统的通信就完全由我们来控制了,拦截谁放行谁都由我们说了算,最后再设法把数据包直接传给上层或下层,接着完成通信过程就行了,这样做的话根本就不经过防火墙原来的过滤函数。
   简单的说,把我们编的过滤函数放进去,用它的地址替换防火墙原来的过滤函数的地址,这样就能只让我们的过滤函数起作用,跳过防火墙原来的过滤函数而完成通信。
   你觉得这样行的通吗?能否实现?哈哈,我是一个菜鸟,这仅仅是我的一个设想。请指教。
谢谢!!!
 



 
 :)
peakame
驱动牛犊
驱动牛犊
  • 注册日期2002-06-28
  • 最后登录2013-08-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-22 22:41
想法应该说是可行的,但具体实现起来比较麻烦,其中牵涉到如何在系统中找到相应的防火墙过滤函数的地址,如何用你自己的过滤函数的地址替换原来的过滤函数等等。在实现时必须要知道原来防火墙的过滤函数的名称和防火墙模块的名称,另外也要详细理解Win2000或WinNT下的可执行文件或Dll、SYS等文件的格式,这样才可以在系统找到防火墙模块的地址后找到相应的原过滤函数地址,然后用你自己的过滤函数地址替换掉原来的地址,并在你自己的处理函数的末尾将数据等信息传入(如果不需过滤掉的话)原来的过滤函数或直接返回(丢弃需要过滤掉的报文)。
可能说的比较模糊,自己好好看看吧,我觉得要实现你的目标大概内容就是这些!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2003-09-23 10:45
理论上可行,实际上不可行。
driverLh
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2004-07-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-23 11:44
应该是可以的,那只是PE文件中的一个引入引出表的问题,我想应该连这方面的工具都有才对.
以前我的一个朋友都写了一个.应该能实现,你在网上收一下:PE文件,引出表,API挂接
我用VC 多些,在驱动开发上也是很菜.
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2003-09-23 17:38
应该是可以的,那只是PE文件中的一个引入引出表的问题,我想应该连这方面的工具都有才对.
以前我的一个朋友都写了一个.应该能实现,你在网上收一下:PE文件,引出表,API挂接
我用VC 多些,在驱动开发上也是很菜.

你可以得到被人拦截过的东西,但是你依然没有办法绕过别人的东西,举个例子说吧:
假设系统的某个函数地址为A,某防火墙FW替换这个函数的地址为B,你用来替换的函数地址为C:
当FW拦截的时候,其它软件对这个函数的调用变成了->B->A,
当你的拦截生效以后,就变成了->C->B->A,如果你想绕过FW,那么你要实现->C->A,而你怎么取到A?恐怕很难,除非你非常了解FW,可以安全地取到A。

对于调用关系,还跟拦截次序有关。
peakame
驱动牛犊
驱动牛犊
  • 注册日期2002-06-28
  • 最后登录2013-08-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-25 16:09
我说的那种方法只能拦截过滤数据报,但不能绕过防火墙。如果想左右防火墙的行为的话,可以通过拦截到并处理后的返回值来实现,这个灵活性不够。
游客

返回顶部