文章目录

  • 一、只读文件系统
  • 二、系统文件格式

一、只读文件系统


在 adb shell 命令行中 , 执行 mount 命令 , 会展示 Android 系统中所有的存储分区的权限 ;

在分区后面的括号中 , ro 表示只读权限 Read Only , 不能写入数据 ; rw 表示读写权限 , 既可以读 , 又可以写 ;

ro 只读状态的分区中的文件 , 不能修改 ;

walleye:/ $ mount
/dev/root on / type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
tmpfs on /sbin type tmpfs (rw,seclabel,relatime,size=1853688k,nr_inodes=463422,mode=755)
/sbin/.magisk/block/persist on /sbin/.magisk/mirror/persist type ext4 (rw,seclabel,relatime,data=ordered)
/sbin/.magisk/block/system_root on /sbin/.magisk/mirror/system_root type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
/sbin/.magisk/block/system_root on /sbin/charger type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1853688k,nr_inodes=463422,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1853688k,nr_inodes=463422,mode=755,gid=1000)
/dev/block/sdd3 on /persist type ext4 (rw,seclabel,nosuid,nodev,noatime,data=ordered)
/dev/block/dm-0 on /vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
none on /acct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct)
debugfs on /sys/kernel/debug type debugfs (rw,seclabel,relatime)
none on /dev/stune type cgroup (rw,nosuid,nodev,noexec,relatime,schedtune)
none on /config type configfs (rw,nosuid,nodev,noexec,relatime)
none on /dev/cpuctl type cgroup (rw,nosuid,nodev,noexec,relatime,cpu)
none on /dev/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,seclabel,relatime)
/dev/block/sda7 on /firmware type vfat (ro,context=u:object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)
tmpfs on /storage type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1853688k,nr_inodes=463422,mode=755,gid=1000)
/dev/block/sda45 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,resgid=1065,errors=panic,stripe=4096,data=ordered)
/sbin/.magisk/block/vendor on /sbin/.magisk/mirror/vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
/sbin/.magisk/block/data on /sbin/.magisk/mirror/data type ext4 (rw,seclabel,relatime,noauto_da_alloc,resgid=1065,errors=panic,stripe=4096,data=ordered)
/sbin/.magisk/block/data on /sbin/.magisk/modules type ext4 (rw,seclabel,relatime,noauto_da_alloc,resgid=1065,errors=panic,stripe=4096,data=ordered)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
mtp on /dev/usb-ffs/mtp type functionfs (rw,relatime)
ptp on /dev/usb-ffs/ptp type functionfs (rw,relatime)
/data/media on /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal)
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal)
/data/media on /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=23,derive_gid,default_normal)
/data/media on /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid,default_normal)
pstore on /sys/fs/pstore type pstore (rw,seclabel,relatime)
walleye:/ $

/system/lib/ 目录为例 , libc.so 动态库就是在该目录中 ;

获取 root 权限后 , 向 /system/lib/ 目录下写出一个文件 , 发现报如下错误 , 无法创建文件 ;

/system/bin/sh: can't create test.so: Read-only file system

二、系统文件格式


在常见的文件系统中 , 有如下文件格式 :

rootfs : Root FileSystem 根文件系统 , 根文件格式 , 一般是 ro 格式的 , 只读权限 ;

tmpfs : Temp FileSystem 临时文件系统 , 基于内存的文件系统 , 一般是 rw 格式的 , 读写权限 ;

devpts : 远程虚拟终端文件设备 , rw 格式 , 设备允许进行读写 ;

sysfs : 内核文件信息文件 , 这是基于内存的文件系统 , 其作用是将 内核信息 以文件的方式给 用户程序 使用 , ro 格式 , 只读权限 ;

proc : 进程信息文件 , 其作用是将 进程信息 以文件的方式给 用户程序 使用 ; rw 格式 , 有读写权限 ;

/system/ : 系统文件目录 , ro 格式 , 只读权限 ;

/data/ : 应用文件 , rw 格式 , 读写权限 ;

Android 系统文件修改的目的就是向 ro 格式的文件目录中 , 写入数据 ;

