none
关于RAW SOCKET及其限制 RRS feed

  • 常规讨论

  • RAW SOCKET,用来指示系统发送自定义的报文段、数据报,直接将数据交给系统内核,而非运输层。

    而这东西在Windows XP SP2以后的版本后,却被一砍再砍,先是不能发送TCP报文段,直到现在,连混杂模式也无法设置了。

    MSDN上就已经明确说明,用原始socket发TCP包,你别想。不过对混杂模式出现10045错误的问题,我没有找到任何说明。网友在2011年发现,关闭Windows UAC和防火墙,错误就会消失。但是很遗憾,现在即使是这样也不行了。

    MSDN上解释,这样做的初衷是为了安全,而给开发者提供的解决办法就是:去写驱动吧。

    假如以后每个程序运行前,都要加载一个驱动,我不知道这样是更危险还是更安全。而问题在于,这种限制对病毒、木马、网络攻击器有任何影响吗?黑客在运行一个网络攻击程序的时候,他可不介意安装一个驱动,或是安装一个Winpcap。最不能接受这种后果的,恰恰是正常用户。如果连一个ping程序都要加驱,你能想象用户是什么感觉?

    而把raw socket砍掉的微软,好像丝毫没有考虑到这点,不知他们是是脑袋进了水,还是智商低于普通人。

    之前小组有个题目是,开发基于Windows Phone 7的安全软件。可是在分析可行性的时候,我们发现的问题超乎我们的想象。我们既无法锁定屏幕,也无法控制蓝牙,甚至要让程序保持一直在后台运行都成问题。更让我惊讶的是,这个操作系统在某个版本以前居然连socket的API都不开放。别说是安全方面的应用,就连开发普通应用,我想开发者也会觉得处处受限。

    之前不是在搞活动吗,什么开发Windows Phone程序,送Windows Phone 手机。微软你有的是钱,当然可以乱用。但我想,如果开发者连自己要用的API都找不到,不管奖励再丰厚,开发环境再先进,他们会买账吗?我看去开发的,都是冲着那部手机去的。真正想做一个像样的、理想的应用的开发者,很可能会放弃这个平台。他们无法容忍这个平台让他们的程序像一个被切掉的太监。

    微软设下这些限制,也许是想避免WP7重蹈Windows NT的覆辙。但限制到如此地步,未免也太愚蠢、太可笑、太可悲了。黑客可不怕这些限制,等到哪天WP7的病毒一出,这个没有安全软件的平台可就遭殃了。

    2012年4月29日 1:10

全部回复