推荐一个电信网络工程师讲解禁路由上网的破解方法

ADSL共享上网有两种方式,一种是代理,一种是地址翻译(NAT),大家常说的路由方式其实就 
是NAT方式,其实路由和NAT的原理还是有区别的,这里不作讨论,现在的ADSL猫一般都有NAT的 
功能,用它本身的功能实现共享上网是比经济方便,本文主要讨论这种方式。转 
要想阻断一台以上的计算机上网必须能发现共享后边的机器是否多于一台,NAT的工作原理如图 
一所示,经过NAT转换后访问外网的内网的计算机的地址都变成了192.168.0.1而且MAC地址也转 
换成了ADSL的MAC地址,也就是说,从原理上讲,直接在ADSL出口抓经过NAT转换的包是不能发 
现到底有几台机器在上网。那是如何发现的呢?经过研究发现它是采用多种方法探测用户是否 
用共享方式上网,从而进行限制,下面分别进行破解:  
一.检查同一IP地址的数据包中是否有不同的MAC地址,如果是则判定用户共享上网。破解的办 
法是把每台机的MAC地址改为一样.修改的方法如下:  
首先要获取本机的MAC:MAC地址是固化在网卡上串行EEPROM中的物理地址,通常有48位长。以 
太网交换机根据某条信息包头中的MAC源地址和MAC目的地址实现包的交换和传递。  
⑴在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。  
⑵在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入 
“ipconfig /all”→回车。  
或者右键本地连接图标、选择状态然后点击支持选项卡,这里“详细信息”中包含有MAC和其它 
重要网络参数。  
1、如果你的网卡驱动有直接提供克隆MAC地址功能,如RealTek公司出的RTL8139芯片,那恭喜你 
了,点击“开始→设置→控制面板”,双击“网络和拨号连接”,右键点击需要修改MAC地址的 
网卡图标,并选择“属性”。在“常规”选项卡中,点击“配置”按钮,点击“高级”选项卡 
。在“属性”区,你应该可以看到一个称作 “Network Address”或“Locally Administered  
Address”的项目,点击它,在右侧“值”的下方,输入你要指定的MAC地址值。要连续输入12 
个数字或字母,不要在其间输入“-”。重新启动一次系统后设置就会生效了(Windows 98和 
Windows 2000/XP用户操作略有区别,请参照系统说明操作)    
2、如果你的网卡驱动没有提供克隆MAC地址功能,那下面分别提供一些方法,希望能找到一个适 
合你的  
WIN98下:  
a.在网上邻居图标上点右键,选择属性,出来一个网络对话框,在配置框中,双击你要修改的 
网卡,出来一个网卡属性对话框。在高级选项中,也是点击属性标识下的Network Address项, 
在右边的两个单选项中选择上面一个,再在框中输入你要修改的网卡MAC地址,点确定后,系统 
会提示你重新启动。重新启动后,你的网卡地址就告修改成功!!  
b.点击“开始→运行”,键入“winipcfg”,选择你要修改的网卡,并记录MAC地址值。点击“ 
开始→运行”,输入“regedit”运行注册表编辑器(在修改注册表前,一定要先备份注册表) 
,依据注册表树状结构,依次找到 
“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net”,你会看到类似 
“0000”、“0001”、“0002”等样子的子键。从“0000”子键开始点击,依次查找子键下的 
“DriverDesc” 键的内容,直到找到与我们查找的目标完全相同的网卡注册表信息为止。    
当找到正确的网卡后,点击下拉式菜单“编辑→新建→字符串”,串的名称为 
“networkaddress”,在新建的“networkaddress”串名称上双击鼠标,就可以输入数值了。 
输入你指定的新的MAC地址值。新的MAC地址应该是一个12位的数字或字母,其间没有“-”,类 
似“00C095ECB761”的样子。    
有两种方法激活新的MAC地址:    
如果你使用的是普通内置网卡,就必须重新启动计算机来使修改生效。    
如果你使用的是PCMCIA卡,你可以按照下面的步骤操作而不必重新启动操作系统:运行 
winipcfg,选择并释放DHCP设置,关闭winipcfg。打开控制面板或系统托盘“PC Card  
(PCMCIA)”,停止并弹出PCMCIA网卡。重新插入PCMCIA网卡,打开winipcfg,选择并刷新DHCP 
设置,运行winipcfg,确定修改的MAC地址已生效  
WIN2000下:  
a.在桌面上网上邻居图标上点右键,选属性,在出来的网络和拨号连接窗口中一般有两个图标 
,一个是新建连接图标,一个是我的连接图标。如果你的机器上有两个网卡的话,那就有三个 
图标了。如果你只有一个网卡,那就在我的连接图标上点右键,选属性,会出来一个我的连接  
属性的窗口。在图口上部有一个连接时使用:的标识,下面就是你机器上的网卡型号了。在下 
面有一个配置按钮,点击该按钮后就进入了网卡的属性对话框了,这个对话框中有五个属性页 
,点击第二项高级页,在属性标识下有两项:一个是Link Speed/Duplex Mode,这是设置网卡工 
作速率的,我们需要改的是下面一个Network Address,点击该项,在对话框右边的值标识下有 
两个单选项,默认得是不存在 ,我们只要选中上面一个单选项,然后在右边的框中输入你想改 
的网卡MAC地址,点确定,等待一会儿,网卡地址就改好了,你甚至不用停用网卡!  
你也可以在设置管理器中,打开网卡的属性页来修改,效果一样。  
b.1.在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E972-E325- 
11CE-BFC1-08002BE10318\0000、0001、0002”等主键下, 因为你有可能安装了不止一块网 
卡,所以在这个主键下馍能会有多个类似于“0000、0001”的主键,这时候你可以查找 
DriverDesc内容为你要修改的网卡的描述相吻合的主键,如“0000”。  
    
