请教Delphi高手:关于Delphi网络底层 ( 积分: 100 )

  • 主题发起人 主题发起人 gdrfds
  • 开始时间 开始时间
G

gdrfds

Unregistered / Unconfirmed
GUEST, unregistred user!
请教Delphi高手:
近日无意中使用了“P2P终结者“这个软件,自认Delphi(编程)高手的我也十分之震撼,请教有谁能用Delphi写出类似功能的东东,该软件主要是用在路由器共享ADSL宽带的环境中,功能大概是限制局域网中某一台机器的IP上、下传流量,甚至直接使某一用户断线,但局域网不断,神奇!(当然是非物理的,不然会被发现)...功能实在太强大了,不多举例了,有兴趣的可以搜索一下。
我查阅了一些相关资料,已经了解了,有说是利用了ARP。我个人感觉也可能是winpcap,该内核的Delphi版控件好像是snoop,但再往下不知该如何入手了,snoop好像很复杂,网上的中文资料也少的要命。
不知这里有没有高手可以指点一二,能实现该功能的方法都欢迎,不限于winpcap,ARP欺骗技术也行。我已经到好多论坛发贴了,都没结果,不知这里有没有奇迹呢!
还有一个我不情愿的想法:难倒Delphi真的做不出来系统底层一点的东东,编程的路往深处走,非要用C?
 
再补充一点,该程序的主要步骤显而易见是拦截后丢弃或转发空包,我在网上搜索了很多例程都是如何“获取”数据包,但关键是如何实现“丢弃”,“清空”等类似的功能。你们说,对不对?
还有一个另我费解的问题,局域网中那么多机器,它是怎么一一获知每台机器的上、下行数据量,而且那么准?
 
看来这里也不过如此!
 
个人感觉:
有关系统/网络底层的资料全都是c/c++形式,
delphi高手似乎应该都有c/c++基础,若肯愿意将这些底层资料翻译为 Delphi形式,那么
delphi自然就有了能做底层的基础。
但高手似乎都很忙,没功夫做这项工作。
 
我也很关注这个问题
现在问题不在于D能不能做到 ,而是大家只要一做到往系统底层做的东西通通都想起C/C++
我就不信C可以做到的东西 pascal会做不到
关注中。。。
 
那就等待高手吧!!
 
DELPHI没有DDK~~没有驱动文件的版权吧~~很多东西要驱动~~~
 
至于delphi能不能实现我想这个不是需要讨论的东西了,能实现又怎么样?不能实现又怎么样呢?大家连这个软件采用什么样的方法都不知道,就来大谈某语言能不能实现,能实现什么?不能实现什么?连解决的思路都没有,什么语言都实现不了。我在想的问题是所谓的p2p终结者是怎么做到的?从模式上来看,它只需要安装在局域网里面的一台电脑上即可,这样就实现了对全网的一个限制。那么唯一的办法就是采用拦截数据包的办法了,但是这个不能够解决问题,达到控制,姑且也就是知道在传输什么,但是如何做到让别的数据包都发给它,然后丢弃呢?这里我在猜想,是不是采用了ip伪装的办法,来伪装成这些数据包所送达的ip地址,最终达到外来的数据包都送它这里经过它转发。不知道这样的猜想是不是正确的。欢迎高手跟帖。
 
另外再给大家说一个问题,聚生网管是如何通过软件实现局域网内的ip地址和mac地址绑定的?同样聚生网管也有所谓p2p终结者的功能。
 
我谈到c++能做比delphi更底层的东西,其中就有Delphi的更深层资料太少的意思,并无对Delphi这个软件功能是否强大及c++,pascal的优劣表示怀疑,用了多年D7,自己也不情愿这么想,但事实就是如此!我很赞同zwz_good的看法,正因为Delphi的强大,易用,导致了真正的Delphi行家寥寥无几,这也无形中导致了"Delphi=VB"的观念,你再认为Delphi有多好,但在你涉及的领域里找不到知音,那也是很苦恼的一件事.
 
delphi快成为过去了?
 
其实我现在发现了这些东西有时候不要这么麻烦
拿迅雷来说吧,一般后缀名是.cfg的
我们只要hook createfile这个函数,当新建到.cfg文件的时候就拒绝新建,迅雷就下不了了。
这个只是小弟的一点愚见。
至于你说的那些wincap之类的我只能继续关注了~~~~
 
wincap 是基于驱动机的网络操作,提供了非常多的低层调用,snoop应该是对这此的一个封装,我看很多软件都是基于wincap上的开发,一点拙见
 
都是高手!
 
明显是arp欺骗
 
"暗夜中独舞"的想法很独特,思维很活跃,在紧急情况下可行,我会试试.
但也脱离本贴的中心思想,因为用了这种方法,不是针对问题根本去解决问题,会有负作用,如可能影响到其它正常的程序.
但感谢你的帮助!
 
这个用ICMP也可以的,把路由重定向就可以了。

btw:最近好象关注arp的人挺多的
 
当年的TCP/IP是Bill Joy在 BSD上实现的,而unix是c写的。所以。。。
其实pascal与c还不是一样?
 
不是语言的问题,而是网络知识的问题,搞清除ARP TCP等基础知识后就可以了!
猜想应该是这样的:先用wincap监听网络如果发现限制的流量,就向限制机器发送ARP伪装,或ICMP应答迫使中断,而且本地监听响应速度快,还可以伪装TCP流,好像有篇论文就讨论如何伪装TCP假应答等等,方法非常多!
以上仅为猜想而已!!!!
 
后退
顶部