android逆向修改android系统文件(重新挂载文件分区|在/system/lib/只读目录下创建文件|修改android系统文件的意义)(代码片段)

韩曙亮 韩曙亮     2023-01-19     187

关键词:





一、重新挂载文件分区



在上一篇博客 【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 #





二、在 /system/lib/ 只读目录下创建文件



重新挂载后 , 重新执行 echo "">test.so 命令 , 此时可以 在 /system/lib/ 目录下 成功创建文件 ;





三、修改 Android 系统文件的意义



Android 5.0 系统开始 , Android 系统加载 so 动态库时 , 只能加载应用内的 so 或者系统 /system/lib/ 下的 so ;

在逆向中 , 如果想要注入 so 代码 , 修改应用的 so 比较困难 , 要涉及重打包签名等问题 , 如果将 so 直接添加到 /system/lib/ 目录下 , 就比较简单了 ;

android逆向修改android系统文件(android逆向中需要经常修改的文件和目录|在root后的设备中获取/目录的rw权限后注意事项)(代码片段)

文章目录一、Android逆向中需要经常修改的文件和目录二、在root后的设备中获取/目录的rw权限后注意事项1、不要随意执行wipe命令2、不要随意执行rm命令一、Android逆向中需要经常修改的文件和目录系统配置文件:/default.prop文件是... 查看详情

android逆向修改android系统文件(android逆向中需要经常修改的文件和目录|在root后的设备中获取/目录的rw权限后注意事项)(代码片段)

文章目录一、Android逆向中需要经常修改的文件和目录二、在root后的设备中获取/目录的rw权限后注意事项1、不要随意执行wipe命令2、不要随意执行rm命令一、Android逆向中需要经常修改的文件和目录系统配置文件:/default.prop文件是... 查看详情

android逆向修改android系统文件(default.prop配置信息|修改default.prop配置信息文件)(代码片段)

...rop命令,查看default.prop->system/etc/prop.default文件信息;这是Android系统的默认属性;lrw-------1rootroot232009-01-0116:00de 查看详情

android逆向修改android系统文件(default.prop配置信息|修改default.prop配置信息文件)(代码片段)

...rop命令,查看default.prop->system/etc/prop.default文件信息;这是Android系统的默认属性;lrw-------1rootroot232009-01-0116:00de 查看详情

