[問題] ptrace 掃描其他 process 的記憶體?

看板C_and_CPP作者時間10年前 (2014/03/29 16:30), 10年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
C/C++ by GCC 4.8, Android NDK + SL4A / Python for Android, Android 4.3 root 權限,ARM 架構 問題: 使用 ptrace 來掃描其他 process 的記憶體 遇到了很多困難,google 不到請高手幫忙解答,感激不盡 使用方式: 用 Python 呼叫由 C/C++ 編譯出的 so 或執行檔 (因為 member 比較熟 C) 描述: 1. 寫 ptrace 的程式如果包裝成 so 來給人 call, 所有的 processes 都 attach 不到... 如果寫成執行檔,用 python 打開執行也不行 但該執行檔直接用 adb shell 進去 run 就可以 attach 部分 processes 但有一部分 processes 還是 attach 不到... 請問該如何 attach 所有 processes 呢? 還有我推測 ptrace 必須在 parent process 執行 C or Python 怎麼新建一個 "parent" process 呢? 2. mem 讀進來 的記憶體量常常會少 4K bytes (read() 回傳值), 不然就是讀不到,但有 attach 到且讀出記憶體的都是正確結果 因為多次讀取也不行,為何會少 4K,如何避免? 有的記憶體區段讀不到該怎辦? (都是從 maps 抓出的可讀區) 3. ptrace 只能抓到 process 的單一 thread,請問對付 multi-threading 的程式怎麼抓比較好? maps 檔要如何分析較有效率? 希望高手指點迷津,感恩不盡。 ※ 編輯: applecool (123.110.252.159), 03/30/2014 11:24:35 ※ applecool:轉錄至看板 LinuxDev 03/30 17:29 applecool:轉錄至看板 AndroidDev 03/30 17:29 applecool:轉錄至看板 Python 03/30 17:29 applecool:轉錄至看板 Soft_Job 03/30 17:33

04/24 03:59, , 1F
Cheat Engine的ARM Server有實作該功能,且有源碼也許對你有
04/24 03:59, 1F

04/24 03:59, , 2F
參考價值
04/24 03:59, 2F

05/17 11:22, , 3F
感恩!
05/17 11:22, 3F
文章代碼(AID): #1JDeIuFt (C_and_CPP)