赞
踩
在上一篇博客 【Android 逆向】修改 Android 系统文件 ( ro 只读文件系统 | 系统文件格式 | rootfs | tmpfs | devpts | sysfs |proc | /system ) 中 , 提出了要修改 Android 的系统文件 ;
使用 mount
命令 , 重新挂载文件分区 , 其它内容不变 , 只是将 ro 只读格式修改为 rw 读写格式 ;
执行如下命令 , 将根目录重新挂载 , 格式设置为读写格式 ;
mount -o remount,rw /
此时 , 再执行 mount
命令 , 查看各个文件分区的格式 , 全都变成了 rw 格式 ; 与 上一篇博客 【Android 逆向】修改 Android 系统文件 ( ro 只读文件系统 | 系统文件格式 | rootfs | tmpfs | devpts | sysfs |proc | /system ) 的章节一进行比较 , 发现 ro 格式的目录都变成了 rw 格式的 , 都拥有了读写权限 ;
1|walleye:/system/lib # mount -o remount,rw / walleye:/system/lib # walleye:/system/lib # mount /dev/root on / type ext4 (rw,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 #
重新挂载后 , 重新执行 echo "">test.so
命令 , 此时可以 在 /system/lib/
目录下 成功创建文件 ;
Android 5.0 系统开始 , Android 系统加载 so 动态库时 , 只能加载应用内的 so 或者系统 /system/lib/ 下的 so ;
在逆向中 , 如果想要注入 so 代码 , 修改应用的 so 比较困难 , 要涉及重打包签名等问题 , 如果将 so 直接添加到 /system/lib/ 目录下 , 就比较简单了 ;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。