蓝色动力网络

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3820|回复: 0

ROS只允许指定QQ号可以登录(QQ号黑白名单及特殊QQ号处理 )

[复制链接]
发表于 2012-1-22 14:13:31 | 显示全部楼层 |阅读模式
QQ号白名单和黑名单功能在国产路由器中早已出现,routeros当然也可以实现。
但很多特殊QQ号需要特殊正则表达式,所以QQ号白名单和黑名单功能在routeros中一直没有得到应用。
所以今天把特殊QQ号的正则表达式规则写出来,希望大家喜欢。

如果你对下面脚本的含义不太理解,可以看我以前的一篇文章<只允许指定QQ号可以登录>.
  1. #---------------------------------------------
  2. #QQ白名单脚本
  3. #作者:Bob Walker
  4. #主页:[url]www.ai800.com[/url]
  5. #以下脚本执行后,只允许1099076442等白名单中QQ号可以登录,未进入白名单QQ号登录会提示服务器超时。
  6. #执行脚本后,并不是非白名单QQ号就立即掉线或不登录了,因为"已经"建立的连接是不会中断的,
  7. #所以重启路由器或清除连接就可以阻止非白名单QQ号登录了。
  8. #约有1/4的QQ号需要写特殊正则表达式,并不是直接转换为十六进制就好了,见文章后半段。
  9. #QQ白名单脚本开始:
  10. /ip firewall layer7-protocol
  11. remove [find comment="QQControl"]  
  12. add name=qq-1099076442 regexp="^.\?\\x02.+\\x61\\x82\\x93\\x7a.+\\x03\$" comment="QQControl"
  13. add name=qq-2444392928 regexp="^.\?\\x02.+\\x91\\xb2\\x79\\xe0.+\\x03\$" comment="QQControl"
  14. add name=qq-2416736456 regexp="^.\?\\x02.+\\x90\\x0c\\x78\\xc8.+\\x03\$" comment="QQControl"
  15. add name=qq-1837808903 regexp="^.\?\\x02.+\\x6d\\x8a\\xbd\\x07.+\\x03\$" comment="QQControl"
  16. add name=qq-all regexp="^.\?\02.+\03\$" comment="QQControl"
  17. /ip firewall filter
  18. remove [find comment="QQControl"]
  19. add action=accept chain=forward layer7=qq-1099076442 comment="QQControl"
  20. add action=accept chain=forward layer7=qq-2444392928 comment="QQControl"
  21. add action=accept chain=forward layer7=qq-2416736456 comment="QQControl"
  22. add action=accept chain=forward layer7=qq-1837808903 comment="QQControl"
  23. add action=drop chain=forward layer7=qq-all comment="QQControl"
  24. move [find comment="QQControl"] 0
  25. #QQ白名单脚本结束。
  26. #------------------------------------------------
复制代码
  1. #------------------------------------------------
  2. #QQ黑名单脚本
  3. #作者:Bob Walker
  4. #主页:[url]www.ai800.com[/url]
  5. #以下脚本执行后,只禁止1099076442等白名单中QQ号登录,未进入黑名单QQ号全可以登录。
  6. #执行脚本后,并不是黑名单QQ号就立即掉线或不登录了,因为"已经"建立的连接是不会中断的,
  7. #所以重启路由器或清除连接就可以阻止黑名单QQ号登录了。
  8. #约有1/4的QQ号需要写特殊正则表达式,并不是直接转换为十六进制就好了,见文章后半段。
  9. #QQ黑名单脚本开始:
  10. /ip firewall layer7-protocol
  11. remove [find comment="QQControl"]  
  12. add name=qq-1099076442 regexp="^.\?\\x02.+\\x61\\x82\\x93\\x7a.+\\x03\$" comment="QQControl"
  13. add name=qq-2444392928 regexp="^.\?\\x02.+\\x91\\xb2\\x79\\xe0.+\\x03\$" comment="QQControl"
  14. add name=qq-2416736456 regexp="^.\?\\x02.+\\x90\\x0c\\x78\\xc8.+\\x03\$" comment="QQControl"
  15. add name=qq-1837808903 regexp="^.\?\\x02.+\\x6d\\x8a\\xbd\\x07.+\\x03\$" comment="QQControl"
  16. add name=qq-all regexp="^.\?\02.+\03\$" comment="QQControl"
  17. /ip firewall filter
  18. remove [find comment="QQControl"]
  19. add action=drop chain=forward layer7=qq-1099076442 comment="QQControl"
  20. add action=drop chain=forward layer7=qq-2444392928 comment="QQControl"
  21. add action=drop chain=forward layer7=qq-2416736456 comment="QQControl"
  22. add action=drop chain=forward layer7=qq-1837808903 comment="QQControl"
  23. add action=accept chain=forward layer7=qq-all comment="QQControl"
  24. move [find comment="QQControl"] 0
  25. #QQ黑名单脚本结束。
  26. #------------------------------------------------
