京东“盗图”事件分析
这里还是利用上次讲的trace来宏观分析函数调用流。
利用ddms的trace功能,记录用户截图时,“京东金融app”在后台执行的函数流:
涉及函数和截图有关,尝试搜索“screenshot”:
这里省略了一些方法,主要涉及两个类:GlobalShotListener和ScreenShotListenManager
先看ScreenShotListenManager:
注册全局的媒体内容观察者。响应函数:
打印了一些截图信息,交给监听类处理:
设置的监听响应对象是GlobalShotListener的实例。
看一下GlobalShotListener:
响应函数调用gainShotBusinessItemGet
generateKey是由图片信息组成的类似文件名的特征字符串。
根据特征字符串在缓存文件中检索指定文件。
这里就能看到缓存文件夹的创建和使用,即涉事文件夹“uil-image”。
以上是事件涉及的函数。总结一下流程:
应用全局监听媒体内容变化(截图事件),出现截图后,根据uri信息获取图片信息,拿到图片路径后,生成特征字符串再本地缓存图片,供其他功能调用,这里只看到图片预览功能,未发现任何网络相关操作。