程序员冒死揭露黑产系列之:通道劫持与动态注入

360“又”被小米下架了,孰是孰非这里暂且不表,不过在看到小米的声明中指控360“在用户并不知情的情况下静默执行Root刷机行为,篡改MIUI系统签名,植入非官方的系统应用”后,不禁感慨,终于还是有人突破了底线.

说到Root,使用过安卓手机的朋友们一定是耳熟能详,肯定也有不少应用程序在大家的手中被赋予了Root权限.虽然我们使用Root权限的目的可能只是为了卸载内置应用、apk自动安装、管理后台进程或者限制后台流量,然而你不知道的是,在你点击“授权”的一瞬间,你可能已经开启了“裸奔”模式,下面请同学们继续拿出小板凳坐好,听我来简单介绍下这个“裸奔”模式的开启原理.

一个App,无论复杂如微信还是简单如图片查看器,他们都需要遵循系统对应的“开发框架”,获取系统提供的能力,来完成自己产品对应的功能.如启动,获取用户的操作,发送网络数据等.“开发框架”定义了一些app获取系统能力的“通道”,app通过这些“通道”就可以很方便的使用系统对应的能力.在这里,应用程序和操作系统之间的关系可以抽象成下图:

我们发送的每一条信息,输入的每一个密码,分享的每一条说说,拍摄的每一张照片都需要经过这个“通道”,由操作系统处理后才能完成.

很明显,“通道”是实现功能的“必经之路”,如果“通道”被劫持、篡改,我们的敏感信息就很有可能被暴露.然而很不幸的是,这种劫持、篡改通道的技术已经很成熟了,一般我们都称它为“动态注入”.在被注入后,应用程序与操作系统间的“通道”就会变成下图:

也就是说所有的数据都会被某个“其他应用”“窥视”一遍,然后才会到达系统.

如果你的手机可以获得Root权限,并且手机上安装了某个具有“动态注入”能力的“其他应用”A,那么,当你使用应用程序时,应用程序的启动和运行可能会经历下面的过程:

应用程序启动后,A会使用“动态注入”技术,将自己的“窥视”代码注入到应用程序的进程中.

“窥视”代码被注入后,会针对性的拦截应用程序到系统的“通道”.

当应用程序使用“通道”时,数据会先被A应用“窥视”后,才会交给操作系统.

监控应用程序的行为,只需如此“简单”的三步,并不比“把大象放冰箱里”复杂.

最后,引用一下“技术本身并不可耻”的名言,“动态注入”如果能够合理利用,可以通过获取用户的使用习惯来做一些针对性的体验优化,还可以控制一些软件的自启动和流量使用.然而,相信在这个浮躁的社会里,并不是每个人都像我一样单纯、善良.

对了,再补充一句:该技术不仅仅适用于安卓系统.

#专栏作家#

给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家.资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索.

本文原创发布于人人都是产品经理,未经许可,不得转载.

注:相关网站建设技巧阅读请移步到建站教程频道.

#网站推广   最新资讯

相关文章


案例展示

  • 青城马术俱乐部

    323青城马术俱乐部

    公司介绍四川青城马术俱乐部是中国马术协会的团体会员及四川马术协会的团体会员,俱乐部隶属于崇州高墩旅游文化传播有限公司,以弘扬马术文化,提倡快乐健身为宗旨,为会员提供休
  • SOLOVE素乐

    289SOLOVE素乐

    公司简介SOLOVE素乐是香港觅客科技旗下针对移动出行而开发3C数码产品的时尚品牌,公司最初由三位设计院士联合创建,并迅速发展成为一家拥有超过百人的高科技的企业,开发一系列
  • 广州立冠创新科技有限公司

    299广州立冠创新科技有限公司

    广州立冠创新科技有限公司是一家专业从事机箱、电源、键鼠、摄像头等电脑外设研发、制造及销售的民营高科技企业。旗下拥有的自主品牌立冠电源“立冠一代”&ldqu