防病毒软件如何以编程方式扫描已安装的Android应用程序的代码(没有root权限)?

时间:2015-05-23 15:41:11

标签: java android security android-intent android-activity

我知道有几种安卓防病毒软件,例如:

  • AVG Mobile
  • AVAST软件
  • McAfee(Intel Security)
  • 诺顿手机
  • 卡巴斯基Lаb

等。

每个都提供扫描已安装的Android应用程序以查找病毒等功能(甚至是未植根的Android设备)。

证明以上内容的截图如下:

i.stack.imgur.com/tE5aP.png

http://i.stack.imgur.com/t5u0P.png

http://i.stack.imgur.com/P9LQb.png

但据我所知,安装在无根Android设备上的应用程序,一个应用程序无法访问另一个已安装的应用及其相关文件,例如:

  • 预先安装(即相机,日历,浏览器等)APK存储在/ system / app /

  • 用户安装(ApiDemo,Any.do等)APK存储在/ data / app /

  • 包管理器创建数据目录/数据/数据//以存储数据库,共享首选项,本机库和缓存数据

那么应用程序如上所述,如上所述以编程方式扫描应用程序及其相关文件(无root访问权限)

2 个答案:

答案 0 :(得分:1)

它不会像人们想象的那样访问文件,它不会打开它们,使用它们,也不会以任何方式扫描文件的数据。相反,它只是检查文件名。

对于AVG,我们可以说:AVG使用过去和现在的最新病毒数据库。它会扫描手机上的文件名,检查它们的数据库,然后提醒您名称是否与数据库中记录的名称相匹配。因此,它没有违反android建立的规则。

他们如何获得有关这些病毒的信息?好吧,幸运的是,你可能不是第一个得到它的人。当发现新病毒时,会报告该病毒,然后AVG将其添加到其数据库中。

所以,遗憾的是,您无法以您所描述的方式以编程方式访问其他文件。但是,您可以访问目录中的文件名,并使用文件名检查数据库中的病毒和其他恶意软件。

答案 1 :(得分:0)

我不确定反病毒软件的真正用途,但我知道一些方法可以在没有超级用户权限的情况下访问用户安装APK文件。

如果你仔细检查/ data / app,你会发现虽然/ data / app的访问权限是771(rwxrwx - x),但/ data / app下的APK文件的权限是644(rw- r - r--),这意味着你可以在没有超级用户权限的情况下阅读这些APK文件。

可接受的方式可能是这样的:
1.使用shell命令" pm list packages"或者PackageManager.getInstalledPackages()获取已安装应用程序的软件包名称 2.try读取/data/app(com.aaa.bbb-N.apk中的文件,N是一个数字取决于安装的应用程序的次数,你可以猜到它)

tips1:/ system / app的访问权限是644(rw-r - r--),意味着你可以直接" ls"它。 tips2:在正常情况下,无法在没有root访问权限的情况下读取/写入/ data / data下的文件。