2.在上面提到的主键下,添一个字符串,名字为“NetworkAddress”,把它的值设为你要的MAC 
地址,要连续写如“001010101010”。  
    
3.然后到主键下“NDI\params”中添加一项“NetworkAddress”的主键值,在该主键下添加名 
为“default”的字符串,值写要设的MAC地址,要连续写,如“001010101010”。  
    
【注】实际上这只是设置在后面提到的高级属性中的“初始值”,实际使用的MAC地址还是取决 
于在第2点中提到的“NetworkAddress”参数,而且一旦设置后,以后高级属性中值就是 
“NetworkAddress”给出的值而非“default”给出的了。  
    
4.在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定 
“NetworkAddress”主键的描述,其值可为“MAC Address”(也可以随意设置,这只是个描述 
,无关紧要,这个值将会在你以后直接修改MAC地址的时候作为描述出现),这样重新启动一次 
以后打开网络邻居的属性,双击相应网卡项会发现有一个高级设置,其下存在MAC Address (就 
是你在前面设置的ParamDesc,如图(^29041103a^)1)的选项,这就是你在第二步里在注册表中 
加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。  
    
5.关闭注册表编辑器,重新启动,你的网卡地址已经改好了。打开网络邻居的属性,双击相应 
网卡项会发现有一个MAC Address的高级设置项。用于直接修改MAC地址,而且不需要重新启动 
就可以实现MAC的随时更改。  
WinXP下  
大部分的网卡都可以通过在控制面板中修改网卡属性来更改其MAC地址。在“设备管理器中”, 
右键点击需要修改MAC地址的网卡图标,并选择“属性/高级”选项卡。在“属性”区,就可以 
看到一个称作“Network Address”或其他相类似名字的的项目,点击它,在右侧“值”的下方 
,输入要指定的MAC地址值。要连续输入12个十六进制数字或字母,不要在其间输入“-”。  
另外有几个可以修改MAC的软件都可以在XP/W2K下运行,大家可以去网上搜下,所以这里就不详细 
介绍了  
linux下  
需要用 #ifconfig eth0 down 先把网卡禁用 ,再用ifconfig eth0 hw ether 1234567890ab , 
这样就可以改成功了  
要想永久改,就在/etc/rc.d/rc.local里加上这三句(也可在/etc/init.d/network里加下面三行 
)  
ifconfig eth0 down  
ifconfig eth0 hw ether 1234567890ab    
ifconfig eth0 up  
如果你想把网卡的MAC地址恢复原样,只要再次把Network Address项右边的单选项选择为下面 
一个没有显示再重新启动即可。在WIN2000下面是选择不存在,当然也不用重新启动了。  
二、通过SNMP(简单网络管理协议)来发现多机共享上网。有些路由器和ADSL猫内置SNMP服务 
,通过扫描软件(ipscan、superscan......)扫描一下,发现开着161端口,161是SNMP(简单网 
络管理协议)的服务端口,难道是通过SNMP协议发现的主机数量,用xscan对猫进行了漏洞扫描 
,果然有默认密码,登陆到猫的管理界面但是找不到关闭SNMP服务的地方,看来是留的后门, 
由此基本可断定是通过SNMP协议发现的主机数。为了进一步证实,用SNMP的一个管理软件 
ActiveSNMP查看ADSL猫的连接情况,如图二所示,可以清楚地看出通过SNMP协议可以发现同时上 
网的主机数量。  
解决办法:  
1.如果该猫可以关闭SNMP协议,那就把SNMP用的161端口禁止就行了.使用路由器或打开ADSL猫的 
路由模式共享上网的朋友可以进入管理界面有关闭SNMP选项的关掉它。如果猫的管理界面无关 
闭SNMP选项的只好买一个没有SNMP服务的路由器,例如TP-LINK TL-R400,放到adsl moden和 
hub中间,如下图.在该路由器中再做一个NAT服务,这样进到ADSL猫中的就是一个地址,这样就 
解决了共享上网。 注意在路由器中要关闭SNMP协议。  
2.修改配置文件,可以将配置转换成一个文件,用二进制编辑工具修改默认密码,然后再加载 
到猫中,这只是一种思路,没有试过  
三、监测并发的端口数,并发端口多于设定数判定为共享。  
这是一个令人哭笑不得的设定,“网络尖兵”不停扫描用户打开的端口数,多于设定值的就判 
断是共享,有时连按几次F5键它是认为是共享,连单用户上网也受到了影响,这个就没法破解 
了(除非你把网络尖兵黑了),俺这里的解决办法是装成无辜的用户到ISP的客服电话大骂,并声 
明搞不好就换ISP,一会儿网络就正常了。  
四、“网络尖兵”还使用了未知的方法从共享的计算机中探测到共享的信息,目前解决的办法 
是所有共享的客户机均要安装防火墙,把安全的级别设为最高,因条件有限,只试用了几种防 
火墙,发觉金山网镖V(http://www.gz-pet.com/Soft_Show.asp?SoftID=10)有用,把IP配置规则 
里面所有的允许别人访问本机规则统统不要,允许PING本机不要,防止ICMP,IGMP攻击也要勾选 
。如果是WINXP,要打开网卡的网络防火墙。    
采取以上破解的办法后,在自己的局域网不能看到本机,而且WINXP打开网卡的网络防火墙后, 
在QQ不能传送文件,网速有所减慢,但总算又可以共享了,如果有好的办法,也请大家告知。  
总的来说,“网络尖兵”还是一个不成熟的产品,主要是他对单用户上网也产生影响,浏览网 
页经常要刷新几次,有的网页比较复杂,要调用几个服务器文件时它也当你是共享,造成网页 
部分不能显示。并且由于“网络尖兵”不停扫描用户端口占用带宽,导致网速变慢

时间: 2007-04-02

电信禁止路由上网的破解方法

ADSL共享上网有两种方式,一种是代理,一种是地址翻译(NAT),大家常说的路由方式其实就是NAT方式,其实路由和NAT的原理还是有区别的,这里不作讨论,现在的ADSL猫一般都有NAT的功能,用它本身的功能实现共享上网是比经济方便,本文主要讨论这种方式. 要想阻断一台以上的计算机上网必须能发现共享后边的机器是否多于一台,NAT的工作原理如图一所示,经过NAT转换后访问外网的内网的计算机的地址都变成了192.168.0.1而且MAC地址也转换成了ADSL的MAC地址,也就是说,从原理上讲,直接在A

百度工程师讲PHP函数的实现原理及性能分析(二)

类方法 类方法其执行原理和用户函数是相同的,也是翻译成opcodes顺次调用.类的实现,zend用一个数据结构zend_class_entry来实现,里面保存了类相关的一些基本信息.这个entry是在php编译的时候就已经处理完成. 在 zend_function的common中,有一个成员叫做scope,其指向的就是当前方法对应类的zend_class_entry.关于php中面向对象的实现,这里就不在做更详细的介绍,今后将专门写一篇文章来详述php中面向对象的实现原理.就函数这一块来说,me

推荐一个封装好的getElementsByClassName方法

我们知道,原生的JS给我们提供了getElementsByClassName方法,可以通过此方法获取到含有某指定class的节点集合,注意是集合,也就是此函数返回一个数组. 但是,IE却并不支持这个方法,但这方法却是很有实用性,所以,我们又不得不专门为IE实现这么一个函数. 复制代码 代码如下: function getElementsByClassName(oEle,sClass,sEle){   if(oEle.getElementsByClassName){     return oEle

排除路由故障的常见方法

一 静态路由故障 1. 静态路由和有类别查找 当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由. 使用show ip route查看路由选择表. 使用debug 可以显示某个网络宕掉了. 如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路由失效时装入到路由选择表中.这

AngularJS实现使用路由切换视图的方法

本文实例讲述了AngularJS实现使用路由切换视图的方法.分享给大家供大家参考,具体如下: 下面是一个简单的学生信息管理实例. 注意:除了引用angular.js之外,还要引用angular-route.js. 1.创建index.html主视图 在index.html主视图中,我们将会把多个视图共有的东西都放在里面,例如菜单.在这个例子中,我们仅仅把应用的标题放在里面,然后再用ng-view指令来告诉Angular把视图显示在哪儿. <!DOCTYPE html> <html xml

在SQL中获取一个长字符串中某个字符串出现次数的实现方法

在SQL中获取一个长字符串中某个字符串出现次数的实现方法 比如有个字符串: X-BGS-2010-09-15-001 我想知道其中'-'出现的次数,可以用下面的方法实现,而不需要复杂的一个个字符分析. declare @a varchar(100)set @a='X-BGS-2010-09-15-001'select len(replace(@a,'-','--'))-len(@a) 通俗一点讲就是 如果要判断表a中的 字段b中存在几个字母c的话,可以这么写 select len(replace

Android判断设备网络连接状态及判断连接方式的方法

本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情.这些功能都写在了下面的代码中了!请看主要代码如下: /** * 检测网络是否连接 * @return *

Android 快速实现防止网络重复请求&按钮重复点击的方法

在日常开发过程中,偶尔会出现一些极端问题.比如 网络重复请求,很难过滤 请求的问题. 下面一段代码,可以解决这个重复请求的问题. 下面上一段代码: private long lastClick; // 防止网络重新请求 if (System.currentTimeMillis() - lastClick <= 1000) { return; } lastClick = System.currentTimeMillis(); 以上这篇Android 快速实现防止网络重复请求&按钮重复点击的方法

angular 未登录状态拦截路由跳转的方法

使用angularjs的但页面应用时,由于是本地路由在控制页面跳转,但是有的时候我们需要判断用户是否登录来判断用户是否能进入界面. angularjs是mvc架构所以实现起来很容易也很灵活,我们只MainController里增加一个路由事件侦听并判断,这样就可以避免未登录用户直接输入路由地址来跳转到登录界面地址了. 第一步:定义myapp var myapp=angular.module("MainController",["ui.router",'infinit