解决小米路由 404 劫持和插入广告的办法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mac2man
V2EX    小米

解决小米路由 404 劫持和插入广告的办法

  •  2
     
  •   mac2man 2015-06-25 13:04:08 +08:00 14318 次点击
    这是一个创建于 3770 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小米路由净化计划初步操作--20150625

    小米越来越无下限了,打着优化用户体验的幌子,做一些让人匪夷所思的事情。 先是用户发现劫持404页面后,最近又有用户发现一些页面被插入了页眉广告。 网上搜索这类事情结果很多,可以看看下面几篇讨论文章: ---如何看待小米路由进行 404 网页劫持? http://www.zhihu.com/question/30358197 ---小米路由器先劫持 http 错码, 现在又在部分网站添加小尾巴, 什么节奏? t/199701 ---这是我之前对小米路由插入页眉广告的一点分析,上面的链接中我也做了回复 http://pastebin.com/4t7eKNsA 正是因为出现了页眉广告,我实在是对小米忍无可忍了。 当然最好的办法是直接抛弃使用小米路由,但世上不是没有后悔药的么 况且花了几百元买的路由器,总不能仍了,目前也还没有小米路由干净的openwrt的固件 所以,想着是否通过一些操作,将小米路由一些不必要的启动项和进程,以实现一台干净的openwrt系统。 最近几天稍微对小米路由(R1D)上的启动项和进程做了一些分析,初步得到一个稍微干净的小米路由: 
    1. 可疑启动项和进程分析
      1.1 /etc/init.d/http_client_detect
      在这个启动项里,主要是加载nf_conn_ext_http 和 insmod nf_tcp_proxy 两个内核模块,同时有启动 /usr/sbin/http_dpi
      我还没深入研究,但初步判断小米路由监控用户的HTTP数据,已达到404劫持和插入广告的操作。
      所以这个启动项必须删除掉,抛弃

      1.2 /etc/init.d/rule_mgr
      这个启动项中有http_match , nf_conn_ext_http, nf_tcp_proxy 内核模块
      估计也是辅助劫持所用,抛弃

      1.3 /etc/init.d/http_status_stat
      单从名字上看,应该就是为劫持404所用,抛弃

      1.4 /etc/init.d/statisticsservice
      启动的进程中的配置文件中有一段:ad_filter_stat_url = "http://127.0.0.1:8195/"
      感觉是广告的代理,你说没事去访问8195端口干啥,另外“ad”这个名字,就是广告缩写呀,抛弃

      1.5 /etc/init.d/sysapihttpd
      这是启动http服务器,纯粹启动80端口也就罢了,启动了N个服务和端口,我也就不一一吐槽了
      总之也是为配合404劫持和广告所用,所以需要抛弃。
      如果才启动项禁用掉的话,可能就无法访问小米路由的WEB配置页面了,别担心,可以启动uhttpd来实现。

      1.6 /etc/init.d/mihttpd
      同样是启动小米路由的配置页面,不过不在80端口,抛弃。

      1.7 /etc/init.d/xunlei
      小米路由中的下载用的就是迅雷,如果有下载需求的可以不用停,但我无此需求,看着也不爽,抛弃。

      1.8 /etc/init.d/messagingagent.sh
      此启动项是将路由器一些数据上报给小米服务器,手机app远程访问也就是联系小米服务器获取路由的相关信息。
      具体我也不一一描述了,个人感觉,将一些信息上传给小米,这件事不靠谱。
      虽然打着“远程管理”的幌子,谁知道有无上传个人隐私信息呢。
      如果你还需要用手机APP远程配置路由的话,可以留着。

    2. 操作步骤:
      当然小米路由上还有其他可疑进程,但还未搞清楚其用途或者关联,暂时不去理会。
      这次主要初步解决掉404劫持,插入广告这类问题:
      手上这台小米路由的系统版本是: 开发版2.3.10 ,其他版本未尝试。

      2.1 首先得开启ssh权限,这个不需要多说了,网上教程很多,也可以通过小米官网开启
      开启之后就失去保修了,个人衡量。

      2.2 关闭可疑进程操作:
      /etc/init.d/rule_mgr stop
      /etc/init.d/http_client_detect stop
      /etc/init.d/http_status_stat stop
      /etc/init.d/statisticsservice stop
      /etc/init.d/sysapihttpd stop
      /etc/init.d/mihttpd stop
      不需要远程访问和迅雷下载的话,可以继续操作:
      /etc/init.d/messagingagent.sh stop
      /etc/init.d/xunlei stop
      这样的话,以上进程都被关闭掉了。

      2.3 关闭可疑进程开机自动运行:
      /etc/init.d/rule_mgr disable
      /etc/init.d/http_client_detect disable
      /etc/init.d/http_status_stat disable
      /etc/init.d/statisticsservice disable
      /etc/init.d/sysapihttpd disable
      /etc/init.d/mihttpd disable
      不需要远程访问和迅雷下载的话,可以继续操作:
      /etc/init.d/messagingagent.sh disable
      /etc/init.d/xunlei disable
      这样的话,以上进程,重启之后也不会开机运行了

      2.4 启动uhttpd操作:
      因为停掉了sysapihttpd ,小米路由配置WEB将无法访问。
      幸运的是,小米路由上还有uhttpd
      首先修改一下/etc/init.d/uhttpd

      找到 [ $use_uhttpd -eq 0 ] && return 0 这行,大概在倒数第8行的样子,注释掉这一行。
      然后启动uhttpd:
      /etc/init.d/uhttpd start
      并设置开机自动运行:
      /etc/init.d/uhttpd enable

      2.5 计划任务中一些操作也让我存疑
      执行crontab -e 可以注释停掉,目前我计划任务中只保留了ntp,其他项都被我注释掉了。

      至此,我个人认为可以解决小米路由劫持404,插入广告,上报数据的问题了。
      我的小米路由器运行了3天,目前正常使用中,可能还有可疑的进程,还未发现,继续持续关注。
      小米路由净化计划继续,继续分析可疑进程,将其打入小黑屋,
      另外想办法用原生luci替换掉目前小米定制的小米luci,装个插件都得在手机APP操作,实在蛋疼。

    第 1 条附言    2015-06-26 09:28:48 +08:00
    更新一下,已经将小米WEB配置页面替换成原生的luci了

    第 2 条附言    2015-06-26 12:37:57 +08:00
    等小米路由正常运行一段时间后,整理一下,然后准备启个github的项目,将小米路由"刷"openwrt的相关脚本和文件分享出来。
    第 3 条附言    2016-12-26 16:27:00 +08:00
    不要等待楼主的小米路由净化 github 开源了,因为楼主已经完全抛弃小米路由了
    31 条回复    2015-09-03 17:18:08 +08:00
    neo2015
        1
    neo2015  
       2015-06-25 13:05:21 +08:00
    据说。。。这些功能都是开发版才有,没刷开发版的没有。求证
    keyfunc
        2
    keyfunc  
       2015-06-25 13:07:16 +08:00
    @neo2015 稳定版也有
    ihciah
        3
    ihciah  
       2015-06-25 13:51:57 +08:00
    楼主的帖子坚定了我不买小米任何产品的决心
    churchmce
        4
    churchmice  
       2015-06-25 13:55:02 +08:00
    这玩意在国外卖的话早被告到生活不能自理了
    iwege
        5
    iwege  
       2015-06-25 14:00:21 +08:00
    为啥不直接刷掉?
    crazyxin1988
        6
    crazyxin1988  
       2015-06-25 14:06:16 +08:00
    支持楼主
    可以搞个开源项目 一键脚本 清理小米路由 哈哈
    subpo
        7
    subpo  
    PRO
       2015-06-25 14:09:49 +08:00
    目前只遇到未找到域名劫持啊,比电信的劫持要友好
    LazyZhu
        8
    LazyZhu  
       2015-06-25 14:10:29 +08:00
    哈哈,其他功能/稳定不说,先把隐私搞到手...
    cyberdak
        9
    cyberdak  
       2015-06-25 14:11:43 +08:00
    解决办法难道不是把这路由扔了?
    明知小米没有节操,却还要购买来使用,是一种什么样的精神啊
    justahappy
        10
    justahappy  
       2015-06-25 14:12:15 +08:00   2
    @churchmice 生活不如意么,见啥喷啥,可悲。
    KeySouundsFan
        11
    KeySouundsFan  
       
    dotpig
        12
    dotpig  
       2015-06-25 14:53:44 +08:00
    @churchmice 还记得米4回传数据吗?在国外被发现后小米动作快啊,立马停止。但是国内,那帮米粉纷纷出来主动帮小米洗地。不得不佩服雷军,培养了一支脑残大军,有这支军队,小米在镇里做任何事情都可以毫无顾忌。
    yuhu
        13
    yuhu  
       2015-06-25 14:53:50 +08:00
    404用手机客户端可以关闭。页眉广告暂时还没发现。
    404关闭方法:路由器设置-关于-网页调制选项。
    cyberdak
        14
    cyberdak  
       2015-06-25 15:00:19 +08:00
    @dotpig 还有楼主这种孜孜不倦买小米,小米为何要担心。
    不能用就修改用,的
    cielpy
        15
    cielpy  
       2015-06-25 15:19:31 +08:00
    不是应该换新的吗。
    mac2man
        16
    mac2man  
    OP
       2015-06-25 16:10:58 +08:00   1
    @cyberdak 买之前不知道它这么无节操呀

    @djp518 还是想用op来着
    tobyxdd
        17
    tobyxdd  
       2015-06-25 16:21:14 +08:00 via Android
    中国网民真艰难 跟gfw斗跟isp斗现在自家路由器都得防着了
    xrjr2015
        19
    xrjr2015  
       2015-06-25 23:00:39 +08:00
    小米的设备将严重的危害个人信息隐私,小米手机rom的后门也是不了了之,这辈子怕是不会沾小米的产品!国产的很多设备只能用一个词来形容,就是垃圾!
    IvanLing
        20
    IvanLing  
       2015-06-26 09:48:57 +08:00 via iPhone
    亏本的生意不会有人做的。你觉得它设备便宜,他觉得你数据便宜。
    yegle
        21
    yegle  
       2015-06-27 00:30:36 +08:00
    http_dpi 这个从名字猜测是deep packet inspection,深度包检测
    tifan
        22
    tifan  
       2015-06-27 01:26:18 +08:00
    nf_* 一看就是 netfilter 嘛 ... 配合 dpi,这是要搞本地 GFW? 啧啧

    谁把二进制贴上来看看?
    gjflsl
        23
    gjflsl  
       2015-06-28 11:52:01 +08:00 via iPhone
    稳定版也开始劫持404页面了,准备换掉路由器了
    lasx
        24
    lasx  
       2015-06-30 10:40:48 +08:00
    @djp518 那个分区的压缩包下载了没有,目前访问是404
    yech1990
        25
    yech1990  
       2015-07-02 02:52:59 +08:00 via Android
    楼主快开放GitHub啊
    更换luci的教程搞定了么?
    yech1990
        26
    yech1990  
       2015-07-02 15:59:37 +08:00
    修改后lan口获取不了ip.....
    mac2man
        27
    mac2man  
    OP
       2015-07-06 14:39:00 +08:00
    @yech1990 我上面说描述的操作是不会影响到DHCP的,估计你的dnsmasq没启动起来 至于github项目,目前我还在测试,目前主要问题是wifi有些不正常,无法直接在luci上配置,需要手工配置1条命令
    yech1990
        28
    yech1990  
       2015-07-08 12:14:51 +08:00
    @mac2man 已经可以正常使用
    zhoujianqingz
        29
    zhoujianqingz  
       2015-08-26 20:39:38 +08:00
    @djp518 你好,请问这个是什么,不懂毛子的语言
    KeySouundsFan
        30
    KeySouundsFan  
       2015-08-26 22:57:32 +08:00
    @zhoujianqingz 湾湾出了新的: http://digiland.tw/viewtopic.php?id=2648 不要告诉我看不懂繁体
    yech1990
        31
    yech1990  
       2015-09-03 17:18:08 +08:00
    @djp518 试过了没有?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2235 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:07 PVG 00:07 LAX 09:07 JFK 12:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86