※ [本文转录自 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