【Android 逆向】代码调试器开发 ( ptrace 函数 | 读寄存器 | 写寄存器 )
生活随笔
收集整理的這篇文章主要介紹了
【Android 逆向】代码调试器开发 ( ptrace 函数 | 读寄存器 | 写寄存器 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、讀寄存器
- 二、寫寄存器
一、讀寄存器
調用
ptrace(PTRACE_GETREGS, m_nPid, NULL, regs)讀取進程運行時的寄存器 ;
讀取寄存器時 , 進程必須處于 WUNTRACED 狀態 , 否則就會出錯 ;
參數一設置為 PTRACE_GETREGS , 代表本次操作是讀取寄存器值 ;
完整代碼 :
int CPtrace::getRegister(REGS* regs) {if (ptrace(PTRACE_GETREGS, m_nPid, NULL, regs) < 0) {LOGE("PTRACE_GETREGS failed pid %d", m_nPid);return PTERR_GETREG_FAILED;}return PTERR_SUCCESS; }二、寫寄存器
調用
ptrace(PTRACE_SETREGS, m_nPid, NULL, regs)向進程運行時的寄存器寫入值 ;
寫寄存器時 , 進程必須處于 WUNTRACED 狀態 , 否則就會出錯 ;
參數一設置為 PTRACE_SETREGS, 代表本次操作是向寄存器寫入值 ;
int CPtrace::setRegister(const REGS* regs) {if (ptrace(PTRACE_SETREGS, m_nPid, NULL, regs) < 0) {LOGE("set reg failed %d", m_nPid);return PTERR_SETREG_FAILED;}return PTERR_SUCCESS; }
總結
以上是生活随笔為你收集整理的【Android 逆向】代码调试器开发 ( ptrace 函数 | 读寄存器 | 写寄存器 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】代码调试器开发
- 下一篇: 【Android 逆向】代码调试器开发