[原创]移动应用安全与风控——应用的安装
2023-5-29 19:45:32 Author: bbs.pediy.com(查看原文) 阅读量:10 收藏

[原创]移动应用安全与风控——应用的安装

6天前 2155

1.2.1 Android 应用安装

       Android应用程序的安装包本质是后缀为apk的压缩包,里面包含了应用运行时所需的资源和依赖库等。程序安装就是把压缩包中的文件和依赖库资源拷贝到系统相应目录,然后在桌面创建应用图标。那么Android应用的具体安装过程是不是这样的呢?本节将为大家详细讲解。
       应用安装过程中将会涉及到的目录,如下图所示:
图片描述
       应用安装是系统默认是将其安装到/data/data目录,如果想将应用安装到SDcard中,可以在应用的配置文件中AndroidManifest增加android:installLocation属性,将该属性的值设置为“preferExternal”或“auto”。具体如下所示:

1

2

3

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    android:installLocation="preferExternal"

    ... >

应用安装流程可以分为六步:
       第一步:应用安装时通过DefaultContainerService将自身拷贝至/data/app/package/目录中,动态库则拷贝至/data/app/package/lib/目录中。如果系统是Android6.0及以上的将应用中的dex文件拷贝至/data/app/应用包名/oat/目录,并进行优化处理。Android6.0以上将应用中的dex文件拷贝至/data/dalvik-cache目录。
       第二步:解析安装包中的资源文件进行签名校验,将AndroidManifest.xml文件中读取到的应用信息写入到/data/system/packages.xml文件。
       第四步:在/data/data/package/目录中创建程序所需的数据目录,并将应用数据拷贝至相关目录中。
       第五步:将AndroidManifest.xml文件中声明的组件信息注册到PackageManagerService。
       第六步:通过Launch应用将应用图标添加至桌面,至此完成应用安装。通过系统发送应用完成安装广播。
       具体安装流程可看下图:
图片描述

1.2.2 IOS 应用安装

       iOS的安装文件后缀为ipa,相对Android系统来说iOS系统是封闭的,无法像Android一样随意安装应用。不过iOS的安装文件本质上也是一个压缩文件,里面包含了应用运行时所需的资源和依赖库等。同Android的安装的过程类似也是把压缩包中的数据和依赖库拷贝到相应目录,然后在桌面创建应用图标。
       iOS的应用安装时通常会涉及到四个文件目录:Documents、Library、tmp和应用的安装目录AppName.app。文件目录所在位置和用处如下表
图片描述
       iOS系统提供了三种应用安装途径:App Store安装、TestFlight安装和itemServices协议安装。这三种安装方式除了最开始的调用方式不同外,最终都是由系统的安装服务进行安装处理。
       App Store和TestFlight都是苹果官方的应用分发平台,不同之处在于App Store是用于正式应用的分发,TestFlight是苹果提供给开发者用于内测的分发平台,不是每个用户都有权使用TestFlight安装应用,需要开发者发出邀请才可以,建议安装应用时首先考虑使用App Store方案安装应用。通过App Store安装应用的流程如下所示:
图片描述
itemServices是苹果推出的一种协议,基于此协议开发者可以建立自己的企业版应用的分发平台绕过上架App Store的限制。itemServices配合plist文件构造一个网页,用户使用浏览打开该页面便可下载安装应用,具体示例如下图所示:

1

2

3

4

5

6

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <body>

  <a href='itms-services://?action=download-manifest&url=http://www.demo.com/demo.plist'>Demo</a>

  </body>

</html>

       使用此种方式安装应用在第一次打开时需要手动信任开发者的证书,否则应用将无法通过苹果的安全校验也就无法运行。
图片描述
       通过itemServices协议安装应用的流程如下图所示:
图片描述

安卓逆向入门


文章来源: https://bbs.pediy.com/thread-277403.htm
如有侵权请联系:admin#unsafe.sh