程序员黑餐馆系统
360“又”被小米下架了,孰是孰非这里暂且不表,不过在看到小米的声明中指控360“在用户并不知情的情况下静默执行Root刷机行为,篡改MIUI系统签名,植入非官方的系统应用”后,不禁感慨,终于还是有人突破了底线。
说到Root,使用过安卓手机的朋友们一定是耳熟能详,肯定也有不少应用程序在大家的手中被赋予了Root权限。虽然我们使用Root权限的目的可能只是为了卸载内置应用、apk自动安装、管理后台进程或者限制后台流量,然而你不知道的是,在你点击“授权”的一瞬间,你可能已经开启了“裸奔”模式,下面请同学们继续拿出小板凳坐好,听我来简单介绍下这个“裸奔”模式的开启原理。
一个APP,无论复杂如微信还是简单如图片查看器,他们都需要遵循系统对应的“开发框架”,获取系统提供的能力,来完成自己产品对应的功能。如启动,获取用户的操作,发送网络数据等。“开发框架”定义了一些app获取系统能力的“通道”,app通过这些“通道”就可以很方便的使用系统对应的能力。在这里,应用程序和操作系统之间的关系可以抽象成下图:
我们发送的每一条信息,输入的每一个密码,分享的每一条说说,拍摄的每一张照片都需要经过这个“通道”,由操作系统处理后才能完成。
很明显,“通道”是实现功能的“必经之路”,如果“通道”被劫持、篡改,我们的敏感信息就很有可能被暴露。然而很不幸的是,这种劫持、篡改通道的技术已经很成熟了,一般我们都称它为“动态注入”。在被注入后,应用程序与操作系统间的“通道”就会变成下图:
也就是说所有的数据都会被某个“其他应用”“窥视”一遍,然后才会到达系统。
如果你的手机可以获得Root权限,并且手机上安装了某个具有“动态注入”能力的“其他应用”A,那么,当你使用应用程序时,应用程序的启动和运行可能会经历下面的过程:
应用程序启动后,A会使用“动态注入”技术,将自己的“窥视”代码注入到应用程序的进程中。
“窥视”代码被注入后,会针对性的拦截应用程序到系统的“通道”。
当应用程序使用“通道”时,数据会先被A应用“窥视”后,才会交给操作系统。
监控应用程序的行为,只需如此“简单”的三步,并不比“把大象放冰箱里”复杂。
最后,引用一下“技术本身并不可耻”的名言,“动态注入”如果能够合理利用,可以通过获取用户的使用习惯来做一些针对性的体验优化,还可以控制一些软件的自启动和流量使用。然而,相信在这个浮躁的社会里,并不是每个人都像我一样单纯、善良。
对了,再补充一句:该技术不仅仅适用于安卓系统。
相关阅读
一个学生辞职了,约我吃饭。 他说,老师,最近投了很多简历,就一个小公司回复了; 面试过了,但我不想去,能不能帮我分析分析,我现在该怎么办啊
PC运行效率不高时我们可以使“任务管理器”来查看是哪些进程拖累了系统,但网络连线状况不佳时要用什么工具去了解?这应该是很多人都
程序员面试宝典_欧 pdf ,面试的基石 https://pan.baidu.com/s/1wR_6QHscZQRV3efMOMEUEQ
接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的
【声明】本文仅为筹办思路,并未招生简章或合同邀约/条款等,不具有任何法律效力。 今天签订了租房合同,在QQ群里发布了消息,收到很多