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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

發布時間:2025/6/17 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、代碼調試器功能簡介
  • 二、Attach 進程





一、代碼調試器功能簡介



代碼調試器功能 :

  • 設置斷點 : 無論什么類型的調試器 , 都必須可以設置斷點 , 運行到斷點處 , 掛起被調試進程 , 讀取當前狀態的 CPU 寄存器和內存數據 ;
    • arm 架構中 , 有一個單步調試標志位 , 將該標志位設置為 1 , 即可進行單步調試 ;
    • x86 架構中 , 主要是靠 int3 觸發 , int3 對應 0xCC 機器碼 , 將該機器碼寫入指令指定位置后 , 就會執行中斷 , 調試器捕獲該中斷處理 , 就可以進入調試 ;
    • 如果沒有設置斷點 , 想要調試程序 , 只能在系統調用時 , 觸發中斷 ; 如 : printf , 打印日志 , 文件改變 , 顯示內容改變 等 ;
  • 讀寫內存 : 可以讀寫 被調試進程 的內存數據 ;
  • 讀寫寄存器 : 可以讀寫 被調試進程 的 CPU 寄存器數據 ; 如果有多個線程 , 默認讀寫主線程寄存器 ;
  • 恢復運行 : 調試完畢后 , 還需要可以恢復運行 ; 調用 ptrace 函數 , 傳入 PTRACE_CONT 參數 , 就可以繼續進行 ;

上述所有操作 , 都是通過調用 ptrace 方法完成的 , 只是傳入不同的參數 , 執行不同的操作 ;

參考 【Android 逆向】ptrace 函數 ( ptrace 函數族 | 進程附著 | 進程脫離 | 進程數據讀寫權限 | 進程對應的主線程寄存器讀寫 | 單步調試 |ptrace 函數族狀態轉換 ) 博客 ;





二、Attach 進程



進程 A 調試 進程 B , 首先要 attach 進程 B , attach 操作需要指定 進程 B 的 進程號 PID ;

進程 ID 在當前系統運行時是唯一的 ; 進程 B 每次啟動時 , 進程號是隨機分配的 , 值并不固定 ;

PID 進程號的取值范圍 0 ~ 32767 ; 上限是 65535 一半 ;

一般情況下 1000 以下的進程號 , 是系統進程使用的 ;

以 非 root 權限執行的進程 , 都是 1000 以上的進程號 ;


Attach 進程代碼 : PTRACE_ATTACH 參數表示該函數操作是 Attach 被調試進程 , nPid 參數為 進程 PID ;

ptrace(PTRACE_ATTACH, nPid, NULL, 0)

ptrace 函數參考文檔 : https://man7.org/linux/man-pages/man2/ptrace.2.html

總結

以上是生活随笔為你收集整理的【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。