BAN掉那个APP(二)——hosts篇

BAN掉那个APP(二)——hosts篇

书接上文:https://tjublesson.top/2020/02/01/%E5%B1%80%E5%9F%9F%E7%BD%91kali%E5%AE%9E%E9%AA%8C/

今日随心情所喜好,再次选择使用路由器后台方式限制家父使用某app,未曾想在发现wifi无法正常使用app后,转而使用了流量……(话说使用流量我还怎么控制啊)

只好研究一种基于Android底层的流量控制方法了

修改hosts文件

安卓系统基于linux内核,hosts文件位于/system/etc/中,默认情况下该目录处于只读权限。

实验中采用adb+模拟器的配置。

  1. 在模拟器中打开该app,此时是可以正常访问的。avatar
  2. 以管理员权限运行cmd,依次输入:avatar
1
adb connect 127.0.0.1:7555
2
adb root
3
adb remount
  1. 将原有host文件转移到主机中:adb pull /system/etc/hosts E:/apk-Decompile/

此处最开始我选择了在windows下直接修改好后再转移到android上,但并不起效,查询资料可知,可能是windows的换行符与android中的并不通用所致,因此采取以下方法进行hosts的修改

  1. adb shell    //进入adb shell
    echo -e \\n >> /system/etc/hosts    //新建一行
    echo 127.0.0.1 mediaconfig.qutoutiao.net >> /system/etc/hosts
    echo 127.0.0.1 api.1sapp.com >> /system/etc/hosts
    echo 127.0.0.1 cdn.aiclk.com >> /system/etc/hosts
    echo 127.0.0.1 ddd.1sapp.com >> /system/etc/hosts
    echo 127.0.0.1 static.1sapp.com >> /system/etc/hosts
  2. 此时使用cat /system/etc/hosts查看是否修改成功avatar

  3. 再次进入app并刷新,可以发现已经无法正常访问了avatar

然而这种方式有局限,即必须获取到手机的root权限才可以操作,经过实验,在未root过的设备上进行adb root命令并不会起作用,所以该次实验仅做理论上的验证。

其实中老年人日常在家也并没有什么事可做,这种用来消磨时间还不搭钱的方式也无可厚非,毕竟,陪伴才是缓解无聊的良药。

2020-3-9更新:在模拟器抓包此app并分析其访问的url时曾遇到一个问题,即不开启抓包的情况下,app可以正常连接网络,但开启抓包后,app不能正常访问网络,且各项设置均正常。查阅相关资料后了解到,安卓app在进行https访问时,使用自签名证书+SSL Pinning的方式进行服务器身份验证,而抓包软件的开启使得证书校验失败,无法获取服务器返回信息。

解决方案:在已取得root权限的情况下,安装Xposed框架+JustTrustMe组件,该组件会将apk中所有用于校验SSL证书的API进行hook,从而绕过证书检查。

参考资料:https://m.imooc.com/article/251500?from=singlemessage

Xposed官方安装地址:https://repo.xposed.info/module/de.robv.android.xposed.installer

JustTrustMe Github地址:https://github.com/Fuzion24/JustTrustMe/releases/tag/v.2

(完)

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×