复制代码
继续


对字符串处理脚本不熟悉,学习中。也许以后会出全自动脚本。

继续

routeros中,把整数转换成十六进制数是什么函数?

继续

查了一下资料,routeros中好像没有把整数转换成十六进制数的函数,正在咨询mikrotik。


继续

routeros没有dec2hex函数,需要使用loop反算。

继续

现在写特殊QQ号的正则表达式写法解密。

继续
一般的QQ号如286331153,
转换成十六进制后是\\x11\\x11\\x11\\x11,
那么针对这个QQ号的l7命令是
/ip firewall layer7
  add name=qq-1 regexp="^.\?\\x02.+\\x11\\x11\\x11\\x11.+\03\$"

但当十六进制中有\\x00,\\x24,\\x41-\\x5a,\\x5b-\\x5e时,
就要相应改变正则表达式,
改变方法总结为
\\x00变为.\?,
\\x24改为\\\$
\\x41-\\x5a分别加\\x20,改为\\x60-\\x7a,
\\x5b改为\\[
\\x5c改为\\
\\x5d改为\\]
\\x5e改为\\^
  1. 一般的QQ号如286331153,
  2. 转换成十六进制后是\\x11\\x11\\x11\\x11,
  3. 那么针对这个QQ号的l7命令是
  4. /ip firewall layer7
  5.   add name=qq-1 regexp="^.\?\\x02.+\\x11\\x11\\x11\\x11.+\03\$"
  6. 但当十六进制中有\\x00,\\x24,\\x41-\\x5a,\\x5b-\\x5e时,
  7. 就要相应改变正则表达式,
  8. 改变方法总结为
  9. \\x00变为.\?,
  10. \\x24改为\\\$
  11. \\x41-\\x5a分别加\\x20,改为\\x60-\\x7a,
  12. \\x5b改为\\[
  13. \\x5c改为\\
  14. \\x5d改为\\]
  15. \\x5e改为\\^
复制代码
继续

以下是具体实例:
  1. \\x11\\x11\\x00\\x11改为\\x11\\x11.\?\\x11
  2. \\x11\\x11\\x5b\\x11改为\\x11\\x11\\[\\x11
  3. \\x11\\x11\\x5c\\x11改为\\x11\\x11\\\\x11
  4. \\x11\\x11\\x5d\\x11改为\\x11\\x11\\]\\x11
  5. \\x11\\x11\\x5e\\x11改为\\x11\\x11\\^\\x11
  6. \\x11\\x11\\x24\\x11改为\\x11\\x11\\\$\\x11
  7. \\x11\\x11\\x41\\x11改为\\x11\\x11\\x61\\x11
  8. \\x11\\x11\\x42\\x11改为\\x11\\x11\\x62\\x11
  9. \\x11\\x11\\x43\\x11改为\\x11\\x11\\x63\\x11
  10. \\x11\\x11\\x44\\x11改为\\x11\\x11\\x64\\x11
  11. \\x11\\x11\\x45\\x11改为\\x11\\x11\\x65\\x11
  12. \\x11\\x11\\x46\\x11改为\\x11\\x11\\x66\\x11
  13. \\x11\\x11\\x47\\x11改为\\x11\\x11\\x67\\x11
  14. \\x11\\x11\\x48\\x11改为\\x11\\x11\\x68\\x11
  15. \\x11\\x11\\x49\\x11改为\\x11\\x11\\x69\\x11
  16. \\x11\\x11\\x4a\\x11改为\\x11\\x11\\x6a\\x11
  17. \\x11\\x11\\x4b\\x11改为\\x11\\x11\\x6b\\x11
  18. \\x11\\x11\\x4c\\x11改为\\x11\\x11\\x6c\\x11
  19. \\x11\\x11\\x4d\\x11改为\\x11\\x11\\x6d\\x11
  20. \\x11\\x11\\x4e\\x11改为\\x11\\x11\\x6e\\x11
  21. \\x11\\x11\\x4f\\x11改为\\x11\\x11\\x6f\\x11
  22. \\x11\\x11\\x50\\x11改为\\x11\\x11\\x70\\x11
  23. \\x11\\x11\\x51\\x11改为\\x11\\x11\\x71\\x11
  24. \\x11\\x11\\x52\\x11改为\\x11\\x11\\x72\\x11
  25. \\x11\\x11\\x53\\x11改为\\x11\\x11\\x73\\x11
  26. \\x11\\x11\\x54\\x11改为\\x11\\x11\\x74\\x11
  27. \\x11\\x11\\x55\\x11改为\\x11\\x11\\x75\\x11
  28. \\x11\\x11\\x56\\x11改为\\x11\\x11\\x76\\x11
  29. \\x11\\x11\\x57\\x11改为\\x11\\x11\\x77\\x11
  30. \\x11\\x11\\x58\\x11改为\\x11\\x11\\x78\\x11
  31. \\x11\\x11\\x59\\x11改为\\x11\\x11\\x79\\x11
  32. \\x11\\x11\\x5a\\x11改为\\x11\\x11\\x7a\\x11