【Android 逆向】修改 Android 系统文件 ( ro 只读文件系统 | 系统文件格式 | rootfs | tmpfs | devpts | sysfs |proc | /system )相关推荐

  1. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )

    文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...

  2. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★

    文章目录 一.Android 进程注入工具开发系列博客 二.Android 进程注入工具 源码下载编译 三.逆向环境搭建 四.使用注入工具进行逆向操作 1.获取远程进程号 2.注入工具准备 3.注入动 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )

    文章目录 前言 一.x86 架构的返回值获取 二.ARM 架构远程调用 前言 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 ...

  4. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取注入的 libbridge.so 动态库中的 load 函数地址 并 通过 远程调用 执行该函数 )

    文章目录 一.dlsym 函数简介 二.获取 目标进程 linker 中的 dlsym 函数地址 三.远程调用 目标进程 linker 中的 dlsym 函数 获取 注入的 libbridge.so ...

  5. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 )

    文章目录 一.dlopen 函数简介 二.获取 目标进程 linker 中的 dlopen 函数地址 三.远程调用 目标进程 linker 中的 dlopen 函数 一.dlopen 函数简介 dlo ...

  6. 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

    文章目录 一.SO 进程注入环境及 root 权限获取 二.进程注入时序分析 一.SO 进程注入环境及 root 权限获取 SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能 ...

  7. 【Android 逆向】Android 进程注入工具开发 ( 远程调用总结 | 远程调用注意事项 )

    文章目录 一.远程调用总结 二.远程调用注意事项 一.远程调用总结 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序 ...

  8. 【Android 逆向】Android 进程简介 ( Android 应用启动流程 )

    文章目录 前言 一.Android 进程 二.Android 应用启动流程 前言 参考 [Android 逆向]Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_a ...

  9. 【Android 逆向】Android 逆向通用工具开发 ( PC 端工程分析 | 网络初始化操作 | PC 端工程核心业务逻辑 )

    文章目录 前言 一.网络初始化操作 二.PC 端工程核心业务逻辑 三.博客资源 前言 本篇博客重点分析 PC 端 hacktool 模块 ; 一.网络初始化操作 HackCommand::Prepar ...

最新文章

  1. 惊讶!缓存刚Put再Get居然获取不到?
  2. bulkwrite 批量插入_使用SqlBulkCopy批量插入数据
  3. .net core 一个避免跨站请求的中间件
  4. adaboost算法java代码_04-04 AdaBoost算法代码(鸢尾花分类)
  5. java 中的点_java————形参中的点点点 | 学步园
  6. 一体机服务器性能,一体机的服务器
  7. 11月1日上午PHP批量删除
  8. Mac系统怎么设置文件夹显示在前面?
  9. pdf照片显示正常打印时被翻转_明天开始打印准考证,你需要注意这些!
  10. Unity 光照贴图.hdr转.png解决方案
  11. mysql 中用select建表_用 SELECT 的结果创建表
  12. r5驱动 索尼exmor_卡片机“X”档案 ——索尼Exmor R CMOS技术解析
  13. c语言水电费系统,急求C水电费管理系统
  14. 大学心理学课本_大学心理学的教材依次(全部)都有哪些?
  15. php pdo mysql 超时_为 PDO 增加读写超时
  16. PTA1003 python3
  17. 程序员晒出从毕业到工作5年照片,抱怨头发掉光了,网友:很真实
  18. 测试用例编写练习(二)
  19. 【React Native】深入理解Native与RN通信原理
  20. python考试题目及答案-python考试题库

热门文章

  1. 搜狗前三季度亏损5.4亿元:广告收入下滑,预计将在Q4退市
  2. excel相乘后求和_excel怎么求和相乘,5种超实用的Excel求和方式
  3. windows时间同步软件_好用的便签软件电脑版有哪些?
  4. 基于CY7C68013A芯片的USB2.0设计
  5. 旧瓶装“新酒”?无代码开发是炒作噱头,还是大势所趋?
  6. python函数的装饰器
  7. 如何在谷歌地图上标注公司地址(实例讲解)
  8. 前端项目模拟数据两种方式
  9. [附源码]java+ssm计算机毕业设计教室预约系统的设计与实现5txsq(源码+程序+数据库+部署)
  10. IIS下面配置PHP教程