【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )
文章目錄
- 前言
- 一、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 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】Android
- 下一篇: 【Android 逆向】Android