【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )
文章目录
前言
一、Android 进程读取文件所需的权限
通过 注入工具 , 将 libbridge.so 注入到远程进程 后 , 远程进程中 , 会 为 libbridge.so 动态库分配一块内存 , 并将其运行起来 ;
远程进程 中 注入的 动态库 , 需要 对文件进行读写操作 , 如读取某个文件目录 , 向某个路径上写入 内存数据 / 日志文件 等内容 ;
文件读写操作 , 使用 标准文件读写函数 即可 , 如 fopen , fwrite , fread 等函数 ;
在 Android 进程中 , 对文件进行读写操作 , 最重要的是 权限问题 , 如果要访问 /data/system/debug/command.json
文件 , 需要确定是否有访问该文件的权限 , 并且还要有该文件的上级目录的访问权限 , 上级目录有 :
/data/system/debug/
/data/system/
/data/
/
如果没有上级目录的访问权限 , 解析整个路径时 , 会因为某个上级目录没有权限而中断 , 进而导致使用 fopen 打开文件报错 ;
在 5.0 之前的版本 , 如果没有目录的权限 , 是可以读取文件的 ;
5.0 版本兼容两种模式 ;
但是在 5.1 及之后的版本 , 需要有所有路径的权限 , 才可以读取文件 ;
特别注意 : 如果要读写 /data/system/debug/command.json
文件数据 , 上层目录的权限必须有读取的权限 , 上层目录可以没有写的权限 ;
二、fopen 打开文件标志位
文件的写操作权限比较敏感 , w+ 权限指的是可以向文件中追加数据 , r+ 权限指的是可读可写 , 具体参考 【C 语言】文件操作 ( fopen 文件打开方式详解 ) 二、fopen 函数文件打开方式详解 博客章节 ;
三、验证文件权限
查看 /data/system/debug/command.json
文件的权限 , 将其权限设置为 -rwxrwxrwx
即可 , 权限分为 3 组 , 第一组是 root 用户的 , 第二组是系统用户的 , 第三组是应用创建的用户权限 ;
如果权限不足 , 使用
chmod 777 fileName
命令 , 修改 fileName 文件的权限 ;
-rwxrwxrwx root root 80 2021-10-31 21:16 command.json
查看 /data/system/debug/
文件的权限 ,
drwxrwxr-x root root 2021-10-31 21:12 debug
执行
chmod 777 debug
命令 , 为 debug 目录赋予 777 完整权限 ;
由于 debug 目录是我们自己创建的 , 可以任意修改 , 但是上一级 system 目录的权限不能动 ;
查看 /data/system/
文件的权限 , 该目录针对应用用户 , 有 r-x
权限 , 只有读取和执行权限 , 没有写权限 , 上面提到过 , 要读写的文件的上级目录只要有写权限 , 就可以保证下级的文件读写 ;
drwxrwxr-x system system 2021-11-06 11:07 system
相关文章
- 聚焦 Android 11: 大功告成
- Android浏览器插件开发[通俗易懂]
- android布局文件详解
- android declare-styleable 和style,Android 关于declare-styleable属性的写法….
- android telephony 原理解析与开发指南_Android逆向pdf
- Android触摸事件_android设置按钮点击事件
- Android N上一些新特性的介绍「建议收藏」
- Android内存泄漏原因
- Android OpenCV 4.6 透视变换
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- 【Android Protobuf 序列化】Protobuf 服务器与客户端通信 ( TCP 通信中使用 Protobuf )
- 【Android 安装包优化】Android 应用中 7zr 可执行程序准备 ( Android Studio 导入可执行 7zr 程序 | 从 Assets 资源文件拷贝 7zr 到内置存储 )
- 【Android 高性能音频】Oboe 音频流打开后 耳机 / 音箱 插拔事件处理 ( 设置 Oboe 音频设备 ID | setDeviceId 函数原型 | AudioStream 音频流 )
- 【Android 逆向】Android 系统中文件的用户和分组 ( 文件所有者与分组 | /sdcard/ 的文件分组 | /data/ 目录分析 | 用户类型 )
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
- 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader )
- 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | oat_file_assistant.cc 中涉及的 oat 文件生成流程 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
- android电话拦截详解手机开发
- android MVP框架详解手机开发
- android中使用afinal一行代码显示网络图片详解编程语言
- 64位谷歌浏览器安卓版终于正式发布 但仅支持Android 10+和8GB+内存
- 安卓编年史(14):Android 2.3 Gingerbread——第一次 UI 大变
- Android版Office本月将推出“文件卡”功能
- android操作SQLite增删改减实现代码
- Android源码学习之单例模式应用及优点介绍
- Android模拟器中窗口截图存成文件实现思路及代码
- 将文件放到Android模拟器的SD卡中的两种解决方法
- Android文件选择的实现代码
- android文件上传示例分享(android图片上传)
- Android中Activity跳转的创建步骤总结