3.安卓逆向2-安卓文件目录
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
上一个内容:2.安卓逆向2-adb指令
首先使用adb连接到手机,如下图使用adb命令列出手机的目录,下图红框的是一些系统文件,系统加载的时候可能会引用它们,我们不需要关注它们
需要关注的:/system、/data、/sdcard、/proc
/system目录,这个目录需要root权限才能进入,就是手机需要root
![]()
作用:存储安卓操作系统的核心文件,包括系统应用、库文件和配置文件
子目录:
/system/app:系统预装应用(如设置、浏览器)的APK文件
/system/bin:系统可执行文件(Linux命令,如ls、cat)
/system/lib:系统库文件(如.so文件)
/system/etc:配置文件(如网络、权限设置)
/system/framework:安卓框架文件(如framework.jar)
进入system目录
![]()
进入/system/app目录,这个目录是系统app,相机、电话、短信、设置之类的app都在这里
![]()
随便进入一个目录,可以看到它的apk文件,如果想要删除系统app,直接把目录里的文件删除就行了
![]()
然后再进入/system/bin目录,如下图去bin目录的指令
![]()
它里面是一些可执行文件
![]()
学过Linux的看到这个目录里的文件名字就会很熟悉
![]()
su命令也在bin目录下,这也是为什么可以切换root用户权限,手机root完之后它就会有这个目录,app加检测是否root的功能就可以扫描 /system/bin目录 有没有su文件,如果有su文件就说嘛以root,但是这个检测有缺点,把su改一个名,这检测就会失效
![]()
/system/lib目录,如下图,它里面是一些so文件,安卓系统开发的时候就有了
![]()
其它的不写了
/data目录
![]()
作用:自己安卓的app,都会放在data目录里
子目录:
/data/app:自己安装的app
/data/data:应用私有数据目录,每个app有独立子目录
/data/user:用户数据
/data/dalvik-cache:Dalvik/ART虚拟机的缓存
权限:需要root权限访问,非root用户和应用只能访问自己的数据
用途:保存用户设置、app缓存和个人信息
/data/app目录,下图红框就是自己安装的app文件夹了,文件夹名是app的包名加base64编码,
![]()
进入某个app,可以看到base.apk、lib(app的so文件)
![]()
进入lib目录,可以看到它里面是一个叫arm的文件夹,这个名字是以当前系统架构来的,当前是arm架构,一般手机是arm架构,模拟器可能会是x86架构
![]()
然后进入arm里就可以看到app的so文件了,如想对某appso文件做逆向,可以来到这个目录(/data/app/app文件夹/lib/arm)
![]()
/sdcard目录,它的权限比较高(没root也可以正常使用,可读可写),以后会经常使用
![]()
作用:用户可访问的内部存储,通常是虚拟化的外部存储
子目录:
/sdcard/DCIM:相机拍摄的照片和视频
/sdcard/Download:使用浏览器下载的文件存放位置
/sdcard/Music:音乐文件
/sdcard/Pictures:图片文件
/sdcard/Movies:视频文件
/sdcard/Android:应用相关数据(如缓存、外部存储文件)
权限:用户可读可写,但安卓10及以上引入了分区存储(Scoped Storage),限制了直接访问
用途:用户日常文件存储,类似PC的 我的文档
/mnt或/storage目录
![]()
作用:挂载点,用于管理存储设备(如SD卡、U盘)
子目录:
/mnt/sdcard:传统外部SD卡挂载点(旧设备)
/storage/emulated/0:模拟的内部存储(通常链接到/sdcard)
/storage/XXX-XXX:真是SD卡或USB设备(xxx-xxxx是卷id)
权限:根据设备和安卓版本变化,部分需要特殊权限
用途:管理外部存储介质(设备)
/proc目录
![]()
作用:虚拟文件系统,提供运行时系统信息(如 cpu、内存)
子目录:
/proc/cpuinfo:cpu信息
/proc/meminfo:内存使用情况
权限:只读,部分文件需root查看
用途:调试和调试系统状态
/dev目录
![]()
作用:设备文件目录,存储硬件设备对应的文件(给手机外接的设备,比如摄像头、传感器)
权限:系统控制,用户无权访问
用途:系统与硬件交互的基础