日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )

發(fā)布時間:2025/6/17 Android 27 豆豆

文章目錄

  • 前言
  • 一、等待遠程進程 mmap 函數(shù)執(zhí)行完畢
  • 二、從寄存器中獲取進程返回值
  • 三、博客資源

前言

前置博客 :

  • 【Android 逆向】Android 進程注入工具開發(fā) ( 注入代碼分析 | 遠程調(diào)用 目標進程中 libc.so 動態(tài)庫中的 mmap 函數(shù) 一 | mmap 函數(shù)簡介 )
  • 【Android 逆向】Android 進程注入工具開發(fā) ( 注入代碼分析 | 遠程調(diào)用 目標進程中 libc.so 動態(tài)庫中的 mmap 函數(shù) 二 | 準備參數(shù) | 遠程調(diào)用 mmap 函數(shù) )

本博客進行收尾 , 遠程調(diào)用 mmap 函數(shù)后 , 等待函數(shù)執(zhí)行 , 獲取該函數(shù)執(zhí)行的返回值 ;





一、等待遠程進程 mmap 函數(shù)執(zhí)行完畢



調(diào)用

waitpid(pid, &stat, WUNTRACED)

方法 , 阻塞等待 遠程進程 的 mmap 函數(shù)執(zhí)行完畢 , 直到遠程進程狀態(tài)位 WUNTRACED 時 ;

完整代碼如下 :

/* 等待遠程調(diào)用執(zhí)行完畢 */int stat = 0;waitpid(pid, &stat, WUNTRACED);while (stat != 0xb7f) {if (ptrace_continue(pid) == -1) {printf("error\n");return -1;}waitpid(pid, &stat, WUNTRACED);}



二、從寄存器中獲取進程返回值



等待遠程進程 mmap 函數(shù)執(zhí)行完畢返回后 ,

先調(diào)用 ptrace_getregs 方法 ,

ptrace_getregs(target_pid, regs)

獲取遠程進程的 寄存器信息 ;

然后讀取該寄存器數(shù)據(jù)中的 EAX 寄存器值 , 用于獲取遠程執(zhí)行 dlopen 函數(shù)的返回值 , 返回的是 libbridge.so 動態(tài)庫的首地址 ;

/* 讀取寄存器返回值 */ long ptrace_retval(struct pt_regs* regs) { #if defined(__arm__) return regs->ARM_r0; #elif defined(__i386__) return regs->eax; #else #error "Not supported" #endif }



三、博客資源



完整源碼下載地址 :

總結(jié)

以上是生活随笔為你收集整理的【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。