android逆向修改android系统文件(ro只读文件系统|系统文件格式|rootfs|tmpfs|devpts|sysfs|proc|/system)(代(代码片段)

...一、只读文件系统在adbshell命令行中,执行mount命令,会展示Android系统中所有的存储分区的权限;在分区后面的括号中,ro表示只读权限ReadOnly,不能写入数据;rw表示读写权限,既可以读,又可以写;ro只读状态的分区中的文件,不能修改;walley... 查看详情

android逆向修改android系统文件(ro只读文件系统|系统文件格式|rootfs|tmpfs|devpts|sysfs|proc|/system)(代(代码片段)

...一、只读文件系统在adbshell命令行中,执行mount命令,会展示Android系统中所有的存储分区的权限;在分区后面的括号中,ro表示只读权限ReadOnly,不能写入数据;rw表示读写权限,既可以读,又可以写;ro只读状态的分区中的文件,不能修改;walley... 查看详情

android逆向修改android的apk安装包内的文件并重新打包(apktool_2.6.0.jar下载和使用|zipalign文件对齐|apksigner签名)(代码片段)

文章目录一、apktool_2.6.0.jar下载和使用二、使用zipalign工具进行对齐操作三、使用apksigner工具进行签名四、完整命令行输出一、apktool_2.6.0.jar下载和使用在https://ibotpeaches.github.io/Apktool/页面下载最新的apktool工具;下载完毕后,使用java... 查看详情

android逆向android系统文件分析(/proc/目录文件分析|记录系统和进程信息|version内核版本信息文件)(代码片段)

...件,该目录中的文件的作用,主要是记录系统和进程的信息;Android系统将进程,以及进程相关信息,映射到/proc/目录下,作为一个文件,方便用户使用内核相关对象;/proc/目录映射了一些内核的参数和信息;应用只能修改自己的进程信息,无... 查看详情

android逆向android系统文件分析(/proc/目录文件分析|记录系统和进程信息|version内核版本信息文件)(代码片段)

...件,该目录中的文件的作用,主要是记录系统和进程的信息;Android系统将进程,以及进程相关信息,映射到/proc/目录下,作为一个文件,方便用户使用内核相关对象;/proc/目录映射了一些内核的参数和信息;应用只能修改自己的进程信息,无... 查看详情

android逆向整体加固脱壳(脱壳点简介|修改系统源码进行脱壳)(代码片段)

...、修改系统源码进行脱壳一、脱壳点简介在上一篇博客【Android逆向】整体加固脱壳(DEX优化流程分析|DexPrepare.cpp中rewriteDex函数分析|脱壳点|获取dex文件在内存中的首地址)中,提到了222个脱壳点:①/dalvik/vm/DvmDex.cpp的dvmDexFileOpenPartial... 查看详情

android逆向android逆向用途|android逆向原理

文章目录一、Android逆向用途二、Android逆向原理一、Android逆向用途Android逆向用途:软件防护:根据逆向的方法针对性的开发防护策略;算法研究:在没有源码的前提下,通过反编译,反汇编,拿到Smali代码,研究其产品的算法,实现途径;接... 查看详情

android逆向android逆向基本概念(软件运行时内存结构|文件与内存之间的联系)

文章目录一、Android软件运行时内存结构二、Android文件与内存之间的联系一、Android软件运行时内存结构Android软件运行时内存结构:硬件层:内存中,硬件层处于最底层,映射成一些文件;硬件驱动层:该层是硬件层与操作系统的纽带,一... 查看详情

android逆向android逆向基本概念(定位内存中的修改点|基址寻址法|搜索定位法)(代码片段)

文章目录一、定位内存中的修改点1、基址寻址法2、搜索定位法一、定位内存中的修改点使用"基址寻址法"或"搜索定位法"搜索指定文件中的代码在内存中的位置;上述222个内存定位方法结合IDA工具,一起使用;1、基址寻... 查看详情

android逆向android系统文件分析(android系统root环境准备|查看android根目录信息)(代码片段)

文章目录一、Android系统root环境准备二、查看Android根目录信息一、Android系统root环境准备需要一部root过的手机,或者直接使用带有root权限的模拟器,如雷电模拟器,AndroidStudio自带的模拟器(6.0以下的系统);AndroidStudio中自带的模拟器在... 查看详情

android逆向android系统文件分析(android系统root环境准备|查看android根目录信息)(代码片段)

文章目录一、Android系统root环境准备二、查看Android根目录信息一、Android系统root环境准备需要一部root过的手机,或者直接使用带有root权限的模拟器,如雷电模拟器,AndroidStudio自带的模拟器(6.0以下的系统);AndroidStudio中自带的模拟器在... 查看详情

android逆向android系统文件分析(cmdline系统启动参数文件|crypto密码算法信息文件|devices设备信息文件)(代码片段)

...统启动时的参数;walleye:/proc#catcmdlinercupdate.rcu_expedited=1androidboot.hardware=walleyeandroidboot.consol 查看详情

android逆向android系统文件分析(cmdline系统启动参数文件|crypto密码算法信息文件|devices设备信息文件)(代码片段)

...统启动时的参数;walleye:/proc#catcmdlinercupdate.rcu_expedited=1androidboot.hardware=walleyeandroidboot.consol 查看详情

android逆向必备工具

Android逆向用途:软件防护:根据逆向的方法针对性的开发防护策略;算法研究:在没有源码的前提下,通过反编译,反汇编,拿到Smali代码,研究其产品的算法,实现途径;接口分析:接入一个没有源码的第三方库,无法进行调试,出现问题后,可... 查看详情