复制代码
继续

不能保证所有特殊字节都收集齐全了,百分之九九的QQ号都能正常匹配。因为已经知道处理的方法,所以我会随时更新的。如发现还有特殊的字节需要处理,请联系我。

关于10位QQ号:
根本没有9位10位QQ号写法的区别,那是以前巧合的误解.
以前10位转换后16进制后去掉首字节或尾字节,是因为当时不知怎么改那个字节.
现在只要根据文章中把特殊字节改就可以了.

继续

关于11位QQ号:
QQ2011版的报文显示只支持4000000000(10位)以下的QQ号,但可以使用电信天翼11位手机号做QQ号来登录,其实11位的QQ号是表面现象了(相当于邮箱登录QQ一样),11位QQ号(或邮箱)会在登录时会被转换成真实的QQ号,如18915979529(11位天翼号)会被转换成2715979529(10位), 转换的方法因为没有太多样本,不知怎么转的,如果要做白名单可以抓包分析。

关于 邮箱登录QQ:
和上面差不多,也要抓包分析。

现在号码越长越难记,10位的Q号过个年不上,就忘了。所以腾讯当然希望使用手机号或邮箱做登录账户。


继续


本来对"QQ号黑白名单完美全自动脚本"并不报太大希望,先前mikrotik工程师提供了两个dec2hex脚本中使用了几个全局变量,并且运行一次后变量类型都变了,所以dec2hex脚本放在循环里根本不行。幸运的是mikrotik工程师又提供了第三个更简单的dec2hex脚本,所以这才突破了难关,终于完成了“QQ号黑白名单完美全自动脚本”。下面是初步测试,近来很忙,有空进行全面测试。

QQ号黑白名单完美全自动脚本:

特点:
1.白名单、黑名单改个名单类型值就能快速切换。
2.支持各种长度QQ号。
3.支持各种特殊字节。
4.支持批量QQ号加入。
5.无需嵌入工具,直接使用一个routeros脚本。

一个不广泛的应用花这么长时间写脚本,有点得不尝失,但通过这次脚本的编写,对routeros脚本的认识更深了。
文章中的代码变化都指的是终端命令行模式的变化。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

蓝色动力网络微信平台
网站管理,业务合作联系邮箱: admin#lansedongli.com    QQ:13412492 限网站业务问题.
网站帐号、密码、密保找回请使用注册邮箱,发送邮件至 password#lansedongli.com ,否则不予受理.
免责声明:本论坛所有文字和图片仅代表其个人观点.
本站某些资料或文章来自于互联网,不代表本站观点,如果侵犯了您的权益,请来信告知,我们会在三天内删除.
为了给大家一个更好的交流场所,请勿在本论坛发表与中华人民共和国法律相抵触的言论,请合作,谢谢!
Copyright © 2007-2019 Corporation Powered by网吧系统 版权所有    转载请注明!
浙ICP备11043737号 程序:Discuz! x3.4

湘公网安备 43018102000145号

手机版|Archiver|蓝色动力网络   

快速回复 返回顶部 返回列表