[問題] ptrace 掃描其他 process 的記憶體?
※ [本文轉錄自 C_and_CPP 看板 #1JDeIuFt ]
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
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: applecool (123.110.252.159), 03/30/2014 17:29:09
推
03/31 12:56, , 1F
03/31 12:56, 1F
→
03/31 12:58, , 2F
03/31 12:58, 2F
→
03/31 12:59, , 3F
03/31 12:59, 3F
→
03/31 13:01, , 4F
03/31 13:01, 4F
→
03/31 13:10, , 5F
03/31 13:10, 5F
推
03/31 16:06, , 6F
03/31 16:06, 6F
→
03/31 16:07, , 7F
03/31 16:07, 7F
→
03/31 16:13, , 8F
03/31 16:13, 8F
→
04/14 20:27, , 9F
04/14 20:27, 9F
→
04/14 20:28, , 10F
04/14 20:28, 10F
推
04/15 13:16, , 11F
04/15 13:16, 11F
→
04/15 13:17, , 12F
04/15 13:17, 12F
→
04/15 13:20, , 13F
04/15 13:20, 13F
→
04/15 13:21, , 14F
04/15 13:21, 14F
→
04/17 14:25, , 15F
04/17 14:25, 15F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章